[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openclaw-openclaw-skills-sonoscli":3},{"error":4,"detail":5,"metadata":23,"markdownContent":25,"rawMarkdown":20},false,{"repo_full_name":6,"owner":7,"repo_name":7,"repo_forks":8,"skill_path":9,"repo_stars":10,"name":11,"category_id":12,"description":13,"file_tree":14,"skill_md_content":20,"skill_id":21,"skill_key":22},"openclaw/openclaw","openclaw",64359,"skills/sonoscli",330752,"sonoscli",11,"Control Sonos speakers (discover/status/play/volume/group).",[15],{"name":16,"path":17,"size":18,"type":19},"SKILL.md","skills/sonoscli/SKILL.md",2455,"file","---\nname: sonoscli\ndescription: Control Sonos speakers (discover/status/play/volume/group).\nhomepage: https://sonoscli.sh\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🔊\",\n        \"requires\": { \"bins\": [\"sonos\"] },\n        \"install\":\n          [\n            {\n              \"id\": \"go\",\n              \"kind\": \"go\",\n              \"module\": \"github.com/steipete/sonoscli/cmd/sonos@latest\",\n              \"bins\": [\"sonos\"],\n              \"label\": \"Install sonoscli (go)\",\n            },\n          ],\n      },\n  }\n---\n\n# Sonos CLI\n\nUse `sonos` to control Sonos speakers on the local network.\n\n## Quick start\n\n- `sonos discover`\n- `sonos status --name \"Kitchen\"`\n- `sonos play|pause|stop --name \"Kitchen\"`\n- `sonos volume set 15 --name \"Kitchen\"`\n\n## Common tasks\n\n- Grouping: `sonos group status|join|unjoin|party|solo`\n- Favorites: `sonos favorites list|open`\n- Queue: `sonos queue list|play|clear`\n- Spotify search (via SMAPI): `sonos smapi search --service \"Spotify\" --category tracks \"query\"`\n\n## Notes\n\n- If SSDP fails, specify `--ip \u003Cspeaker-ip>`.\n- Spotify Web API search is optional and requires `SPOTIFY_CLIENT_ID/SECRET`.\n- If there is an error, check the troubleshooting section and offer advice if there is a decent match.\n\n## Troubleshooting\n\n### `sonos discover` - `no route to host`\n\n- On error `Error: write udp4 0.0.0.0:64326->239.255.255.250:1900: sendto: no route to host (Command exited with code 1)`\n  - Note that the port number after `0.0.0.0:` is ephemeral and will change and the netmask may not match exactly either\n  - The `sendto: no route to host` should stay consistent\n- Advise the user that in `direct` (no Docker sandbox) mode on Mac OS that Settings -> Privacy & Security -> Local Network will need to be enabled for the top-level host parent process of the Gateway\n  - `node` if running via `launchd`\n  - `Terminal` if running the gateway directly in the terminal\n  - `Visual Studio Code` if running via terminal in VS Code\n- An alternative option is to use `sandbox` (docker container) with network access allowed for that sandbox\n\n### `sonos discover` - `bind: operation not permitted`\n\n- On error `Error: listen udp4 0.0.0.0:0: bind: operation not permitted`\n- Advise the user that they may be running via a Codex or other sandbox that does not permit network access (this can be replicated by running `sonos discover` within a Codex CLI session with sandbox enabled and not approving the escalation request)\n","64299030-3038-5a64-b9c6-ac55f04a2153","openclaw-openclaw-skills-sonoscli",{"name":11,"description":13,"homepage":24},"https://sonoscli.sh","\u003Ch1>Sonos CLI\u003C/h1>\n\u003Cp>Use \u003Ccode>sonos\u003C/code> to control Sonos speakers on the local network.\u003C/p>\n\u003Ch2>Quick start\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Ccode>sonos discover\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>sonos status --name &quot;Kitchen&quot;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>sonos play|pause|stop --name &quot;Kitchen&quot;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>sonos volume set 15 --name &quot;Kitchen&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Common tasks\u003C/h2>\n\u003Cul>\n\u003Cli>Grouping: \u003Ccode>sonos group status|join|unjoin|party|solo\u003C/code>\u003C/li>\n\u003Cli>Favorites: \u003Ccode>sonos favorites list|open\u003C/code>\u003C/li>\n\u003Cli>Queue: \u003Ccode>sonos queue list|play|clear\u003C/code>\u003C/li>\n\u003Cli>Spotify search (via SMAPI): \u003Ccode>sonos smapi search --service &quot;Spotify&quot; --category tracks &quot;query&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Ch2>Notes\u003C/h2>\n\u003Cul>\n\u003Cli>If SSDP fails, specify \u003Ccode>--ip &lt;speaker-ip&gt;\u003C/code>.\u003C/li>\n\u003Cli>Spotify Web API search is optional and requires \u003Ccode>SPOTIFY_CLIENT_ID/SECRET\u003C/code>.\u003C/li>\n\u003Cli>If there is an error, check the troubleshooting section and offer advice if there is a decent match.\u003C/li>\n\u003C/ul>\n\u003Ch2>Troubleshooting\u003C/h2>\n\u003Ch3>\u003Ccode>sonos discover\u003C/code> - \u003Ccode>no route to host\u003C/code>\u003C/h3>\n\u003Cul>\n\u003Cli>On error \u003Ccode>Error: write udp4 0.0.0.0:64326-&gt;239.255.255.250:1900: sendto: no route to host (Command exited with code 1)\u003C/code>\u003Cul>\n\u003Cli>Note that the port number after \u003Ccode>0.0.0.0:\u003C/code> is ephemeral and will change and the netmask may not match exactly either\u003C/li>\n\u003Cli>The \u003Ccode>sendto: no route to host\u003C/code> should stay consistent\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Advise the user that in \u003Ccode>direct\u003C/code> (no Docker sandbox) mode on Mac OS that Settings -&gt; Privacy &amp; Security -&gt; Local Network will need to be enabled for the top-level host parent process of the Gateway\u003Cul>\n\u003Cli>\u003Ccode>node\u003C/code> if running via \u003Ccode>launchd\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>Terminal\u003C/code> if running the gateway directly in the terminal\u003C/li>\n\u003Cli>\u003Ccode>Visual Studio Code\u003C/code> if running via terminal in VS Code\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>An alternative option is to use \u003Ccode>sandbox\u003C/code> (docker container) with network access allowed for that sandbox\u003C/li>\n\u003C/ul>\n\u003Ch3>\u003Ccode>sonos discover\u003C/code> - \u003Ccode>bind: operation not permitted\u003C/code>\u003C/h3>\n\u003Cul>\n\u003Cli>On error \u003Ccode>Error: listen udp4 0.0.0.0:0: bind: operation not permitted\u003C/code>\u003C/li>\n\u003Cli>Advise the user that they may be running via a Codex or other sandbox that does not permit network access (this can be replicated by running \u003Ccode>sonos discover\u003C/code> within a Codex CLI session with sandbox enabled and not approving the escalation request)\u003C/li>\n\u003C/ul>\n"]