sonoscli

sonoscli

热门

控制 Sonos 音箱(发现/状态/播放/音量/分组)。

38万Star
8.1万Fork
更新于 2026/7/25
SKILL.md
readonly只读
name
sonoscli
description

控制 Sonos 音箱(发现/状态/播放/音量/分组)。

Sonos CLI

使用 sonos 控制本地网络上的 Sonos 音箱。

快速开始

  • sonos discover
  • sonos status --name "Kitchen"
  • sonos play|pause|stop --name "Kitchen"
  • sonos volume set 15 --name "Kitchen"

常见任务

  • 分组:sonos group status|join|unjoin|party|solo
  • 收藏:sonos favorites list|open
  • 队列:sonos queue list|play|clear
  • Spotify 搜索(通过 SMAPI):sonos smapi search --service "Spotify" --category tracks "query"

注意事项

  • 如果 SSDP 失败,请指定 --ip <speaker-ip>
  • Spotify Web API 搜索是可选的,需要 SPOTIFY_CLIENT_ID/SECRET
  • 如果出现错误,请查看故障排除部分,并在有匹配项时提供建议。

故障排除

sonos discover - no route to host

  • 错误信息:Error: write udp4 0.0.0.0:64326->239.255.255.250:1900: sendto: no route to host (Command exited with code 1)
    • 注意 0.0.0.0: 后面的端口号是临时的,会变化,子网掩码也可能不完全匹配
    • sendto: no route to host 应该保持不变
  • 建议用户在 Mac OS 的 direct(无 Docker 沙箱)模式下,需要在“设置 -> 隐私与安全性 -> 本地网络”中为网关的顶层宿主父进程启用权限
    • 如果通过 launchd 运行,则为 node
    • 如果直接在终端中运行网关,则为 Terminal
    • 如果在 VS Code 中通过终端运行,则为 Visual Studio Code
  • 另一种选择是使用 sandbox(Docker 容器),并允许该沙箱的网络访问

sonos discover - bind: operation not permitted

  • 错误信息:Error: listen udp4 0.0.0.0:0: bind: operation not permitted
  • 建议用户可能正在通过 Codex 或其他不允许网络访问的沙箱运行(可以通过在启用沙箱且未批准升级请求的 Codex CLI 会话中运行 sonos discover 来复现)