# Gcode

Slice 3D models into printer-ready G-code with OrcaSlicer, the open-source slicer with...

- Repository: https://github.com/earthtojake/text-to-cad (24718 stars)
- Category: Media
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add earthtojake/text-to-cad --skill gcode -g -a claude-code -y`
Codex: `npx skills add earthtojake/text-to-cad --skill gcode -g -a codex -y`
Cursor: `npx skills add earthtojake/text-to-cad --skill gcode -g -a cursor -y`
Gemini CLI: `npx skills add earthtojake/text-to-cad --skill gcode -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add earthtojake/text-to-cad`

## 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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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:

The rest: https://github.com/earthtojake/text-to-cad/blob/HEAD/skills/gcode/SKILL.md
