roon-controllerControl 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.
Install via ClawdBot CLI:
clawdbot install puterjam/roon-controllerControl the Roon music player with Chinese command support.
pip install roonapi
from roon_controller import RoonController
# Create controller (token will be saved automatically)
controller = RoonController(verbose=True)
# Play/Pause
result = controller.play_pause()
# Next track
result = controller.next()
# Get current track
track_info = controller.get_current_track()
print(f"Now playing: {track_info['track']}")
~/clawd/roon_config.jsonset_zone() to switch zones programmaticallySwitch Zone
result = controller.set_zone("Living Room")
# {"success": True, "message": "Switched to zone: Living Room", "zone": "Living Room"}
Get Current Zone
zone = controller.get_current_zone()
# Returns zone info dict with zone_id and zone_data
Play
result = controller.play()
# {"success": True, "message": "Playback started", "zone": "Living Room Muspi"}
Pause
result = controller.pause()
# {"success": True, "message": "Paused", "zone": "Living Room Muspi"}
Play/Pause Toggle
result = controller.play_pause()
Previous Track
result = controller.previous()
Next Track
result = controller.next()
track_info = controller.get_current_track()
# Returns:
# {
# "success": True,
# "is_playing": True,
# "zone": "Living Room Muspi",
# "track": "Bohemian Rhapsody",
# "artist": "Queen",
# "album": "A Night at the Opera",
# "seek_position": 12345, # milliseconds
# "length": 354000 # milliseconds
# }
zones = controller.list_zones()
# ["Living Room Muspi", "Kitchen", "Bedroom"]
The script can be used as a command line tool:
# Play
python roon_controller.py play
# Pause
python roon_controller.py pause
# Previous track
python roon_controller.py prev
# Next track
python roon_controller.py next
# View current track
python roon_controller.py status
# List all zones
python roon_controller.py zones -v
# switch zone
python roon_controller.py switch zonename
The skill supports the following Chinese trigger words:
| Command | Meaning | Example |
|---------|---------|---------|
| é³ä¹ęę¾ / ęę¾é³ä¹ | Start playback | "é³ä¹ęę¾" |
| ęå / ęåęę¾ | Pause playback | "ęåäøäø" |
| äøäøę² / åę | Next track | "äøäøę²" |
| äøäøę² | Previous track | "äøäøę²" |
| å½åę²ē® / ę£åØę¾ä»ä¹ | View current track | "å½åę²ē®" |
All methods return a unified dictionary structure:
{
"success": True/False,
"message": "Operation result description",
"zone": "Zone name (optional)"
}
~/clawd/roon_config.json, ensure secure file permissionsroonapi>=0.1.6: Official Roon API Python library~/clawd/roon_config.json# Find all zones
zones = roon.zones
# Filter zones with muspi suffix
muspi_zones = [
(zone_id, zone_data)
for zone_id, zone_data in zones.items()
if zone_data['display_name'].lower().endswith('muspi')
]
# Use the first matching zone
zone_id, zone_data = muspi_zones[0]
Generated Mar 1, 2026
Homeowners use voice commands via a smart assistant to control Roon playback in different rooms, such as playing music in the living room or pausing in the kitchen. This integrates seamlessly with home automation systems for hands-free operation.
Store managers use the skill to manage background music across multiple zones, like switching playlists or adjusting playback in different sections. It supports automated schedules and remote control via command-line tools.
Companies implement the skill to control music in office spaces, allowing employees to play, pause, or skip tracks in common areas using simple commands. It enhances workplace ambiance with minimal setup.
Hotels or restaurants use the skill to manage music in guest rooms and public areas, offering personalized playback and easy zone switching. It supports multilingual commands for diverse guest needs.
Individuals automate their home music systems with scripts that trigger playback based on time of day or events, using the Python API for custom integrations like morning routines or party modes.
Offer the skill as part of a monthly subscription service for smart home or business automation platforms, providing updates and premium support. Revenue comes from recurring fees tied to user tiers.
Sell the skill as a standalone software package with a perpetual license, targeting businesses or enthusiasts who prefer upfront payment. Include optional paid add-ons for advanced features.
Provide a free basic version with core playback controls, while charging for advanced features like multi-zone management, analytics, or priority support. This attracts a broad user base and upsells power users.
š¬ Integration Tip
Ensure the device running the skill is on the same network as the Roon Core and that zone names follow the required suffix for automatic discovery.
Terminal Spotify playback/search via spogo (preferred) or spotify_player.
Search GIF providers with CLI/TUI, download results, and extract stills/sheets.
Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "äøč½½č§é¢", "download video", "yt-dlp", "YouTube", "Bē«", "ęé³", "ęåé³é¢", "extract audio".
Search and add movies to Radarr. Supports collections, search-on-add option.
Control Spotify playback on macOS. Play/pause, skip tracks, control volume, play artists/albums/playlists. Use when a user asks to play music, control Spotify, change songs, or adjust Spotify volume.
Search and add TV shows to Sonarr. Supports monitor options, search-on-add.