π v1.0.0 β First Stable Release
The first stable release of the Prusa Connect Python SDK and prusactl CLI is here!
β οΈ Breaking Changes
The deprecated compatibility shims from alpha releases have been removed.
The service-based API is now the sole public interface:
| Removed method | Replacement |
|---|---|
client.get_printers() |
client.printers.list_printers() |
client.get_printer(uuid) |
client.printers.get(uuid) |
client.get_cameras() |
client.cameras.list() |
client.get_teams() |
client.teams.list_teams() |
client.get_team(id) |
client.teams.get(id) |
client.send_command(uuid, cmd) |
client.printers.send_command(uuid, cmd) |
β¨ What's New
π§© Service-based SDK API
Resources are accessed through dedicated service objects: client.printers,
client.cameras, client.teams, client.files, client.jobs, and client.stats.
π₯οΈ prusactl CLI
A full-featured command-line interface with subcommands for printer, camera,
team, job, file, stats, and auth. Supports --format rich|plain|json for
scripting-friendly output, configurable via CLI flag, PRUSACTL_OUTPUT_FORMAT env
var, or config.json.
π Statistics service
client.stats provides per-printer material usage, print time, planned tasks, and
job success metrics.
π Printer command discovery & validated execution
client.printers.get_supported_commands(uuid) with optional disk caching and TTL.
client.execute_printer_command() validates arguments against the printer's
reported command schema before sending.
π· Camera signaling
PrusaCameraClient supports pan/tilt control and image adjustment via the Prusa
Signal.IO signaling protocol.
π G-code metadata parser
client.validate_gcode(path) for pre-flight validation before uploading files.
π Persistent credential caching
CLI credentials are stored in the platform config directory and auto-loaded by the
SDK.
π§ Other Changes
- CLI rewritten with Cyclopts for richer
help output and--verbose/--debugglobal flags - Pydantic models reorganized into focused submodules under
prusa.connect.client.models AppConfigis now validated at client init time to confirm the server supports
thePRUSA_AUTHbackend
π¦ Installation
pip install prusa-connect-sdk-client==1.0.0
# or with CLI extras
pip install "prusa-connect-sdk-client[cli]==1.0.0"