Tell your robot what to play, where to play it, and where to move it. It runs your whole Sonos system by voice.
Try saying
“Put on some jazz in the kitchen.”
“Move it to the living room.”
“Group everything and turn it up a bit.”
“What’s playing?”
“Turn the music off in an hour.”
“Ask Sonos to like this song.”
How it works
All 34 tools from Sonos’s 27mcp server are handed to the model as Sonos wrote them. On top of that, this app adds what a robot controlling a real house actually needs.
Room names, not identifiers. Your speaker list goes into the model’s context at startup, so “in the kitchen” is one tool call rather than two.
A fallback to Sonos Voice Control. For the handful of things the MCP server has no tool for — liking a track, battery level, TV source, exact Speech Enhancement levels — the robot relays your request as Sonos’s own wake phrase, “Hey Sonos, …”, so a nearby mic-equipped speaker picks it up.
Before you start
It drives a real system in your house and it will sometimes get things wrong: the wrong track, the wrong room, a misheard name. Nothing it does is destructive, and the Sonos app undoes any of it in a tap.
Expect a beat before it acts. Sonos’s MCP server is a cloud round trip inside a voice turn, so the music starts a second or two after the robot answers.
No wake word, and it cannot tell you from your speakers. The app listens the whole time it is running, and it does not know that what it hears is the music it just started. Talk radio, a podcast or a misheard lyric can set the robot off on its own — worst of all with spoken-word radio in the same room. Starting and stopping the app is the only gate there is.
It does not duck the music. The robot speaks over your speakers rather than turning them down, so next to a loud one you may not hear it.
The settings page has no password. Anyone on your home network can open it — the same as the robot’s other settings pages.
Getting started
You need a Sonos system on S2 and an internet connection; the default voice backend needs no API key.
Install the app from your dashboard, start it, open
http://localhost:7860/sonos, and press Connect Sonos.
Install the app from your dashboard, start it, open
http://reachy-mini.local:7860/sonos, and press Connect
Sonos.
No robot needed, for development:
uv sync
reachy-mini-daemon --sim # in another terminal
python -m reachy_mini_sonos.main --ui