Who this is for
- Your engineers copy data out of CAD into ChatGPT and type the answers back. You want the model next to the drawing, reading the real document.
- You have a drawing standard, a schedule format or a calculation routine that everyone repeats by hand, and you want an assistant that knows it and applies it inside the file.
- You already tried a generic "AI for CAD" tool and it could not see your blocks, your layers or your title block.
- Your software is not AutoCAD at all — FreeCAD, a KiCad flow, an in-house tool with a scripting API — and you want the same agent pattern there.
What a session looks like
We open a Zoom or Yandex Telemost call, I share the screen, and the plugin is written in front of you: the code, the host application, the tool calls scrolling by in the chat palette. You redirect as we go; commits land in your repository. The timer stops when you say stop, and the first 15 minutes are free so we can check the fit. Longer blocks are the same rate, invoiced per session or weekly.
What I actually build
- The agent loop — a tool-use loop over the live document with prompt caching, one conversation per document, effort and reasoning settings exposed in the UI.
- A document snapshot — a compact, stable description of the open file (in AutoCAD: metadata, units, extents, layers, layouts, entity counts, block inventory, schedule text; in FreeCAD: the object tree with properties, sketch constraints, spreadsheet cells) that makes every question cheap.
- Read tools —
query_entities,get_block_inventory,get_layers,get_tables, geometry measurement, and atake_screenshottool that sends the rendered view to the model so it can check its own work. - Write tools that ask first — global text replacement across attributes, MLeaders and table cells, layer state changes, custom properties, arbitrary commands, Python execution in FreeCAD — each behind a confirmation dialog showing the exact change, each a single undo step, with an auto-approve toggle for trusted sessions.
- Memory — per-user and per-document notes with
remember/forget, keyed by a fingerprint GUID in AutoCAD or the document Uid in FreeCAD, so decisions stay attached to the file without being written into it. - Providers — Claude through the Anthropic Messages API and any OpenAI-compatible endpoint (OpenAI, OpenRouter, local servers), with
tool_usetranslated totool_calls; raw HTTP, no SDK, because host-embedded runtimes cannot load one. API keys encrypted with Windows DPAPI. Per-turn and per-session cost reporting. - Packaging — a per-user Inno Setup installer with registry demand-load, a per-machine WiX MSI with an Autodesk Autoloader bundle for GPO/SCCM, a FreeCAD
package.xml; version stamping on every build. - Telemetry, if you want it — an opt-out anonymous backend (FastAPI + SQLite + SvelteKit dashboard) that records latency, token usage and GUI hangs, so you know how the plugin behaves on fifty desks, not one.
- A domain persona — AutoGAD's knows Russian working-documentation conventions: panel loads, design current, breaker sizing, cable checks. Yours gets your standards.
Proof
- AutoGAD — AutoCAD 2025/2026 plugin in C# / .NET 8, about 6 300 lines in 31 files: ribbon tab, dockable Markdown chat palette, five read tools, six write tools, memory, two installers. Version 1.0.5, used daily for real electrical and lighting design documentation.
- FreeGAD — the same agent as a FreeCAD 1.0/1.1 workbench in Python, about 4 600 lines, with the screenshot-vision tool and a deployed telemetry dashboard. Because AutoGAD was the template, FreeGAD went from empty folder to installer in four days.
- KiCad from Python — a complete controller board (schematic and layout) generated by script rather than drawn; a different host, the same idea of driving engineering software programmatically.
Read the design notes: what a CAD copilot actually needs and what Claude can and cannot do with a DWG.
How it usually goes
First session: your host application, its scripting API, and a read-only agent that answers questions about the open document. That alone is often worth having. Next: the first write tool your team actually needs, behind a confirmation dialog. Then memory, installer, and the persona that knows your standards. You get a working plugin after every session, not a demo at the end.