gcode — Claude Code skill: what it does, how to install
Slices STL, 3MF, and OBJ models into printer-ready G-code through OrcaSlicer. Use it when you need a print file without connecting to the printer.
npx skills add earthtojake/text-to-cad --skill gcode -a claude-codeWhat gcode does
The skill runs OrcaSlicer from the command line or opens the model in the desktop app. It accepts .stl, .3mf, and .obj files and produces plain .gcode plus a sliced 3MF file with the .gcode.3mf extension. STEP files can be opened in the app; for command-line slicing, export them to STL or 3MF through $cad first.
It includes scripts/orca_presets.py, a Python 3 script with no dependencies. The script searches user and built-in OrcaSlicer profiles for a printer, process, and filament, then writes complete presets for headless slicing. The CLI needs a process compatible with the selected printer, and --outputdir must use an absolute path.
The skill never contacts a printer. Check that the model fits the bed and review the settings written at the end of out/plate_1.gcode; a wrong bed size or temperature can damage the printer.
What it helps with
- slice STL, 3MF, or OBJ models into G-code
- build complete OrcaSlicer presets for a selected printer
- produce a sliced 3MF file for a Bambu Lab printer
- check model size and print settings before printing
Example prompts for the agent
- Find printer, process, and filament profiles for `MK4S` with `scripts/orca_presets.py`, then prepare the presets for slicing.
- Slice `model.stl` with OrcaSlicer into `/absolute/path/to/out` and create `model.gcode.3mf`.
- Check the size of `model.stl` and the settings in `out/plate_1.gcode` without connecting to a printer.
How to install gcode
1Skills CLI (Vercel)
npx skills add earthtojake/text-to-cad --skill gcode -a claude-code2Manually: put the files in place
~/.claude/skills/gcode/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gcode/
1Skills CLI (Vercel)
npx skills add earthtojake/text-to-cad --skill gcode -a codex2Manually: put the files in place
.agents/skills/gcode/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add earthtojake/text-to-cad --skill gcode -a cursor2Manually: put the files in place
.cursor/skills/gcode/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install earthtojake/text-to-cad gcode2Manually: put the files in place
.github/skills/gcode/SKILL.md1Skills CLI (Vercel)
npx skills add earthtojake/text-to-cad --skill gcode -a gemini-cli2Platform CLI
gemini skills install https://github.com/earthtojake/text-to-cad --path skills/gcodeManually: put the files in place
.devin/skills/gcode/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add earthtojake/text-to-cad --skill gcode -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set7
The whole set →Similar
Questions about gcode
How do I install gcode in Claude Code?
Run npx skills add earthtojake/text-to-cad --skill gcode -a claude-code, run the same command again, and check ~/.claude/skills/gcode/SKILL.md.
What does gcode do?
The skill slices models through OrcaSlicer into plain .gcode or .gcode.3mf. It also helps find printer, process, and filament profiles before headless slicing.
What is required for headless slicing with gcode?
OrcaSlicer and complete compatible printer, process, and filament presets are required. The scripts/orca_presets.py script needs Python 3 and has no dependencies.
Source text
SKILL.md · MIT
---
name: gcode
description: Slice 3D models into printer-ready G-code with OrcaSlicer, the open-source slicer with built-in profiles for most FDM printers (Prusa, Bambu Lab, Creality, Voron and more). Use when the user wants an `.stl`, `.3mf` or `.obj` model sliced for their printer, as a sliced `.gcode.3mf` or plain `.gcode`, headless with OrcaSlicer's command line or by opening the model in OrcaSlicer. Never contacts a printer.
license: MIT
---
# G-code
Provenance: maintained in [earthtojake/text-to-cad](https://github.com/earthtojake/text-to-cad).
Use the installed local skill files as the runtime source of truth; the
repository link is only for provenance and release review.
Slice with OrcaSlicer, headless (below) or by opening the model in the
OrcaSlicer app for the user. The agent never contacts a printer: for a Bambu
Lab printer, hand the result to `$bambu-labs`; for any other printer, give the
user the `.gcode`.
## Install OrcaSlicer
- macOS: `brew install --cask orcaslicer`. The command line is
`/Applications/OrcaSlicer.app/Contents/MacOS/OrcaSlicer`.
- Windows and Linux: install a release from
https://github.com/OrcaSlicer/OrcaSlicer/releases. The command is
`orca-slicer`; on Linux, run it from the AppImage or Flatpak.
Below, `<orca>` is that command.
## Slice headless
OrcaSlicer's command line (https://www.orcaslicer.com/wiki/cli/cli_mode) needs
complete presets: it doesn't fill in a preset's parent settings, and it slices
only with a process whose compatible printers name the printer.
`scripts/orca_presets.py` (Python 3, no dependencies) writes them from
OrcaSlicer's presets, searching the user's own first, then OrcaSlicer's
built-in profiles.
1. Find the user's printer, process and filament presets. Prefer the presets
the user prints with; never invent one, since a wrong bed size or
temperature can damage the printer.
```bash
python scripts/orca_presets.py --list machine --match "MK4S"
python scripts/orca_presets.py --list process --match "@MK4S 0.4"
python scripts/orca_presets.py --list filament --match "PLA @MK4S"
```
2. Write the complete presets:
```bash
python scripts/orca_presets.py --printer "Prusa MK4S 0.4 nozzle" \
--process "0.20mm SPEED @MK4S 0.4" --filament "Prusa Generic PLA @MK4S" \
--out presets
```
3. Slice. Give `--outputdir` an absolute path:
```bash
<orca> model.stl \
--load-settings "presets/process.json;presets/printer.json" \
--load-filaments presets/filament-1.json \
--arrange 1 --slice 0 \
--outputdir /absolute/path/to/out --export-3mf model.gcode.3mf
```
This writes `plate_1.gcode`, the plain G-code, and `model.gcode.3mf`, the
sliced 3MF, into that folder. The command line reads `.stl`,
`.3mf`, `.obj` and `.amf`; export STEP to STL or 3MF with `$cad` first.
Override one setting with `--<setting>=<value>`, using the setting's key
with hyphens for underscores, such as `--layer-height=0.16`.
## Open in OrcaSlicer
When the user would rather pick presets and slice themselves, or no preset can
be found, open the model in the app: `open -a OrcaSlicer model.stl` on macOS,
`Start-Process model.stl` on Windows when OrcaSlicer opens that file type, or
`orca-slicer model.stl` on Linux. The app also reads STEP.
## Check before printing
- `<orca> model.stl --info` prints the model's size; it has to fit the bed.
- Check the slice's settings, which OrcaSlicer writes at the end of the G-code:
```bash
grep -E '^; (printer_model|nozzle_diameter|filament_type|nozzle_temperature|hot_plate_temp|bed_temperature) =|printing time' out/plate_1.gcode
```
Confirm they match the user's printer and material before anyone prints it.
## Hand off
- A Bambu Lab printer: `$bambu-labs`, with the `.gcode.3mf`.
- Any other printer: the user prints the `.gcode` from their printer's app, its
web interface (PrusaLink, OctoPrint, Mainsail, Fluidd) or an SD card.
© earthtojake · MIT · earthtojake/text-to-cad