Agent skill

Parametric CAD Modeling

by earthtojake in earthtojake/text-to-cad

Creates and edits parametric CAD parts in Python, organizes multi-model projects, exports to STEP, STL, 3MF or GLB, and opens existing CAD files for visual review.

MITAuto-check passedDevelopment

Install Parametric CAD Modeling

skills CLI
$ npx skills add earthtojake/text-to-cad --skill cad -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install earthtojake/text-to-cad cad --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/earthtojake/text-to-cad.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cad .claude/skills/cad && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cad
GitHub stars
19k
Token cost
~2.8k tokens
SKILL.md length
1,352 words
Files
16 (incl. references)
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Creates and edits parametric CAD parts in Python, organizes multi-model projects, exports to STEP, STL, 3MF or GLB, and opens existing CAD files for visual review.

  • Creating or editing a parametric CAD part or assembly in Python
  • SKILL.md covers Start with the task, Setup and paths, Create or edit a model and Mesh exports, plus 2 more sections
  • Calls python and uvx
  • Exporting a CAD model to STEP, STL, 3MF or GLB

What it does

The skill routes by task rather than loading every reference up front. Creating or editing a part means finding the existing Python model or starting from a decorated template, then editing the source and running it directly; a dedicated reference covers the model contract and build123d shape construction, with a separate one for positioning parts within an assembly. Organizing a project means following its existing layout, or for a new multi-model project using a src folder, formatted output directories and a model catalog.

Exporting to STL, 3MF or GLB either adds a mesh decorator for an output that should stay maintained, or runs a one-off build command for a single export. Resolving a reference mentioned in a prompt means identifying its saved STEP or STP document, opening it with read_scene, and calling scene.resolve on it. Measuring or checking geometry means writing a Python check against native build123d geometry, using the cadgen.geometry helpers where useful.

Reviewing appearance or motion works from a snapshot of the saved document, using any declared kinematics or animation for different poses and clips, while diagnosing a failure means reading the actual error and checking the relevant model, geometry or command contract against a repair-loop reference. A separate migration reference exists because an unmigrated model silently loses its kinematics, materials and animation, so a message asking for a migration should be acted on right away. 2D DXF drawings are handled by a different, related skill.

When your agent uses it

  • Creating or editing a parametric CAD part or assembly in Python
  • Exporting a CAD model to STEP, STL, 3MF or GLB
  • Opening and visually reviewing an existing STEP, STL, 3MF or GLB file

Example prompts

  • “Create a parametric bracket model and export it to STEP.”
  • “Open this STL file and show me a snapshot of it.”
  • “Measure the wall thickness of this part and flag anything under 2mm.”

Requirements

  • Python with build123d
  • cadgen for geometry inspection

What it can do on your machine

Read from SKILL.md and the folder at commit 523ae21. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python
    • uvx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.astral.sh

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Parametric CAD Modeling loads about 2.8k tokens when it runs, and up to ~35k if it reads all its reference files. Until then it costs about 59 tokens; SKILL.md has 1,352 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~35k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from earthtojake/text-to-cad at commit 523ae21, republished under its MIT licence (© earthtojake). 1,352 words, ~2,766 tokens.

Download SKILL.mdSave it as .claude/skills/cad/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.
name
cad
description
Create/edit parametric CAD models, organize CAD projects, export STEP/STL/3MF/GLB files, resolve prompt references, and measure geometry with cadgen. Open and visually review existing STEP/STP, STL, 3MF and GLB files in CAD Viewer.
license
MIT

CAD modeling and inspection

Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files for the current interface.

Start with the task

Read only the references needed for the request.

TaskFirst actionReference
Create or edit a part or assemblyFind the existing Python model, or create a decorated model below; edit source and run python <model>.py.Model contract, shape construction; positioning for assemblies
Organize a CAD projectFollow its existing layout; for a new multi-model project use src/, format output folders, and a model catalog.Project layout, minimal starters
Export STL, 3MF or GLBAdd a mesh decorator for a maintained output, or run the format's build INPUT.step OUT command for a one-off export.Mesh exports
Resolve a reference from a promptIdentify its saved STEP/STP document, open it with read_scene, and call scene.resolve(ref) as shown below.Reference syntax and inspection
Measure or check geometryWrite a Python check using native build123d geometry and, where useful, cadgen.geometry.Inspection and validation
Model from an image or drawingExtract the specified dimensions and record meaningful assumptions.Interpreting the request
Open an existing STEP/STP, STL, 3MF or GLBShow it to the user.Show the model
Review appearance or motionSnapshot the saved document; use declared kinematics or animation for poses and clips.Snapshots, kinematics
Diagnose a failureRead the error and check the relevant model, geometry or command contract.Repair loop, version migration
A message says to migrateDo the migration now; an unmigrated model silently loses kinematics, materials and animation.Version migration

For 2D DXF drawings use $dxf; this skill owns any 3D part the drawing projects. Use the corresponding robot-description skill for URDF, SRDF or SDF.

Setup and paths

Run cadgen through uv, so this skill's commands share one installation, and its warm build daemon, with the CAD app's server:

  • cadgen below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 cadgen
  • python below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 python

The first run downloads that installation and the first snapshot its headless browser; later runs reuse both.

cadgen doctor <skill-dir> reports the installation in use and checks that it is the one this skill pins, and that the CAD kernel loads; use it for installation or kernel load errors. Use the relevant subcommand's --help for additional flags.

Run project commands from the CAD project root. CLI input/output paths and read_scene/read_step paths are working-directory-relative; decorator out= paths are relative to the model script. Anchor file inputs on __file__ when the model must run from any directory.

Create or edit a model

A model is a plain Python script with a parameterless decorated function returning a build123d shape. Use one model per entrypoint, with the script and its declared outputs sharing a filename stem. For example, src/bracket.py:

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


if __name__ == "__main__":
    bracket()
bash
python src/bracket.py
  • Edit the model source when it exists, then run it to regenerate its outputs. Document export and snapshot commands take saved files and never run source.
  • Keep meaningful dimensions explicit. Use millimeters and XY/+Z unless the task or project specifies another convention; choose a useful functional datum. Prefer closed, positive-volume solids for physical parts, while honoring requests for surfaces or construction geometry.
  • Put parameterized geometry in ordinary factory functions; a decorated model selects a configuration. Keep module bodies cheap: create geometry and read CAD inputs inside the model or its helpers. Use the lazy bd import above; use postponed annotations when annotations mention bd types.
  • Call child models inside the assembly model. Place their results with .moved() or Location * shape to preserve shared geometry. Use meaningful occurrence labels and source-defined placements. Rerun the parent assembly to incorporate a changed child.
  • Read vendor STEP inputs with cadgen.read_step. Every file a build opens is an input on its own, whatever reads it (json.load, np.load, bd.import_step, a project font): nothing is declared. Never read a model's own output as its input. Geometry must not depend on untracked time, random values, environment variables or the working directory.
  • When named purchasable parts are needed, search $step-parts before making placeholders. Record an unsuccessful search and any placeholder assumptions.

For unfamiliar dimensions or interfaces, record the assumptions needed to model and verify them. Ask for missing information when it materially affects the requested result. Inspection and export requests do not need a modeling brief.

Mesh exports

Stack @stl, @threemf or @glb on the model for outputs that should be maintained on every run. A model may declare only meshes; STEP is optional. For a one-off export from an existing generated or imported STEP:

bash
cadgen stl build STEP/bracket.step STL/bracket.stl
cadgen 3mf build STEP/bracket.step 3MF/bracket.3mf
cadgen glb build STEP/bracket.step GLB/bracket.glb

Omitting OUT writes one sibling file with the requested extension. It does not discover declared model variants. See mesh exports for decorator examples, mesh tolerances and animated GLB.

Show full SKILL.md (586 more words)Show less

Prompt references and inspection

A reference such as /work/robot/STEP/assembly.step#o1.2.f7 identifies geometry in a particular saved document. Its file part is the document's absolute path as the CAD viewer copied it, with the file's real name and extension (in quotes when it holds a space or #). Open that path with read_scene, and pass the whole reference to resolve():

python
from cadgen import read_scene

scene = read_scene("/work/robot/STEP/assembly.step")
selection = scene.resolve("/work/robot/STEP/assembly.step#o1.2.f7")
face = selection.shape()  # owned native geometry, in document world coordinates
print(selection.ref, face.area)

A note from the viewer's Quick Edit reads: what the person wants, then File: (the document it is about), References: (one per line, as above) and, when they sketched on the view, Sketch: <path>: a PNG of the view with their markup (or the image itself, attached). Look at the sketch before changing the model.

For a bare #o1.2.f7, use the identified target file. Do not guess between ambiguous files or labels. Numeric refs belong to that saved revision; reopen and reselect after rebuilding. The inspection reference covers label aliases, enumeration, measurements and small reusable operations.

There is no inspect CLI. Put exploratory checks in the project's ignored tmp/ (or system /tmp/); retain reusable checks in checks/ or its existing test directory. Keep them outside model-source and raw-output folders.

Verify and hand off

Choose checks from the requested dimensions, clearances and topology. For STEP outputs, check the saved artifact with read_scene or read_step. For mesh-only models, check the model's returned native geometry and review the mesh output; do not add a STEP solely to satisfy the workflow. Report units, thresholds, selected geometry and untested requirements. A failed computation is not a pass.

After creating or visibly changing geometry, generate and review at least one snapshot of the resulting STEP or mesh. Snapshots are your own review: always render and read them yourself, never rely on the viewer for it. Choose additional views to expose the features under review; see snapshot policy and options.

bash
cadgen step snapshot STEP/bracket.step tmp/review.png
cadgen stl snapshot STL/bracket.stl tmp/mesh.png

Repair failures in the source and rerun the affected checks. Use geometry and images for CAD comparisons; path-targeted git status is bookkeeping, not geometric evidence. cadgen store why <model>.py explains unexpected rebuilds; python <model>.py --force forces one model, and cadgen daemon status shows build progress. More diagnostics are in the model contract.

Include output files, checks actually run, and material assumptions or limitations in the final response. The user sees the model in the viewer (Show the model), so don't attach snapshots unless they ask for an image. Explain any snapshot skip or failure using the cases in the snapshot reference.

Show the model

Show the user each file you create or change, and any they ask to see. Snapshots and validation don't replace this.

  • If your tools include cad_show (your host may prefix it), use it with the file's absolute path, and follow its description for when to call it again. cad_view reads what the user selected; cad_screenshot shows you what they see. Neither is a review of your own work.

  • Otherwise run the CAD Viewer, from any folder:

    bash
    cadgen viewer --host 127.0.0.1 --json --detach

    --detach returns once the viewer answers requests and leaves it running in the background: always pass it, since a foreground viewer never exits (and piping its output through tail can hide the URL for good). It starts this machine's one viewer, or reuses it. Read url from its one JSON line (never guess the port), and for each file return url?file=<its URL-encoded absolute path>. If it fails to launch, say so.

Generate changed artifacts first: the viewer never runs model scripts. Existing STEP files compile on open when needed. Topology selection and measurement require STEP; meshes support visual review.

© earthtojake, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 15 other files (references) in skills/cad of earthtojake/text-to-cad.

  • SKILL.md
  • LICENSE
  • agents/openai.yaml
  • references/animation-deformation.md
  • references/build123d-modeling.md
  • references/cad-brief.md
  • references/inspection-and-validation.md
  • references/kinematics.md
  • references/migrations.md
  • references/positioning.md
  • references/project-layout.md
  • references/project-template.md
  • references/repair-loop.md
  • references/snapshot-review.md
  • references/step-generation.md
  • references/supported-exports.md

Open the folder on GitHubat commit 523ae21

Compare with similar skills

Parametric CAD Modeling next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Parametric CAD Modeling compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Parametric CAD Modeling this skillearthtojake/text-to-cad19k—~2.8kAutomated safety check: PassMIT
G-code Slicer Toolautonomous-ai/openharness1.2k—~1.5kAutomated safety check: PassMIT
Image to Three.js Modelimg2threejs/img2threejs18k1 repos~8.2kAutomated safety check: PassApache-2.0
Phantom Motionpixelxzen/phantom-motion185—~1kAutomated safety check: PassApache-2.0
Procedural Geometry for Blender Scriptslukapiskorec/craftbot152—~1.4kAutomated safety check: PassCustom licence
Higgsfield 3DOSideMedia/higgsfield-ai-prompt-skill707—~6.8kAutomated safety check: PassMIT

Similar skills

  • G-code Slicer Tool

    autonomous-ai/openharness

    Slices 3D mesh files into printer-profiled plain G-code through real slicer CLIs, with backend discovery, input inspection, dry runs and static validation.

    1.2k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed
  • Phantom Motion

    pixelxzen/phantom-motion

    交互式动态视觉叙事生成器 v11.0 (Hybrid Drive Edition)。基于用户输入的任意主题关键词, 通过多轮交互式对话收集需求,利用 React 19 + Tailwind 4 驱动的 Minimal Mono 极简编辑器, 实时操纵隔离在 Iframe 中的硬核 GSAP/WebGL 影视级叙事引擎。

    185 GitHub stars~1k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed
  • Guides Blender Python that generates construction geometry from derived parametric expressions instead of hand-typed coordinates, so changes propagate and overlaps stay checkable.

    152 GitHub stars~1.4k tokensUpdated 9 days ago
    Game DevelopmentAuto-check passed
  • Higgsfield 3D

    OSideMedia/higgsfield-ai-prompt-skill

    A skill your agent uses when the user wants a 3D model, mesh or GLB out of Higgsfield — image-to-3D, multi-view-to-3D, text-to-3D, rigging or animating a mesh, remesh / retopology, retexture, or 3D…

    707 GitHub stars~6.8k tokensUpdated 13 days ago
    Game DevelopmentAuto-check passed
  • 把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D Canvas 动态几何画板(椭圆/双曲线/抛物线/圆 + 动直线/动点 + 向量 + 标注 + 画笔涂鸦)。

    1.4k GitHub starsUsed in 1 repo~1.6k tokens
    Research & ScienceAuto-check passed

More from earthtojake/text-to-cad

All 12 skills in this repo
  • DfAM Printability Check

    earthtojake/text-to-cad

    Measures STL, OBJ, PLY or 3MF mesh files against additive manufacturing design limits and reports printability findings for each print process.

    19k GitHub starsUsed in 2 repos~1.5k tokens
    Auto-check passed
  • Step Parts

    earthtojake/text-to-cad

    Find, evaluate, and download common purchasable CAD parts from step.parts, including named off-the-shelf actuators, servos, motors, electronics boards, connectors, screws, bolts, nuts, washers…

    19k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • Design for Manufacturing Review

    earthtojake/text-to-cad

    Guided DFM review of a part for sheet metal, CNC machining or injection molding, covering bends, tool access, draft and undercuts, with evidence-first measurement rules.

    19k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • DXF Drawing Generation

    earthtojake/text-to-cad

    Generates, regenerates and validates 2D DXF drawings from Python build123d sources for profiles, gaskets, panels and cut layouts, and reviews them in CAD Viewer.

    19k GitHub starsUsed in 1 repo~4.3k tokens
    Auto-check passed
  • OrcaSlicer G-code Slicing

    earthtojake/text-to-cad

    Slices STL, 3MF or OBJ models into printer-ready G-code with OrcaSlicer, either headless from the command line or by opening the model in the app.

    19k GitHub stars~989 tokensUpdated today
    Auto-check passed
  • URDF Robot Description Authoring

    earthtojake/text-to-cad

    Guides writing, editing and validating URDF robot description files, with a design ledger, exact frame semantics and computed inertials checked by a validator.

    19k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed

Works with

Questions about Parametric CAD Modeling

What does Parametric CAD Modeling do?

Creates and edits parametric CAD parts in Python, organizes multi-model projects, exports to STEP, STL, 3MF or GLB, and opens existing CAD files for visual review. The skill routes by task rather than loading every reference up front. Creating or editing a part means finding the existing Python model or starting from a decorated template, then editing the source and running it directly; a dedicated reference covers the model contract and build123d shape construction, with a separate one for positioning parts within an assembly.

When should I use Parametric CAD Modeling?

Parametric CAD Modeling fits situations like: creating or editing a parametric CAD part or assembly in Python; exporting a CAD model to STEP, STL, 3MF or GLB; opening and visually reviewing an existing STEP, STL, 3MF or GLB file.

How do I install Parametric CAD Modeling in Claude Code?

Run `npx skills add earthtojake/text-to-cad --skill cad -a claude-code`. Or copy the skill folder (skills/cad in earthtojake/text-to-cad) into .claude/skills/cad in your project. Claude Code loads it when a task matches its description.

How do I install Parametric CAD Modeling in Codex?

Run `npx skills add earthtojake/text-to-cad --skill cad -a codex`. Or copy the skill folder (skills/cad in earthtojake/text-to-cad) into .agents/skills/cad in your project. Codex loads it when a task matches its description.

Can I use Parametric CAD Modeling in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add earthtojake/text-to-cad --skill cad -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cad, .gemini/skills/cad, .github/skills/cad and .opencode/skills/cad in your project.

What does Parametric CAD Modeling need to run?

Going by SKILL.md and its folder, Parametric CAD Modeling needs the command-line tools its instructions call (python and uvx). Our summary lists: Python with build123d; cadgen for geometry inspection.

Does Parametric CAD Modeling access the network?

SKILL.md names 1 domain. As links in the text: docs.astral.sh. This is read from the text; nothing was executed.

Is Parametric CAD Modeling safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Parametric CAD Modeling use?

Parametric CAD Modeling is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Parametric CAD Modeling use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 32k tokens, read only when the agent opens those files.

What are the alternatives to Parametric CAD Modeling?

Skills that share tags, products or a category with Parametric CAD Modeling: G-code Slicer Tool (autonomous-ai/openharness, 1.2k stars), Image to Three.js Model (img2threejs/img2threejs, 18k stars), Phantom Motion (pixelxzen/phantom-motion, 185 stars) and Procedural Geometry for Blender Scripts (lukapiskorec/craftbot, 152 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Parametric CAD Modeling?

earthtojake (a GitHub user) maintains it in earthtojake/text-to-cad, which has 18,560 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 9, 2026.

Source: earthtojake/text-to-cad on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.