Skip to main content
Requires Python 3.10+.

Quick start

Highlights

  • Async-first — built on httpx + websockets. Use await everywhere.
  • Domain-namespaced APIclient.playback.*, client.library.*, client.sound.*, …
  • Typed responses — every reply is a Pydantic model with snake_case fields.
  • Real-time eventsconnect() opens a WebSocket and forwards track:changed / status:changed / playlist:changed to listeners.
  • Builder APIRockboxClient.builder().host(...).port(...).build().
  • Plugin system — Jellyfin-style install/uninstall lifecycle.
  • Python-friendly — context manager, decorator listeners, dataclass inputs.

Configure

Always close: await client.aclose(), or use it as an async context manager (async with RockboxClient() as client:).

Domains

Real-time events

Convenience wrappers: client.on_track_changed(...), client.on_status_changed(...), client.on_playlist_changed(...).

Plugins

REPL-friendly

The SDK is async-first. The recommended REPL is IPythonawait works at the top level, and you get tab-completion on Pydantic models.

More

Full reference, type catalogue and plugin examples: see the Python SDK README on GitHub ↗.