Awesome-openclaw-skills 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.

install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bambu-cli" ~/.claude/skills/sundial-org-awesome-openclaw-skills-bambu-cli && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/bambu-cli" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-bambu-cli && rm -rf "$T"
manifest: skills/bambu-cli/SKILL.md
source content

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.