Text-to-CAD: The Open-Source Harness for Claude Code
Editorial note: Star and fork counts in this article are snapshots as of April 25, 2026, and will move quickly given the project's age. All install commands and capabilities are drawn from the public text-to-cad repository; verify against the latest README before installing.
On April 22, 2026, a developer known as @soft_servo pushed a small repository called text-to-cad to GitHub. Three days later it had 442 stars, 67 forks, and a clear message: you do not need a SaaS subscription to generate CAD models from natural language. You just need a coding agent you already pay for.
This post walks through what the text-to-cad harness is, how to install it in under ten minutes, how to generate your first parametric CAD part with Claude Code, how it compares to hosted alternatives like Zoo, Adam, and Meshy, and where AI-generated CAD genuinely works versus where it does not.
TL;DR: earthtojake/text-to-cad is a new open-source harness (442 GitHub stars by April 25, 2026, MIT license) that lets Claude Code, Codex, or any coding agent generate parametric CAD models locally using build123d and OpenCASCADE. Describe a part, the agent writes Python, the harness exports STEP/STL/DXF/GLB/URDF, and a local React viewer renders the result. No backend, no SaaS subscription.
What Is Text-to-CAD, and Why Does It Matter?
Text-to-CAD is an open-source, MIT-licensed harness that lets a coding agent generate parametric CAD models in Python using build123d, a modern Python CAD-as-code framework built on the OpenCASCADE geometric kernel. The harness ships with a local Node.js + React viewer for inspection, two bundled skills (one for general CAD work, one for URDF robot descriptions), and supports five export formats. It runs entirely on your machine.
The structural difference between text-to-cad and the hosted text-to-CAD tools dominating the search results matters more than it sounds. Tools like Meshy, Tripo, and Sloyd produce meshes: a triangulated surface representation that looks correct but cannot be edited parametrically afterward. If you need to change a hole diameter from 6 mm to 8 mm, you cannot. You either re-prompt and hope, or you rebuild from scratch in real CAD software. Tools like Zoo and Adam produce parametric models, but on their infrastructure, with their pricing, and with output you do not really own.
Text-to-cad produces editable Python source. The agent writes a .py file in the models/ directory using build123d operators. The harness regenerates STEP/STL/DXF/GLB/URDF from that source. You can version-control it, diff it, refactor it, and have a different agent edit it tomorrow. The output is not just a file you got from an LLM. It is a programmable CAD definition.
The repository's own framing is direct: it is a harness for "source-controlled CAD models with coding agents like Codex and Claude Code." That single phrase, source-controlled, is the entire pitch.
How Does the Text-to-CAD Workflow Work?
The workflow is a six-step loop documented in the README. Describe what you want to your agent. The agent edits the relevant Python source files in models/. The harness regenerates the output targets (STEP for engineering, STL for printing, DXF for 2D drawings, GLB for web/AR rendering, URDF for robotics). You inspect the result in the local CAD Explorer viewer at localhost:4178. You copy a geometry reference for any precise follow-up edits. You commit source and artifacts together as one atomic change. Then you loop.
Two things in this loop are worth pausing on. The first is the geometry reference syntax, written as @cad[...] in the README's workflow description. After generating a part, the viewer shows a list of features (edges, faces, holes), each with a short reference token you can paste back into your next prompt. Instead of saying "the second hole on the left side, I think," you paste the exact token and the agent edits the right element. That single feature removes most of the back-and-forth ambiguity that hosted text-to-CAD tools cannot solve because they do not expose the underlying geometry to you in the first place. (For a different angle on Claude's multi-file workflows, see our piece on Claude Projects in applied workflows.)
The second is that source and exports are committed together. Because the source is just Python, you get real Git diffs on every change. You can blame a hole diameter to a specific commit. You can branch a design. You can revert. None of that is possible with a SaaS that hands you a generated mesh and a billing receipt.
How Do You Install Text-to-CAD?
Installation requires Python 3.11 or newer, Node.js, and a few minutes. The full sequence from the README is five commands: clone the repo, create a virtual environment, install Python CAD dependencies, install viewer dependencies, and start the dev server on port 4178. Once the viewer is running you can drop a coding agent into the same directory and you are operational.
git clone https://github.com/earthtojake/text-to-cad.git
cd text-to-cad
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements-cad.txt
cd viewer && npm install
npm run dev # opens http://localhost:4178
Two install pitfalls are worth flagging upfront. First, the Python version constraint is real. build123d and the Open CASCADE Python bindings (OCP) ship pre-built wheels for specific Python versions, and Python 3.11 is currently the most reliable target across platforms. If you are on 3.12 or 3.13, you may end up building from source, which is slow and error-prone. Use 3.11 unless you have a reason not to. Second, on Apple Silicon some users report wheel availability issues. If pip cannot find a matching wheel, check the build123d documentation for current platform notes before assuming the repo is broken.
After npm run dev finishes, the CAD Explorer viewer is live at http://localhost:4178. The first sanity check is to load any of the example models in models/ and confirm it renders. If it does, your CAD pipeline is working end to end. The agent integration is the easy part. Claude Code, Codex, or any tool that can edit files in a Git repo simply works once the harness is running.
How Do You Generate Your First CAD Model with Claude Code?
Open Claude Code in the text-to-cad repo directory, describe the part you want, and Claude edits a Python file in models/ using build123d syntax. The harness regenerates the export targets, and the CAD Explorer viewer at localhost:4178 renders the result. A working first prompt is concrete and dimensioned, not vague. "A simple bracket" produces something simple. "A 100 mm × 40 mm × 5 mm aluminum bracket with four 6 mm through-holes on a 30 mm grid" produces something you can manufacture. (For a completely different hands-on Claude Code workflow, see our PPC audit automation tutorial.)
What Claude (or Codex) actually writes for that prompt is short, readable build123d:
from build123d import *
with BuildPart() as bracket:
Box(100, 40, 5)
with Locations((-35, -10), (35, -10), (-35, 10), (35, 10)):
Hole(radius=3, depth=5)
bracket.part.export_step("bracket.step")
bracket.part.export_stl("bracket.stl")
That is the entire mental model. The agent picks the right build123d operators (Box, Hole, Locations), the harness handles export, and you read or edit the source whenever the agent gets it wrong. If the holes need to move by 5 mm, you can either fix the coordinates yourself in two seconds or paste the relevant @cad[...] reference back to Claude and ask for the change in natural language. Both paths are fast because the artifact is real source code, not an opaque mesh.
For robotics, the bundled URDF skill is genuinely uncommon for this category. URDF (Unified Robot Description Format) is what ROS and most robotics simulators use to describe a robot's links, joints, and mass properties. Generating a valid URDF from a text description, with collision meshes and joint limits, is exactly the kind of structured-and-parametric output a coding agent is well-suited for and a hosted mesh-generator categorically cannot produce.
How Does Text-to-CAD Compare to Zoo, Adam, and Meshy?
The hosted tools (Zoo, Adam.new, Meshy, Sloyd, Tripo) are closed-source SaaS that generate either a mesh (Meshy, Tripo, Sloyd) or a parametric model on their own infrastructure (Zoo, Adam). text-to-cad is the open-source, local, agent-driven alternative: you bring the agent, run the CAD engine on your machine, and own every artifact. The trade-offs split cleanly along three axes.
The first axis is output type. text-to-cad and Zoo both produce parametric output you can edit. Meshy, Tripo, and Sloyd produce meshes, which are useful for game assets, AR/VR, and 3D printing but are not real engineering CAD. The second axis is cost structure. Hosted tools charge per generation or per month on top of whatever you spend on an LLM. text-to-cad has zero marginal cost after install. Your only spend is the Claude Code or Codex subscription you already pay for. The third axis is ownership. With text-to-cad your designs are local Python files in your Git repo. With any hosted tool, your designs live on someone else's server, governed by their pricing and access policies.
Hosted tools win on two dimensions. They have polished web UIs that need no install, and they have batch infrastructure for generating many parts in parallel. If you need either of those, no open-source local harness will replicate them in three days of community work. Pick the tool that matches the dimension you care about. There is no universally correct answer.
Our reading: The parametric-source-vs-mesh distinction is the load-bearing argument for using text-to-cad over Meshy or Tripo. If your downstream consumers are CAD packages, FreeCAD users, machinists, or robotics simulators, you need parametric output. If your downstream is just "render it on a website," a mesh is fine and a hosted tool will be faster.
What Are the Limitations of AI-Generated CAD Today?
Single-part text-to-CAD tools, including text-to-cad, still lack the parametric-family features, standards-compliance checks, and manufacturing traceability that production engineering teams need. A generated bracket is a great starting point. A production-ready aerospace assembly is not yet a one-prompt job, and pretending otherwise is exactly the over-claim that has earned the broader text-to-CAD category some skepticism in 2026.
What works well today: rapid prototyping, one-off brackets and fixtures, 3D-printable parts, rough assemblies, robot URDFs, and teaching CAD-as-code through agent-generated examples. The agent's failure mode here is producing something that is dimensionally wrong rather than structurally invalid, which is fixable in seconds because you can read the source.
What does not work yet: FEA-validated parts, GD&T-compliant engineering drawings, multi-part assembly constraints with tolerances, and any regulated-industry work (aerospace, medical, automotive). Those domains require traceability, formal sign-off, and validation that no current text-to-CAD tool, open-source or hosted, addresses end-to-end. Use text-to-cad as a productivity multiplier on the early-stage work; keep your CAD engineer in the loop for everything downstream.
Should You Clone the Repo?
Yes, if any of these apply: you already pay for Claude Code or Codex; you do hobbyist 3D printing or robotics work; you are teaching CAD-as-code; you maintain internal tooling, fixtures, or jigs that change often; you build robots and want a faster path from "describe the link" to a valid URDF. The total cost of trying it is the ten minutes of install plus whatever you already pay for your agent.
| Use Case | Fit | Why |
|---|---|---|
| Hobbyist 3D printing | Strong | STL export + parametric source you can tweak |
| Robotics / URDF generation | Strong | Bundled URDF skill is unusual for this category |
| Internal tooling / fixtures | Strong | Git-versioned designs that iterate fast |
| Teaching CAD-as-code | Strong | Agent-generated examples are short, readable build123d |
| Regulated / FEA-validated CAD | Limited | No standards-compliance or traceability layer yet |
| Drag-and-drop SaaS users | Weak | Requires Python comfort and local install |
If you fit one of the strong-fit rows, clone it, generate a single bracket end-to-end, export the STEP file, and open it in FreeCAD or your CAD package of choice. That ten-minute exercise will tell you more than any blog post (including this one) about whether the workflow fits how you actually build things.
Frequently Asked Questions
What is text-to-CAD?
Text-to-CAD is an open-source MIT-licensed harness on GitHub (earthtojake/text-to-cad) that lets coding agents like Claude Code or Codex generate parametric CAD models locally using the Python build123d framework and the OpenCASCADE kernel. It exports STEP, STL, DXF, GLB, and URDF formats and ships with a local React-based CAD Explorer viewer.
Can AI really generate production-ready CAD?
For simple parts like brackets, fixtures, 3D-printable parts, and robot URDFs, yes, and text-to-cad produces editable parametric source you can version-control. For regulated industries (aerospace, medical, automotive) or FEA-validated parts, AI CAD is still a starting point and not a replacement for a CAD engineer who can sign off on tolerances, GD&T, and standards compliance.
Do I need a subscription to use text-to-cad?
No. The text-to-cad harness is free and MIT-licensed. You only pay for whatever coding agent you already use, such as Claude Code or Codex. Hosted alternatives like Zoo and Adam charge per-generation or monthly subscription fees on top of the LLM cost, while text-to-cad has zero marginal cost after the install.
What is build123d, and why does this harness use it?
build123d is a modern Python CAD-as-code framework derived from CadQuery and built on the OpenCASCADE kernel. It lets agents generate CAD by writing regular Python code, which is what makes the text-to-cad harness possible. The agent simply edits .py files in the models/ directory and the harness regenerates exports.
The Bottom Line
text-to-cad is small, opinionated, and exactly the kind of repo the open-source community ships best: a local, composable, MIT-licensed harness that takes a tool you already pay for (Claude Code, Codex, any coding agent) and gives it a new capability (real parametric CAD output) without touching your billing. It is not a replacement for a CAD engineer, and it is not a replacement for a hosted SaaS if you specifically need a polished web UI. It is the missing piece for developers who already work in code and now want their agent to produce hardware artifacts the same way. For a parallel example of how Claude tools land in real production workflows, see our coverage of Claude Design use cases for marketing teams.
Clone the repo, generate one bracket, export the STEP, open it in FreeCAD. That ten-minute exercise is the fastest way to know whether this workflow fits how you actually build.
Member discussion