bambu-cli
SKILL.md
Bambu CLI
Overview
Use bambu-cli to configure, monitor, and control BambuLab printers over MQTT/FTPS/camera, producing exact commands and safe defaults.
Defaults and safety
- Confirm the target printer (profile or IP/serial) and resolve precedence: flags > env > project config > user config.
- Avoid access codes in flags; use
--access-code-fileor--access-code-stdinonly. - Require confirmation for destructive actions (stop print, delete files, gcode send, calibrate, reboot); use
--force/--confirmonly when the user explicitly agrees. - Offer
--dry-runwhen supported to preview actions. - Choose output format: human by default,
--jsonfor structured output,--plainfor key=value output.
Quick start
- Configure a profile:
bambu-cli config set --printer <name> --ip <ip> --serial <serial> --access-code-file <path> --default - Status:
bambu-cli status - Watch:
bambu-cli watch --interval 5 - Start print:
bambu-cli print start <file.3mf|file.gcode> --plate 1 - Pause/resume/stop:
bambu-cli print pause|resume|stop - Camera snapshot:
bambu-cli camera snapshot --out snapshot.jpg
Task guidance
Setup & config
- Use
config set/list/get/removeto manage profiles. - Use env vars to avoid flags in scripts:
BAMBU_PROFILE,BAMBU_IP,BAMBU_SERIAL,BAMBU_ACCESS_CODE_FILE,BAMBU_TIMEOUT,BAMBU_NO_CAMERA,BAMBU_MQTT_PORT,BAMBU_FTP_PORT,BAMBU_CAMERA_PORT. - Note config locations: user
~/.config/bambu/config.json, project./.bambu.json.
Monitoring
- Use
statusfor a one-off snapshot; usewatchfor periodic updates (--interval,--refresh). - Use
--json/--plainfor scripting.
Printing
- Use
print start <file>with.3mfor.gcode. - Use
--plate <n|path>to select a plate number or gcode path inside a 3mf. - Use
--no-uploadonly when the file already exists on the printer; do not use it with.gcodeinput. - Control AMS:
--no-ams,--ams-mapping "0,1",--skip-objects "1,3". - Disable flow calibration with
--flow-calibration=falseif requested.
Files and camera
- Use
files list [--dir <path>],files upload <local> [--as <remote>]. - Use
files download <remote> --out <path|->; use--forceto allow writing binary data to a TTY. - Use
files delete <remote>only with confirmation. - Use
camera snapshot --out <path|->; use--forceto allow stdout to a TTY.
Motion, temps, fans, light
- Use
home,move z --height <0-256>. - Use
temps get|set(--bed,--nozzle,--chamber; require at least one). - Use
fans setwith--part/--aux/--chambervalues0-255or0-1. - Use
light on|off|status.
Gcode and calibration
- Use
gcode send <line...>orgcode send --stdin(confirmation required;--no-checkskips validation). - Avoid combining
--access-code-stdinwithgcode send --stdin; use an access code file instead. - Use
calibratewith--no-bed-level,--no-motor-noise,--no-vibrationwhen requested.
Troubleshooting
- Use
doctorto check TCP connectivity to MQTT/FTPS/camera ports; suggest--no-cameraif the camera port is unreachable. - Assume default ports: MQTT 8883, FTPS 990, camera 6000 unless configured.
Reference
Read references/commands.md for the full command and flag reference.
Weekly Installs
3
Repository
clawdbot/skillsInstalled on
windsurf2
trae2
opencode2
codex2
claude-code2
antigravity2