Skip to main content

platecli

Print from your terminal — no cloud required

CI Release Packaging PyPI Python versions Downloads License: MIT

Install · Try it in 30 seconds · Print something · User guide · For AI agents

platecli demo: live printer status and slicing from the terminal

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.

model URL or file  →  download  →  slice (OrcaSlicer)  →  upload  →  print
                        one command:  plate job <url> --confirm

Supports: P1P, P1S, X1C, X1E, A1, A1 Mini (any Bambu printer with LAN mode)

Install

pipx install platecli
# or
uv tool install platecli
# or
pip install platecli

Previously published on PyPI as bambu-local-cli (yanked). The project is now platecli; the installed command is plate.

Try it in 30 seconds

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%

Timestamps and log-level prefixes trimmed for brevity.

Print something

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 end

Now go from a link on the internet to plastic on the bed:

plate job "https://www.printables.com/model/3161-3d-benchy" --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.

plate doctor: config, MQTT, and FTPS health checks with TLS-pin verification against a real printer

Why platecli

  • One command, whole pipelineplate job <url> downloads, slices, uploads, and prints in one shot; or run download / slice / upload / print individually.
  • 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 --json with published schemas, plus a --sim mode for hardware-free automation.
  • Watch it liveplate status --monitor follows a print with a live progress bar until it finishes.
  • Fixes itself findableplate doctor checks 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.

Built for AI agents

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.

Documentation

  • 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
  • Discussions — questions, show-and-tell, and community conversation

Status & disclaimer

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 doctor after printer updates.

License

MIT — Use freely, modify as needed.


⭐ If platecli fits your workflow, a star helps other makers find it.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

platecli-0.2.2.tar.gz (241.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

platecli-0.2.2-py3-none-any.whl (125.0 kB view details)

Uploaded Python 3

File details

Details for the file platecli-0.2.2.tar.gz.

File metadata

  • Download URL: platecli-0.2.2.tar.gz
  • Upload date:
  • Size: 241.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for platecli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 962619571f2b1862024db2e11f5613389810ee24018e6a747749fa5c2fba13fb
MD5 ba7a8ce8d2fbe23753b74e393e7be746
BLAKE2b-256 b04391eb8bc6b7a2c4ebe41e84bf97b6d33dc1e9ef57292097b7232a08b7bbc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for platecli-0.2.2.tar.gz:

Publisher: release.yml on DLANSAMA/platecli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file platecli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: platecli-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 125.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for platecli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 38d620fe76ee8f8be738a1a119b6bc89966f9a6552b1422f775d6442d8bd67f3
MD5 356bc55e2cd01fd2d3e1acc19f921394
BLAKE2b-256 977d5640f04679ef25716cdeee04a8a9512caffdda5b99ebf05bf7cfd0a9c963

See more details on using hashes here.

Provenance

The following attestation bundles were made for platecli-0.2.2-py3-none-any.whl:

Publisher: release.yml on DLANSAMA/platecli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page