beambam
Signed-MQTT bridge and daemon stack for every Bambu Lab printer. Pure Python. No live cloud dependency. Runs anywhere paho-mqtt does — Linux, macOS, WSL, Android via Termux.
# 1. Install (Linux / macOS / WSL / Termux)
pip install beambam
# 2. Interactive wizard: discover printer + write creds.
beambam init
# 3. Verify everything's healthy.
beambam doctor
# 4. Preview a print plan before sending it hot.
beambam analyze model.gcode.3mf
# 5. Push + start print, AMS slot 5.
beambam print model.gcode.3mf --slot 5
# 6. Run the all-in-one daemon (web UI :8765, HA, Prometheus).
beambam boo --http :8765 --queue --timelapse
# 7. Camera proxy in the background; snap a frame any time.
beambam cam start && beambam cam - 122
- subcommands
- 9
- printer models
- 1034
- tests passing
- 57
- HA entities
- 25
- MCP tools
- MIT
- license
Start a print over pure LAN. No Developer Mode, no live cloud.
Bambu firmware since Jan-2025 rejects unsigned control commands and wants a signing cert whose CN matches the printer, so a shared cert will not do. beambam gives you both ways to unlock writes — your choice. Extract the per-installation key once from a signed-in Bambu Handy (over adb): control + print then run over LAN with no Developer Mode, and Bambu Cloud + remote access keep working. Or flip Developer Mode on the printer like every other client, and beambam drives it over the unsigned LAN path (no key needed). The key path is the one no other tool has — it signs pause / resume / stop / start / skip and starts a print by FTP-ing the .gcode.3mf plus a project_file whose file location is RSA-encrypted to the printer device cert. That key is Bambu-issued, so a prior cloud login is a one-time setup step, not a runtime dependency.
Home Assistant, MCP, Web UI, Prometheus, WebRTC.
One `boo` daemon publishes everything. ~69 HA entities via MQTT discovery (per-tray AMS color + humidity warnings). 25 MCP tools for Claude / Cursor / Continue. Mobile-friendly web UI with multi-printer queue + AMS metadata editor. Prometheus /metrics for SREs. WebRTC chamber camera under 100ms latency.
Read the print plan before the printer does.
beambam analyze model.3mf dissects filament and nozzle assignment, walks the layer phases, counts real flushes (not cosmetic tool-switches), reports total purge volume in mm and grams, and warns when a tri-color middle is about to burn 24 grams of filament on a wipe tower.
Pure-Python wheel. Termux to homelab.
Tested in CI on Python 3.10–3.13 on Ubuntu + macOS. The bridge runs anywhere paho-mqtt + cryptography do — including aarch64 Android phones via Termux, where the official Bambu Studio has never shipped a working Network Plugin.
Doctor.
One command, six categories, semantic exit code. Returns 0 when everything's green, 1 on warnings, 2 on hard failures. Wire it into your night-print
pre-flight script.
Below: a real run captured mid-print on an X2D with two AMS units showing damp filament.
$ beambam doctor
AMS
✓ unit 0 humidity level 2/4
⚠ unit 2 humidity level 3/4 — getting damp; consider drying
⚠ unit 3 humidity level 3/4 — getting damp; consider drying
Camera
✓ ipcam 1080p record=disable
Errors
✓ active HMS codes no active errors
Job
· print state RUNNING 67% layer 165/248 ETA 248min
Network
✓ wifi signal −52dBm
Sensors
✓ bed thermistor 45.0°C
✓ nozzle thermistor 220.0°C
Summary: 6 pass, 2 warn, 0 fail