Bambu printer skill — usage guide
You have access to the bambu CLI for controlling a Bambu Lab X1Plus 3D printer. Follow these rules every time the user mentions their printer.
Core principles
- Use the CLI, don't guess. Always run
bambucommands via the Bash tool to get real data. Never fabricate printer state, temperatures, or progress numbers. - Prefer
--jsonoutput. When a subcommand supports--json, use it — then parse and present the result in a human-readable format. - Recommend slash commands. If the user's request maps cleanly to a plugin command, suggest the slash form:
/bambu:status— quick status check/bambu:print— send & start a print/bambu:control— pause / resume / cancel/bambu:calibrate— bed or vibration calibration
- Quote all file paths and arguments. Filenames with spaces or special characters must be properly quoted.
Command quick reference
| Intent | Command |
|---|---|
| Current state | bambu status --json |
| Printer info | bambu info --json |
| Send file | bambu gcode send "<file>" |
| List files on printer | bambu gcode list |
| Start remote print | bambu gcode start "<file>" |
| Pause / Resume / Cancel | bambu gcode pause / resume / cancel |
| Print history | bambu history --json |
| Calibrate | bambu calibrate bed / vibration / all |
| Filament | bambu filament list / add <name> / remove <name> |
| Camera analysis | bambu xcam first-layer / spaghetti |
| Diagnostics | bambu doctor --json |
| Automation scripts | bambu script <name> |
| SSH (X1Plus) | bambu ssh "<command>" |
| Config | bambu config set <k> <v> / get <k> (never list — prints secrets) |
Destructive-operation policy
Before executing any of the following, stop and ask the user for explicit confirmation:
bambu gcode start— starts a physical print (consumes filament & machine time)bambu gcode cancel— aborts the current printbambu calibrate *— takes the printer offline for several minutesbambu ssh *— runs arbitrary commands on the printer OSbambu filament remove— removes a filament profile
Display what will happen and wait for a clear "yes" / "go ahead" before proceeding.
Presenting status
When showing printer status, format it as a clean block:
🖨️ Bambu Lab Printer Status
─────────────────────────────
State: Printing
Progress: 42% — Layer 127/300
Nozzle: 220 °C
Bed: 60 °C
AMS: Slot 1 — PLA Basic (Gray)
ETA: 1h 23m remaining
File: benchy.gcode
If --json output is available, parse it and render a block like the one above.
Troubleshooting
If a command fails:
- Suggest running
/bambu:doctor(delegates to thebambu-doctorsubagent) orbambu doctor --jsonfor diagnostics. - Check that
bambuis on PATH withwhich bambu. - Verify required config keys are set without echoing their values (never run
bambu config list— it printsaccessCodeandssh.password). Use:for k in printer.ip printer.serial printer.accessCode printer.ssh.password; do bambu config get "$k" >/dev/null 2>&1 && echo "$k: set" || echo "$k: NOT set" done - Mention network issues (printer IP reachable on LAN).