v1.5.0 · signed control · pure-LAN print · per-install key recovery

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.

Install & first print · < 90s
# 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
02 · By the numbers
122
subcommands
9
printer models
1034
tests passing
57
HA entities
25
MCP tools
MIT
license
03 · What it does
01 · BRIDGE

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.


02 · INTEGRATIONS

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.


03 · ANALYZER

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.


04 · PORTABLE

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.

04 · Sample output

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
05 · Try it

Three lines from zero to first print.

pip install beambam
beambam init
beambam print model.3mf --slot 1
Full reference: /cli · Library API: /docs