← Back to Skills Marketplace
puterjam

Roon Controller

by puterjam · GitHub ↗ · v1.0.3
cross-platform ✓ Security Clean
2232
Downloads
3
Stars
4
Active Installs
4
Versions
Install in OpenClaw
/install roon-controller
Description
Control Roon music player through Roon API with automatic Core discovery and zone filtering. Supports play/pause, next/previous track, and current track query. Automatically finds Muspi zones. Supports Chinese commands.
Usage Guidance
This skill appears to do what it says: discover a local Roon Core and control playback. Before installing, consider: (1) The skill will create ~/clawd/roon_config.json and save the Roon authorization token there in plaintext — anyone with access to that file can control your Roon Core, so set restrictive file permissions or run under a dedicated account. (2) The skill operates on your local network only (it uses roonapi); it does not request cloud API keys or contact third-party endpoints according to the provided files. (3) The code includes a small bug (a truncated return name seen in the provided snippet) — running the tool in a controlled environment first is wise. (4) If you want stronger isolation, run the skill in a VM or dedicated user account. If you need any part of the code reviewed in full (the file was truncated in the listing), provide the complete source and I can re-check for problematic patterns.
Capability Analysis
Type: OpenClaw Skill Name: roon-controller Version: 1.0.3 The skill is designed to control a Roon music player, which aligns with its stated purpose. It stores its Roon API token and configuration in `~/clawd/roon_config.json`, which is a necessary function for persistent control. Network activity is limited to discovering and connecting to the local Roon Core. There is no evidence of data exfiltration, malicious execution, persistence mechanisms, or prompt injection attempts against the agent in the `SKILL.md` or code. All observed behaviors are consistent with a legitimate Roon controller.
Capability Assessment
Purpose & Capability
Name and description (Roon control, zone filtering, basic playback) align with the included code and SKILL.md. The package depends only on the roonapi library and operates against a Roon Core on the local network. No unrelated services, binaries, or credentials are requested.
Instruction Scope
SKILL.md instructs installing roonapi and using the provided API/CLI to discover the local Roon Core, control playback, and persist settings. All instructions are scoped to Roon Core discovery, zone selection, token storage, and playback control. The instructions do reference creating/saving a local config file (~/clawd/roon_config.json), which is necessary for persistent Roon authorization.
Install Mechanism
No packaged install spec is included; SKILL.md recommends pip install roonapi and a requirements.txt is present. This is low-risk: the only dependency is a public Python package (roonapi). There are no downloads from arbitrary URLs or extract steps.
Credentials
The skill requests no environment variables or external credentials (good). It does persist an authorization token and selected zone to ~/clawd/roon_config.json; this is proportionate to the purpose (the token is how the extension authenticates to the Roon Core) but means the token is stored on disk and could be used to control the user's Roon system if the file is accessed by others.
Persistence & Privilege
The skill writes a persistent config directory in the user's home (~/.clawd) and auto-saves the Roon token and selected zone, so it retains the ability to reconnect without reauthorization. always is false and the skill does not modify other skills or system-wide settings. Persistent token storage is expected for this use case but increases the importance of securing the config file.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install roon-controller
  3. After installation, invoke the skill by name or use /roon-controller
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
- Initial release of roon-controller skill, enabling control of the Roon music player via Roon API. - Supports automatic discovery of Roon Core with persistent token management (no reauthorization required after first use). - Zone management includes auto-selection of Muspi zones, zone listing, and persistent zone switching. - Playback controls: play, pause, play/pause toggle, next/previous track, and current track details. - Command line interface for basic operations and zone management. - Supports Chinese voice commands for playback control. - Standardized error handling and clear troubleshooting guidance.
v1.0.2
- Added support for switching between any available Roon zone and persisting the selection across restarts. - Introduced `set_zone()` and `get_current_zone()` methods for programmatically managing active zones. - Updated command line tool with a `switch zonename` command for changing zones. - Adjusted default zone selection logic: now defaults to zones ending with "[roon]" if none selected. - Removed unused discovery workaround files (`discovery_fix.py`, `discovery_fix_v2.py`).
v1.0.1
fix auto discovery.
v1.0.0
Initial release with full Roon music player control via the Roon API. - Supports play, pause, next/previous track, and current track queries - Automatic discovery and connection to Roon Core; token management included - Automatically finds and prioritizes zones with names ending in "muspi" (case-insensitive) - Full command set via Python interface and command-line tool - Chinese command phrases supported for all actions - Unified error handling and clear user feedback for all operations
Metadata
Slug roon-controller
Version 1.0.3
License
All-time Installs 4
Active Installs 4
Total Versions 4
Frequently Asked Questions

What is Roon Controller?

Control Roon music player through Roon API with automatic Core discovery and zone filtering. Supports play/pause, next/previous track, and current track query. Automatically finds Muspi zones. Supports Chinese commands. It is an AI Agent Skill for Claude Code / OpenClaw, with 2232 downloads so far.

How do I install Roon Controller?

Run "/install roon-controller" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Roon Controller free?

Yes, Roon Controller is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Roon Controller support?

Roon Controller is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Roon Controller?

It is built and maintained by puterjam (@puterjam); the current version is v1.0.3.

💬 Comments