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.
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.
$ npx skills add earthtojake/text-to-cad --skill cad -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install earthtojake/text-to-cad cad --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "cad" agent skill from https://github.com/earthtojake/text-to-cad/tree/main/skills/cad into .claude/skills/cad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cad", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/earthtojake/text-to-cad/tree/main/skills/cadType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add earthtojake/text-to-cad --skill cad -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install earthtojake/text-to-cad cad --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/earthtojake/text-to-cad.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cad .agents/skills/cad && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cad" agent skill from https://github.com/earthtojake/text-to-cad/tree/main/skills/cad into .agents/skills/cad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cad", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add earthtojake/text-to-cad --skill cad -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install earthtojake/text-to-cad cad --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/earthtojake/text-to-cad.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cad .cursor/skills/cad && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cad" agent skill from https://github.com/earthtojake/text-to-cad/tree/main/skills/cad into .cursor/skills/cad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cad", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/earthtojake/text-to-cad.git --path skills/cad--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add earthtojake/text-to-cad --skill cad -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install earthtojake/text-to-cad cad --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/earthtojake/text-to-cad.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cad .gemini/skills/cad && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cad" agent skill from https://github.com/earthtojake/text-to-cad/tree/main/skills/cad into .gemini/skills/cad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cad", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install earthtojake/text-to-cad cadInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add earthtojake/text-to-cad --skill cad -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/earthtojake/text-to-cad.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cad .github/skills/cad && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cad" agent skill from https://github.com/earthtojake/text-to-cad/tree/main/skills/cad into .github/skills/cad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cad", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add earthtojake/text-to-cad --skill cad -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install earthtojake/text-to-cad cad --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/earthtojake/text-to-cad.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cad .opencode/skills/cad && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cad" agent skill from https://github.com/earthtojake/text-to-cad/tree/main/skills/cad into .opencode/skills/cad/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cad", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cadCreates 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. 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.
Read from SKILL.md and the folder at commit 523ae21. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pythonuvxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.astral.shFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from earthtojake/text-to-cad at commit 523ae21, republished under its MIT licence (© earthtojake). 1,352 words, ~2,766 tokens.
.claude/skills/cad/SKILL.md (or your agent's skills folder). This skill also uses 15 other files; get the full folder from GitHub.Provenance: maintained in earthtojake/text-to-cad. Use the installed local skill files for the current interface.
Read only the references needed for the request.
| Task | First action | Reference |
|---|---|---|
| Create or edit a part or assembly | Find 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 project | Follow 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 GLB | Add 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 prompt | Identify 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 geometry | Write a Python check using native build123d geometry and, where useful, cadgen.geometry. | Inspection and validation |
| Model from an image or drawing | Extract the specified dimensions and record meaningful assumptions. | Interpreting the request |
| Open an existing STEP/STP, STL, 3MF or GLB | Show it to the user. | Show the model |
| Review appearance or motion | Snapshot the saved document; use declared kinematics or animation for poses and clips. | Snapshots, kinematics |
| Diagnose a failure | Read the error and check the relevant model, geometry or command contract. | Repair loop, version migration |
| A message says to migrate | Do 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.
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 cadgenpython below means uvx --no-config --managed-python --python 3.13 --from cadgen==0.7.19 pythonThe 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.
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:
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()python src/bracket.pybd import above;
use postponed annotations when annotations mention bd types..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.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.$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.
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:
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.glbOmitting 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.
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():
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.
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.
cadgen step snapshot STEP/bracket.step tmp/review.png
cadgen stl snapshot STL/bracket.stl tmp/mesh.pngRepair 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 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:
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
SKILL.md and 15 other files (references) in skills/cad of earthtojake/text-to-cad.
Open the folder on GitHubat commit 523ae21
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Parametric CAD Modeling this skillearthtojake/text-to-cad | 19k | — | ~2.8k | Automated safety check: Pass | MIT | |
| G-code Slicer Toolautonomous-ai/openharness | 1.2k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Phantom Motionpixelxzen/phantom-motion | 185 | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Procedural Geometry for Blender Scriptslukapiskorec/craftbot | 152 | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| Higgsfield 3DOSideMedia/higgsfield-ai-prompt-skill | 707 | — | ~6.8k | Automated safety check: Pass | MIT |
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.
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.
pixelxzen/phantom-motion
交互式动态视觉叙事生成器 v11.0 (Hybrid Drive Edition)。基于用户输入的任意主题关键词, 通过多轮交互式对话收集需求,利用 React 19 + Tailwind 4 驱动的 Minimal Mono 极简编辑器, 实时操纵隔离在 Iframe 中的硬核 GSAP/WebGL 影视级叙事引擎。
lukapiskorec/craftbot
Guides Blender Python that generates construction geometry from derived parametric expressions instead of hand-typed coordinates, so changes propagate and overlaps stay checkable.
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…
wy51ai/edulab
把一道解析几何题解成一个自包含的交互教学网页:左栏题面 + 动态控制台(一个 可变参数滑块驱动实时重算的几何量 + 理论范围/定值指示),中栏 KaTeX 分步解析,右栏 2D Canvas 动态几何画板(椭圆/双曲线/抛物线/圆 + 动直线/动点 + 向量 + 标注 + 画笔涂鸦)。
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.
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…
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.
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.
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.
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.
Works with
Categories
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.
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.
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.
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.
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.
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.
SKILL.md names 1 domain. As links in the text: docs.astral.sh. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.