Skip to main content

Documentation Index

Fetch the complete documentation index at: https://rockboxzig.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The gRPC server runs on port 6061 and serves both native gRPC and gRPC-Web (so browser clients work without a proxy).

Services

The proto definitions live under proto/ (in buf.build/tsiry/rockboxapis) and generate Rust bindings at crates/rpc/:
ServicePurpose
PlaybackServiceTransport, current/next track, seek, volume
LibraryServiceAlbums, artists, tracks, search
PlaylistServiceLive queue + saved playlists
SettingsServiceRead / update global_settings
SoundServiceVolume + sound parameters
BrowseServiceFilesystem browsing
SystemServiceVersion, scan, status

Generating clients

Use Buf to generate clients in any supported language:
buf generate buf.build/tsiry/rockboxapis
Or pull the proto files directly:
buf export buf.build/tsiry/rockboxapis -o proto/

Quick test with grpcurl

grpcurl -plaintext localhost:6061 list
grpcurl -plaintext localhost:6061 rockbox.v1alpha1.LibraryService/GetAlbums
grpcurl -plaintext -d '{"id": "<album-id>"}' \
  localhost:6061 rockbox.v1alpha1.LibraryService/GetAlbum

gRPC-Web from the browser

The same port speaks gRPC-Web — useful for browser apps that want a strongly-typed binding without a translating reverse proxy. Use @bufbuild/connect-web or the language equivalent.