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.

533 stars

Best use case

bambu-cli is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using bambu-cli should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/bambu-cli/SKILL.md --create-dirs "https://raw.githubusercontent.com/sundial-org/awesome-openclaw-skills/main/skills/bambu-cli/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bambu-cli/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bambu-cli Compares

Feature / Agentbambu-cliStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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.

Related Skills

portfolio-watcher

533
from sundial-org/awesome-openclaw-skills

Monitor stock/crypto holdings, get price alerts, track portfolio performance

portainer

533
from sundial-org/awesome-openclaw-skills

Control Docker containers and stacks via Portainer API. List containers, start/stop/restart, view logs, and redeploy stacks from git.

portable-tools

533
from sundial-org/awesome-openclaw-skills

Build cross-device tools without hardcoding paths or account names

polymarket

533
from sundial-org/awesome-openclaw-skills

Trade prediction markets on Polymarket. Analyze odds, place bets, track positions, automate alerts, and maximize returns from event outcomes. Covers sports, politics, entertainment, and more.

polymarket-traiding-bot

533
from sundial-org/awesome-openclaw-skills

No description provided.

polymarket-analysis

533
from sundial-org/awesome-openclaw-skills

Analyze Polymarket prediction markets for trading edges. Pair Cost arbitrage, whale tracking, sentiment analysis, momentum signals, user profile tracking. No execution.

polymarket-agent

533
from sundial-org/awesome-openclaw-skills

Autonomous prediction market agent - analyzes markets, researches news, and identifies trading opportunities

polymarket-5

533
from sundial-org/awesome-openclaw-skills

Query Polymarket prediction markets. Use for questions about prediction markets, betting odds, market prices, event probabilities, or when user asks about Polymarket data.

polymarket-4

533
from sundial-org/awesome-openclaw-skills

Query Polymarket prediction markets. Use for questions about prediction markets, betting odds, market prices, event probabilities, or when user asks about Polymarket data.

polymarket-3

533
from sundial-org/awesome-openclaw-skills

Query Polymarket prediction market odds and events via CLI. Search for markets, get current prices, list events by category. Supports sports betting (NFL, NBA, soccer/EPL, Champions League), politics, crypto, elections, geopolitics. Real money markets = more accurate than polls. No API key required. Use when asked about odds, probabilities, predictions, or "what are the chances of X".

polymarket-2

533
from sundial-org/awesome-openclaw-skills

Query Polymarket prediction markets - check odds, trending markets, search events, track prices.

pollinations

533
from sundial-org/awesome-openclaw-skills

Pollinations.ai API for AI generation - text, images, videos, audio, and analysis. Use when user requests AI-powered generation (text completion, images, videos, audio, vision/analysis, transcription) or mentions Pollinations. Supports 25+ models (OpenAI, Claude, Gemini, Flux, Veo, etc.) with OpenAI-compatible chat endpoint and specialized generation endpoints.