Skip to main content

agentcad

CAD tool for AI agents. Give your coding agent the ability to design 3D models.

Your agent writes build123d Python scripts by default. agentcad handles execution, STEP export, PNG rendering, mesh export (STL/GLB/OBJ), geometric metrics, validation, diffing, and browser preview. CadQuery remains available as an explicit compatibility mode. Each command's final response is structured JSON on stdout.

Reading the output: the JSON response is written to stdout; human-readable progress and diagnostics go to stderr. Parse stdout as JSON and treat stderr as plain text — don't merge the streams with 2>&1 before a JSON parser, or the progress lines will break parsing. If you need both, capture them separately.

agentcad is open source under the Apache License 2.0. It runs locally and requires no signup.

Featured on Product Hunt

Demo

Watch a coding agent design in agentcad

A coding agent designing in agentcad, live. See more at agentcad.dev.

Introducing parts

Watch agentcad parts rebuild a toy assembly

Parts let an agent build CAD as named, color-coded pieces and groups, then hand back a viewer a human can inspect. Watch the demo on YouTube or read the story at agentcad.dev/parts.

Quick start

Install agentcad, then paste this into Claude Code, Cursor, or any coding agent:

Create a Python 3.12 virtual environment, then:

pip install agentcad
agentcad init --name phone-stand

Design me a phone stand: a simple angled cradle that holds a phone
at 60 degrees. About 80mm wide, 50mm deep, with a 5mm lip at the bottom
to keep the phone from sliding. Show me a preview when you're done.

What it does

  • agentcad run script.py --label label — execute a build123d script, producing a versioned STEP file + geometric metrics (volume, dimensions, validity, face/edge counts)
  • Automatic review viewer — successful runs open viewer.html; from v2, A=previous and B=current are preloaded for A/B, side-by-side, overlay, and Parts-tab change review (--no-view opts out)
  • agentcad run ... --preview — four-view PNG for visual verification; the browser viewer can export an on-demand turntable GIF
  • agentcad run ... --render iso,front — high-quality PNG views
  • agentcad run ... --export stl,glb — mesh export for 3D printing or web viewers
  • agentcad measure output.step — dimensional report (overall metrics, edge lengths, face areas, circular/cylindrical diameters)
  • agentcad check-spec output.step spec.json — compare measured cylindrical features against an explicit checklist
  • agentcad inspect output.step — bounded topology deep-dive with observable loading, validity, and extraction phases
  • agentcad parts list REF — list named/captured parts for a version
  • agentcad parts show REF ID — show one versioned part by stable id
  • agentcad parts view REF — hand off an isolated, focused, or grouped part review viewer
  • agentcad diff 1 2 — compare versions, including actual shared/reference-only/candidate-only source-frame volume for valid closed solids
  • agentcad view old.step new.step — open a synchronized A/B comparison with separate centered projection and source-frame 3D volume artifacts
  • agentcad docs [section] — runtime-aware built-in documentation and worked examples

--label names the version; the JSON response returns the actual file under outputs.step. The older --output LABEL spelling remains a deprecated compatibility alias and never denotes a destination path.

No boilerplate

Scripts need zero imports. By default, build123d primitives, show_object, and agentcad edit helpers are pre-injected:

box = Box(10, 20, 5)
show_object(box)

agentcad init records build123d as the project runtime. That keeps the script API, built-in docs, and subsequent runs on one clear default.

CadQuery compatibility

CadQuery remains supported for existing scripts and projects, but it is not the default authoring path.

For a CadQuery project:

agentcad init --name legacy-model --runtime cadquery
agentcad docs quickstart --runtime cadquery
agentcad run script.py --label first

For a one-off CadQuery script inside a build123d project:

agentcad docs preamble --runtime cadquery
agentcad run legacy.py --label legacy --runtime cadquery

Keep each script on one CAD API. If a script clearly targets the other engine, agentcad reports the mismatch and the exact one-off override. Run agentcad docs runtimes for the complete dispatch contract.

MCP integration

For native tool integration with Claude Code, Cursor, or Windsurf:

pip install agentcad[mcp]

Add to .mcp.json:

{"agentcad": {"command": "python", "args": ["-m", "agentcad.mcp"]}}

Requirements

  • Python 3.10–3.12 (OpenCascade bindings do not support 3.13+)

License

Apache License 2.0. See LICENSE.

Feedback

If your agent struggles, run agentcad feedback "what happened" to capture a friction log.

Metadata

Release files for agentcad 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentcad 0.5.2
File Size Uploaded
agentcad-0.5.2.tar.gz 406.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agentcad 0.5.2
File Interpreter ABI Platform
agentcad-0.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 667.6 kB

Release files / agentcad-0.5.2.tar.gz

Download URL agentcad-0.5.2.tar.gz
Size 406.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ce7f7a12d4beef463952c7561b33b45ddc3d61a4f9aac6994f6e7de2caa58fb9
BLAKE2b-256 checksum
How to use checksums
e6c10ba4b366967cac381e24e75dd72405ffbdb965559d843840806ee385934e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / agentcad-0.5.2-py3-none-any.whl

Download URL agentcad-0.5.2-py3-none-any.whl
Size 261.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ec8825eac10b6ce49d02a8040c3a14ef4f7318879c2d55251be4dcec7f21a4f
BLAKE2b-256 checksum
How to use checksums
a43c86491012df92d9c68391afb791dbbb70b9a5f02cdfdb673420a5f881f409
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.6.0

2 release files

This release

0.5.2 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page