bambu-cli
Operate and troubleshoot BambuLab printers with the bambu-cli (status/watch, print start/pause/resume/stop, files, camera, gcode, AMS, calibration, motion, fans, light, config, doctor). Use when a user asks to control or monitor a BambuLab printer, set up profiles or access codes, or translate a task into safe bambu-cli commands with correct flags, output format, and confirmations.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
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.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-30
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!