gcode
An agent skill by earthtojake, from earthtojake/text-to-cad. Tags: automation, cli, devops, evaluation, local-workflow.
What it does
Generate, inspect, dry-run, and statically validate plain FDM `.gcode` from 3D mesh files by orchestrating real slicer CLIs. Use when Codex needs to slice `.stl`, `.obj`, unsliced `.3mf`, `.ply`, `.glb`, or `.gltf` into printer-profiled G-code, discover local slicer backends, inspect whether a mesh is slice-ready, or validate generated G-code before any printer-specific handoff.
Install
With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:
npx skills add earthtojake/text-to-cad --skill gcode
Or copy the skill folder into Claude Code's skills directory by hand (~/.claude/skills for every project, or .claude/skills inside one):
git clone --depth 1 https://github.com/earthtojake/text-to-cad
cp -r text-to-cad/skills/gcode ~/.claude/skills/gcode
Safety box score
Grade B, low risk: 19 of 100 risk points, rated 2026-09-22. The grade rates what the skill and its scripts can reach on the machine of whoever installs it, across eight categories from shell execution to secrets access. How the score works.
This skill slices local mesh files into plain FDM G-code by invoking installed slicer CLIs and, for some formats, parsing meshes with `trimesh`. The main risks are local code execution through those external slicer binaries, reading and writing whatever absolute paths you put in the wrapper profile and output fields, and a macOS install suggestion for OrcaSlicer.
| Category | Level | Why |
|---|---|---|
| Code & shell execution | 2 (moderate) | `scripts/gcode_tool.py` builds real slicer commands and runs them with `subprocess.run(plan["command"], check=False, capture_output=True, text=True)`, so using the skill executes installed local binaries. |
| Network access | 0 (none) | The shipped files do not download from or send data to remote hosts; discovery uses PATH and local app-bundle locations only. |
| Filesystem reach | 1 (low) | It reads input meshes and absolute native profile paths, and writes the requested G-code plus temporary STL files, but it does not recurse through user data or touch system files by default. |
| Secrets & credentials | 0 (none) | There is no code to read keychains, tokens, browser sessions, or `.env` files, and no request for the user to paste secrets. |
| Privilege & persistence | 1 (low) | The docs suggest `brew install --cask orcaslicer` on macOS, which can install an app in `/Applications`, but there is no sudo, service registration, or shell-startup editing. |
| Instruction hijack surface | 0 (none) | I found no prompt-injection style instructions to skip confirmations, hide actions, or follow remote instructions. |
| Irreversible actions | 1 (low) | The skill can generate and overwrite local G-code files, but it explicitly stops short of uploading, starting, or packaging print jobs. |
| Transparency | 0 (none) | All shipped source files are readable; there are no binaries, packed payloads, or decoded-at-runtime code in the skill itself. |
Before installing
- Read `scripts/gcode_tool.py` and confirm the only command execution is your local slicer binary.
- If you do not already trust the installed slicer, review the `brew install --cask orcaslicer` suggestion before using it.
- Use a scratch wrapper profile whose `native_config` and `native_filaments` paths point only to local files you trust.
- Run `slice --dry-run` and `validate` on a small test mesh before allowing `--execute`.
Rated 2026-09-22 by an automated review of 5 files from the skill's repository.
Source
- Repository
- earthtojake/text-to-cad (all skills from this repository)
- Path
- skills/gcode/SKILL.md
- Branch
- main
- Updated
- 2026-09-19
Related skills
- bambu-labs — Dry-run, upload, and cautiously initiate local Bambu Lab print jobs from validated plain `.gcode`, using Bambu LAN FTPS/MQTT handoffs.
- devcontainer-setup — Creates devcontainers with Claude Code, language-specific tooling (Python/Node/Rust/Go), and persistent volumes.
- dfam-check — Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF).
- dxf — Generate, regenerate, and validate 2D DXF drawings from Python build123d sources.
- devops-engineer — Creates Dockerfiles, configures CI/CD pipelines, writes Kubernetes manifests, and generates Terraform/Pulumi infrastructure templates.
- E2E Testing Nori Skillsets Subcommands — Use when you need to interactively test a nori-skillsets CLI subcommand end-to-end via tmux, with full filesystem isolation