DevPik Logo
open sourcecadai agents3d printingrobotics

Text-to-CAD: The Open-Source Plugin That Lets Your AI Agent Design Real CAD Parts

Text-to-CAD is an MIT-licensed plugin that gives Claude Code, Codex, Cursor, Gemini and Grok a full CAD workflow. Instead of generating a mesh, your agent writes a parametric Python model that produces exact STEP geometry, then exports STL or 3MF, draws dimensioned drawings, checks manufacturability and sends parts to a printer.

ByMuhammad Tayyab9 min read
All open source picks
earthtojake/text-to-cad
The official repository — this write-up is not affiliated with the project.
18.6kPythonMIT

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:

python
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 body

Running 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:

SkillWhat it does
CADCreates and edits models from text or images; STEP first, plus STL, 3MF and GLB
step.partsFinds off-the-shelf STEP parts: screws, bearings, motors, connectors
Engineering DrawingDimensioned PDF drawings with views, hidden lines, hole callouts and a title block
DXF2D profiles, templates, gaskets and cut layouts
URDFRobot structure files: links, joints, limits, inertials, meshes
SRDFMoveIt planning groups, end effectors, poses and collision rules
SDFSimulator models and worlds with physics, sensors and lights
SendCutSendChecks DXF and STEP files before upload to SendCutSend
DfAM Check3D-printability: wall thickness, overhangs, support volume, orientation
DFMSheet metal, CNC and injection molding review with cited rules
G-codeSlices models with OrcaSlicer using your own printer presets
Bambu LabsSends 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:

text
Install text-to-cad from https://github.com/earthtojake/text-to-cad

To do it yourself, first make sure uv, Astral's Python package manager, is installed (uv --version). Then, in Claude Code:

bash
claude plugin marketplace add earthtojake/text-to-cad#latest
claude plugin install text-to-cad@earthtojake

Restart 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 latest branch, which only receives released versions. Leaving it out installs main, which can contain unreleased work.
  • When updating skills, rerun npx skills add rather than npx 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.

Frequently Asked Questions

What is Text-to-CAD?

Text-to-CAD is a free, MIT-licensed plugin that gives AI coding agents like Claude Code, Codex, Cursor, Gemini and Grok a full CAD workflow. The agent writes parametric Python models with build123d that produce STEP files, and can export STL, 3MF and GLB, generate engineering drawings, run manufacturability checks and send parts to printers.

Is Text-to-CAD free?

Yes. The plugin and its cadgen engine are open source under the MIT license. You only need an AI agent you already use and uv to run it. Fabrication services and printers it connects to are paid separately as usual.

Is this the same as Zoo's Text-to-CAD?

No. Zoo's Text-to-CAD is a separate commercial product. earthtojake/text-to-cad is an independent open-source plugin that runs locally inside your coding agent.

What file formats does Text-to-CAD produce?

STEP is the main output, giving exact geometry you can open in FreeCAD, Fusion or SolidWorks. It also exports STL, 3MF and GLB meshes, DXF for 2D profiles, PDF engineering drawings, G-code for printers, and URDF, SRDF and SDF files for robotics.

Which AI agents support Text-to-CAD?

It has plugins or extensions for Claude Code, Claude Desktop, Codex, Cursor, Grok Build and Gemini, and any agent that supports the skills framework can install the skills with npx skills add.

Can I edit the models in other CAD software?

Yes. Models are saved as STEP files, the standard exchange format for mechanical CAD, so FreeCAD, Fusion, SolidWorks and most other CAD tools can import them. The Python source also stays editable, so changing a parameter and rerunning rebuilds the part.

Does Text-to-CAD upload my designs?

No. Models are built locally. By default it sends anonymous usage statistics and crash reports, but never file names, paths, contents or prompts, and you can turn that off with uvx cadgen telemetry off.

Why does Text-to-CAD fail with 'DLL load failed while importing OCP' on Windows?

Windows 11's Smart App Control blocks the unsigned native module in the CAD kernel's Python binding. Turn Smart App Control off, which can only be undone by reinstalling Windows, or run the CAD skills under WSL. Running cadgen doctor confirms the cause.

Related DevPik tools

Muhammad Tayyab

Written by

Muhammad Tayyab

CEO & Founder at Mergemain

Muhammad Tayyab builds free, privacy-first developer tools at DevPik. He writes about AI trends, developer tools, and web technologies.

More open source picks