Paste a Printables link, get a physical print. plate downloads the model, slices it with OrcaSlicer, and sends it to your Bambu Lab printer — one command, entirely on your local network. No cloud account, no telemetry. Runs on Linux, macOS, and Windows, driven by hand or by AI agents.
Supports: P1P, P1S, X1C, X1E, A1, A1 Mini (any Bambu printer with LAN mode)
pipx install platecli
# or
uv tool install platecli
# or
pip install platecliPreviously published on PyPI as bambu-local-cli (yanked). The project is now platecli; the installed command is plate.
No printer needed — simulation mode fakes one so you can kick the tires right away:
plate --sim status🖨️ Bambu Printer Status
State: IDLE
Bed: 25°C / 0°C
Nozzle: 25°C / 0°C
Fan: 0 | WiFi: -42dBm
AMS:
Unit 0 (humidity 5, 26.0°C)
▶ Slot 0: PLA #F2F2F2 | 90%
Slot 1: PETG #0A0AC8 | 60%
Slot 2: empty
Slot 3: TPU #000000 | 45%
Enable LAN mode on your printer, grab the IP, serial, and access code from its touchscreen, then let the interactive setup walk you through the rest:
plate setup
plate doctor # optional: verify the connection end to endNow go from a link on the internet to plastic on the bed:
plate job "https://www.printables.com/model/12345-thing" --confirm--confirm is required for anything that physically prints (or stops, deletes, or sends raw G-code) — leave it off and nothing on the printer moves.
- One command, whole pipeline —
plate job <url>downloads, slices, uploads, and prints in one shot; or rundownload/slice/upload/printindividually. - Fully local & private — talks straight to the printer over your LAN; no Bambu cloud account, ever.
- Safe by default — nothing physical happens without
--confirm, so a typo (or an over-eager AI agent) can't start a print. - AI-agent ready — every command speaks
--jsonwith published schemas, plus a--simmode for hardware-free automation. - Watch it live —
plate status --monitorfollows a print with a live progress bar until it finishes. - Fixes itself findable —
plate doctorchecks network, FTPS, and MQTT health and tells you exactly what's wrong. - Hardened where it counts — TLS certificate pinning, SSRF-guarded downloads, and size-capped ZIP extraction.
Every command emits machine-readable --json output backed by published JSON Schemas, --sim provides a full fake printer for development without hardware, and the --confirm gate makes accidental physical actions impossible by default. See the user guide and docs/api.md for the JSON contracts and stability policy.
- User guide — full setup, config reference, slicing & AMS mapping, print monitoring, and every flag
- AGENTS.md — architecture and safety notes for agents and automation
- docs/api.md — JSON contracts + stability policy
- docs/schemas/ — machine-checkable JSON Schema files
- SECURITY.md — threat model, reporting, known limitations
- CHANGELOG.md — release notes
- CONTRIBUTING.md — dev setup, tests, releases
Status: Beta (0.2.0). Pre-1.0 — APIs and config keys follow the stability policy in docs/api.md.
Disclaimer: platecli is an unofficial, community-developed tool. It is not affiliated with, endorsed by, or supported by Bambu Lab. "Bambu Lab" and product names are trademarks of their respective owners, used here only to describe compatibility. The printer protocols (MQTT/FTPS) are reverse-engineered; a firmware update may break functionality without warning — run
plate doctorafter printer updates.
MIT — Use freely, modify as needed.