Skip to main content
There are two binaries:
  • rockbox — user-facing wrapper. Starts the server, scans the library, opens the web UI, manages the systemd service, runs JS/TS scripts, and acts as a Bluetooth client on Linux.
  • rockboxd — the daemon itself. Linked by Zig from the C firmware
    • Rust crates + CPAL. Lives at zig/zig-out/bin/rockboxd after a build, or /usr/local/bin/rockboxd after install.
Most users only ever invoke rockbox; rockboxd is the underlying process it spawns.

rockbox

Running rockbox with no subcommand starts the server. The subcommands below are dispatched in cli/src/main.rs.

Global flags

Subcommands

Examples

rockboxd

The daemon. Usually you don’t run it directly — rockbox start or the systemd unit handles it. When you do invoke it manually, it takes no subcommands; behaviour is driven by environment variables and ~/.config/rockbox.org/settings.toml.

Environment variables

Stdout / stderr

  • Stderrtracing log output. Always safe to redirect or filter.
  • Stdout — normally empty, except when audio_output = "fifo" with fifo_path = "-", in which case stdout is raw S16LE 44.1 kHz PCM.

Logging

Never use eprintln! / println! from inside the codebase — they bypass the structured filter and pollute stdout (which breaks FIFO mode). Use tracing::{debug,info,warn,error}! in Rust code.

Files