What Text-to-CAD Is: CAD Superpowers for Your AI Coding Agent
Text-to-CAD is an open-source plugin with a one-line promise: "Give your agent CAD superpowers." Install it in Claude Code, Codex, Cursor, Gemini or Grok Build, describe a part in plain language or show it a sketch, and your agent produces a real 3D model.
It goes well past a single model, too. The plugin gives the agent local workflows to:
- generate 3D models as STEP, STL, 3MF or GLB files
- produce dimensioned engineering drawings as PDF
- run design-for-manufacturing checks for sheet metal, CNC machining, injection molding and 3D printing
- find off-the-shelf parts like screws, bearings and motors as ready-made STEP files
- slice models into G-code and send them to 3D printers, or check files before ordering laser-cut parts
- write robot description files for ROS and simulators
It is built on two serious open-source foundations: build123d 0.11, a Python CAD library, and Open CASCADE 7.9, the geometry kernel behind FreeCAD. The engine ships on PyPI as cadgen. The project is MIT licensed, had 18,586 stars at the time of writing, and released v0.7.19 on 9 October 2026.
One naming note: this is not Zoo's Text-to-CAD, a separate commercial product with the same name. This one is a free plugin, created by earthtojake, that runs locally inside the coding agent you already use.
CAD as Code: Why It Writes Python Instead of Generating a Mesh
This is the idea that separates Text-to-CAD from most "AI 3D model generators".
Typical text-to-3D tools output a mesh: thousands of triangles approximating a surface. That is fine for a figurine. It is useless for engineering, because a mesh has no true circles, no exact hole diameters and no parameters. You cannot reliably change a 6 mm wall to 8 mm in a triangle soup.
Text-to-CAD has the agent write code instead. A model is a plain Python script with a decorated function that returns a build123d shape:
from cadgen import build123d as bd
from cadgen import step
WIDTH = 40.0
@step(out="../STEP/bracket.step")
def bracket():
body = bd.Box(WIDTH, 20, 6)
body.label = "bracket"
return bodyRunning the script writes a STEP file: exact boundary-representation geometry, the universal exchange format that FreeCAD, Fusion and SolidWorks all import. Want the bracket wider? Change WIDTH and rerun. Want a 3D-printable copy? Stack an @stl or @threemf decorator on the same function, and the mesh is derived from the exact model rather than the other way round.
Because the model is source code, everything good about code applies: it lives in git, a change shows up as a readable diff, and assemblies are built by calling child models. The skill enforces reproducibility too. Geometry "must not depend on untracked time, random values, environment variables or the working directory", so the same script always builds the same part.
The Agent Has to Prove the Part Is Right
An AI that says "done" is not the same as a part that fits. The CAD skill turns verification into an explicit step of the workflow.
After building, the agent is told to choose checks from the requested dimensions, clearances and topology, and to run them against the saved file, not the source. Measurements use native build123d geometry. Then it must render at least one snapshot of the result and read it itself, with the instruction to "always render and read them yourself, never rely on the viewer for it."
Two lines from the skill set the tone for the whole project:
A failed computation is not a pass.
Report units, thresholds, selected geometry and untested requirements.
The hand-off has to list output files, the checks actually run, and any assumptions. For unfamiliar dimensions, the agent records what it assumed. When missing information would materially change the result, it asks you instead of guessing. Failures are repaired in the source, and the affected checks rerun.
If you are working from a spec sheet in inches while the models default to millimeters, a unit converter settles the numbers before they reach the prompt.
Point at a Face in the Viewer and Ask for a Change
The plugin includes CAD Viewer, a local server that shows models where you are working. In Claude Desktop, models appear as viewer cards in the chat that you can orbit and open full size. In the Codex app there is a CAD tab beside each thread that the agent drives. In terminal agents, asking to see a model gives you a link that opens it in your browser.
The clever part is that selection flows back into the conversation. Click a face and the viewer copies a precise reference to it, such as assembly.step#o1.2.f7, which pins down that one face in that saved file. The agent opens the document with read_scene, resolves the reference to real geometry, and knows exactly which surface "this face" means.
A Quick Edit goes further: you describe the change, the viewer attaches the file and references, and if you sketched on the view, a PNG of your markup. The agent is instructed to look at that sketch before touching the model. It is the CAD equivalent of circling something on a printout and writing "make this thicker" next to it.
The agent also has its own eyes: cad_screenshot shows it what you are seeing, and cad_view reads what you have selected.
Twelve Skills, From Bolts to Bambu Lab Printers
Text-to-CAD is a library of focused skills. Install the plugin and the agent loads whichever one a request needs:
| Skill | What it does |
|---|---|
| CAD | Creates and edits models from text or images; STEP first, plus STL, 3MF and GLB |
| step.parts | Finds off-the-shelf STEP parts: screws, bearings, motors, connectors |
| Engineering Drawing | Dimensioned PDF drawings with views, hidden lines, hole callouts and a title block |
| DXF | 2D profiles, templates, gaskets and cut layouts |
| URDF | Robot structure files: links, joints, limits, inertials, meshes |
| SRDF | MoveIt planning groups, end effectors, poses and collision rules |
| SDF | Simulator models and worlds with physics, sensors and lights |
| SendCutSend | Checks DXF and STEP files before upload to SendCutSend |
| DfAM Check | 3D-printability: wall thickness, overhangs, support volume, orientation |
| DFM | Sheet metal, CNC and injection molding review with cited rules |
| G-code | Slices models with OrcaSlicer using your own printer presets |
| Bambu Labs | Sends prints to Bambu Lab printers via Bambu Connect or Bambu Studio |
The breadth matters because real projects cross these lines. A robot arm needs CAD parts, purchased servos, a URDF for ROS, and printed brackets. Text-to-CAD keeps the whole chain in one conversation.
Real Parts and Real Manufacturing Rules, Not Placeholders
Two skills keep designs grounded in the physical world.
step.parts is a hosted catalog of purchasable components with an API. When an assembly needs a named servo, motor or fastener, the agent is told to search it before inventing a placeholder, to try aliases and vendor names before giving up, and to verify each downloaded STEP file against its SHA-256 hash when the catalog publishes one. If it does fall back to a simplified envelope, it has to say so.
DFM reviews a part for sheet metal, CNC machining or injection molding, and its rules are strict about evidence:
- It is "a guided review skill, not an automatic feature-recognition or manufacturing certification engine", and unavailable checks must be reported as unavailable.
- Your actual supplier's specification beats general guidance, and conflicting specifications are recorded rather than silently resolved.
- Every limit adopted must cite its source, version, access date and units. If a rule cannot be checked, the review reports it missing rather than making up a default.
- It must never infer an alloy, resin, strength or stock thickness from a rendering's material or color.
- For injection molding, a script measures draft, undercuts and projected area from the mesh.
3D printing has its own skill, DfAM Check, which measures printability per process, and the G-code and Bambu Lab skills take a checked model all the way to a print.
Robots Too: URDF, SRDF and SDF Files
Robotics is where Text-to-CAD quietly saves the most tedium. Robot description files are verbose, unforgiving and usually written by hand.
- URDF describes a robot's links and joints, with limits, inertials and meshes, and is the standard format in ROS.
- SRDF adds MoveIt's semantic layer: planning groups, end effectors, named poses and which collisions to ignore.
- SDF describes models and whole worlds for simulators, including physics, sensors and lights.
Because the parts themselves come from the CAD skill, the meshes in these files can come from the real geometry rather than eyeballed stand-ins. All three formats are XML; when you want to inspect one programmatically or feed it into a web tool, an XML to JSON converter gives you a structure that is much easier to query.
How to Install Text-to-CAD in Claude Code, Codex or Cursor
The simplest install is to send your agent one message:
Install text-to-cad from https://github.com/earthtojake/text-to-cadTo do it yourself, first make sure uv, Astral's Python package manager, is installed (uv --version). Then, in Claude Code:
claude plugin marketplace add earthtojake/text-to-cad#latest
claude plugin install text-to-cad@earthtojakeRestart the app; the first start downloads the CAD runtime, so it needs a network connection. Codex installs from its plugin directory, Gemini as an extension with --auto-update, and Cursor and Grok Build can reuse the Claude Code plugin directly. Any agent that supports the skills framework can install the skills alone with npx skills add earthtojake/text-to-cad#latest.
Three tips from the README:
- Install the plugin or the skills, not both, or every skill loads twice.
- The commands use the
latestbranch, which only receives released versions. Leaving it out installsmain, which can contain unreleased work. - When updating skills, rerun
npx skills addrather thannpx skills update, which silently misses newly added skills.
Windows 11 gotcha. The CAD kernel's Python binding ships an unsigned native module, and Windows 11's Smart App Control, on by default on fresh installs, blocks it. Every command then fails with ImportError: DLL load failed while importing OCP. There is no per-app exception: either turn Smart App Control off, which can only be reversed by reinstalling Windows, or run the CAD skills under WSL. cadgen doctor detects this case.
Telemetry Is On by Default: Here Is Exactly What It Sends
Text-to-CAD sends usage statistics and crash reports by default, and the README documents them in unusual detail, so it is worth knowing before you install.
What is sent: versions, install source, operating system and agent app, and counts, such as how often each CAD tool was called, how many models were built, and why a call failed, chosen from a fixed set of reasons rather than the error message. Crash reports include the error type and where in cadgen it failed. Everything is tagged with a random install ID and stored with PostHog. The server derives your country from your IP address and does not keep the address.
What is never sent: file names, paths, file contents or prompts.
How to turn it off: run uvx cadgen telemetry off (which also deletes what was already sent), use the menu in the viewer, or ask your agent. DO_NOT_TRACK=1 disables it for a single process. Nothing is sent in CI or from a development install, and everything works offline.
Separately, cadgen checks for a new version at most once a day with one anonymous request; CADGEN_UPDATE_CHECK=0 stops that too.
Repo Health: 18,586 Stars and a Fast Release Cadence
The repository was created on 22 April 2026 and had 18,586 stars, 1,848 forks, 1,453 commits and 20 contributors at the time of writing. Development is fast: v0.7.17, v0.7.18 and v0.7.19 all shipped between 8 and 9 October 2026, and the cadgen package has had 57 releases on PyPI. A test workflow runs in CI, documentation lives at texttocad.dev, and there is a Discord community.
Good fit if you design functional parts: brackets, enclosures, mounts, jigs, robot components or anything with dimensions that matter. It suits makers with a 3D printer, robotics developers tired of hand-writing URDF, and engineers who want a parametric starting point they can open in their usual CAD tool.
Poor fit if you want organic or sculpted shapes such as characters and figurines, where mesh-based text-to-3D generators are the better tool. It is also not a substitute for a manufacturer's sign-off: the DFM skill is explicitly a guided review, not certification. And on Windows 11, plan for the Smart App Control step above.
If you like the idea of agents doing serious engineering work, the mirror image of this project is REA, which points an agent at existing software and takes it apart instead.



