openclaw / bambu-cli
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/bambu-cli && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/2518" && unzip -o skill.zip -d .claude/skills/bambu-cli && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/bambu-cli/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
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.
Skill Content
--- name: bambu-cli description: 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. --- # 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-file` or `--access-code-stdin` only. - Require confirmation for destructive actions (stop print, delete files, gcode send, calibrate, reboot); use `--force`/`--confirm` only when the user explicitly agrees. - Offer `--dry-run` when supported to preview actions. - Choose output format: human by default, `--json` for structured output, `--plain` for 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/remove` to 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 `status` for a one-off snapshot; use `watch` for periodic updates (`--interval`, `--refresh`). - Use `--json`/`--plain` for scripting. ### Printing - Use `print start <file>` with `.3mf` or `.gcode`. - Use `--plate <n|path>` to select a plate number or gcode path inside a 3mf. - Use `--no-upload` only when the file already exists on the printer; do not use it with `.gcode` input. - Control AMS: `--no-ams`, `--ams-mapping "0,1"`, `--skip-objects "1,3"`. - Disable flow calibration with `--flow-calibration=false` if requested. ### Files and camera - Use `files list [--dir <path>]`, `files upload <local> [--as <remote>]`. - Use `files download <remote> --out <path|->`; use `--force` to allow writing binary data to a TTY. - Use `files delete <remote>` only with confirmation. - Use `camera snapshot --out <path|->`; use `--force` to 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 set` with `--part/--aux/--chamber` values `0-255` or `0-1`. - Use `light on|off|status`. ### Gcode and calibration - Use `gcode send <line...>` or `gcode send --stdin` (confirmation required; `--no-check` skips validation). - Avoid combining `--access-code-stdin` with `gcode send --stdin`; use an access code file instead. - Use `calibrate` with `--no-bed-level`, `--no-motor-noise`, `--no-vibration` when requested. ### Troubleshooting - Use `doctor` to check TCP connectivity to MQTT/FTPS/camera ports; suggest `--no-camera` if 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.