roon-rs
Rust SDK and tools for Roon's proprietary protocols (SOOD discovery + MOO RPC).
roon-api— Standalone SDK. Any Rust program can add it as a dependency to discover, connect to, and control a Roon Core.roon-cli— Command-line tool (roon) for controlling Roon from a terminal.roon-mcp— MCP server exposing Roon as tools for AI assistants (Claude Code, etc.).roon-hub— MQTT bridge binary (not published to crates.io).
Install the CLI
From crates.io
From GitHub Releases (pre-built binaries)
# roon-cli (the `roon` command)
|
# roon-mcp (MCP server)
|
# Windows (PowerShell)
Supported targets: x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, x86_64-apple-darwin, aarch64-apple-darwin, x86_64-pc-windows-msvc.
Install the MCP server
# or grab a pre-built binary from GitHub Releases (see above).
Run roon-mcp --transport stdio (default) or --transport sse --http-port 8080 for SSE/HTTP. See crates/roon-mcp/ for details.
Quick Start
# 1. Discover Roon Cores on your network and set the default server.
# Approve "roon-rs CLI" in Roon Settings > Extensions when prompted.
# 2. Pick a default zone.
# 3. (Optional) Pick a default output. Used by volume/mute when --output is omitted.
# If skipped, volume/mute fall back to the default zone's output when the zone has only one.
# 4. Play.
# 5. Inspect.
Full command list: roon --help.
Use the SDK
[]
= "0.1"
= { = "1", = ["full"] }
use ;
async
Build from source
Protocol Documentation
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT)
at your option.
Disclaimer
This project is not affiliated with or endorsed by Roon Labs. "Roon" is a trademark of Roon Labs LLC.