Token导航 LogoToken导航

Agent Skill · 研究检索

zonefoundry-local-sonos(zonefoundry 本地 Sonos)

zonefoundry-local-sonos 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

zonefoundry-local-sonos 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为执行命令;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 18,640。

总安装 5,988周安装 252GitHub Stars 公开资料未说明下载 2,097核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.5.9

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:zonefoundry-local-sonos(zonefoundry 本地 Sonos)
来源仓库:https://github.com/kisssam6886/zonefoundry-local-sonos
安装命令:
openclaw skills install zonefoundry-local-sonos
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install zonefoundry-local-sonos

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

zonefoundry-local-sonos 用于在同一局域网内通过 ZoneFoundry 控制 Sonos 音响设备。适用于家庭音频系统自动化与多房间播放控制场景。通过 clawhub 安装并使用 openclaw skills install zonefoundry-local-sonos 命令部署。

需确保代理与 Sonos 处于同一 LAN 节点。操作前应完成安全准备检查,避免误触设备设置。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install zonefoundry-local-sonos;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要执行命令,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

zonefoundry-local-sonos 怎么安装?

在终端执行 openclaw skills install zonefoundry-local-sonos。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

zonefoundry-local-sonos 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

zonefoundry-local-sonos 需要什么权限?

权限级别是执行命令。安装流程涉及命令执行,可能通过 openclaw skills install zonefoundry-local-sonos 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

zonefoundry-local-sonos 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

zonefoundry-local-sonos 用的人多吗?

公开数据是累计安装 5,988 次,近一周安装 252 次,下载 2,097 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

zonefoundry-local-sonos 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要执行命令,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 不能接受 Skill 在你机器上执行命令的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
zonefoundry-local-sonos

zonefoundry 本地 Sonos · 本页

5,988—执行命令MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
zonefoundry-local-sonos
description
Use this skill when an agent needs to control Sonos through ZoneFoundry zf on a same-LAN node. Start with readiness checks, then map user requests to safe playback, queue, service-linking, and recovery commands.
metadata
{"openclaw":{"emoji":"🔊","homepage":"https://github.com/kisssam6886/zonefoundry","requires":{"bins":["zf"]},"install":[{"id":"go-build","kind":"go","module":"github.com/kisssam6886/zonefoundry/cmd/zf@latest","bins":["zf"],"label":"Install ZoneFoundry CLI (latest)"}]}}

ZoneFoundry Local Sonos

Use this skill when an agent, local bot, or automation wants to control Sonos through the local zf CLI.

This skill is written English-first so global users can scan it quickly. Keep user-facing replies in the user's language. Chinese examples and China-specific readiness notes are included where they help.

Use this skill when

  • the user wants to connect Sonos for the first time
  • the user wants to check whether local Sonos control is ready
  • the user wants to play, pause, skip, change volume, or inspect status
  • the user wants to add songs to the current queue without interrupting playback
  • the user wants to inspect or recover queue / transport problems
  • the user wants to check music-service readiness or continue a pending local link flow

Do not use this skill for

  • Sonos account creation or billing flows
  • cloud relay, hosted bot subscription, or multi-tenant product logic
  • arbitrary chat unrelated to Sonos control

Core model

Treat zf as the execution layer.

bot / agent / web onboarding -> zf -> Sonos

  • the bot or agent translates intent and explains results
  • zf handles discovery, playback, queueing, diagnostics, readiness checks, and recovery

Alternative control methods

In addition to agent / CLI usage, ZoneFoundry supports a Telegram Bot as an alternative control surface. Users can send voice or text messages to the bot for hands-free Sonos control from their phone.

Hard rules (MUST follow)

  1. Always obey nextCommand: If zf setup --format json returns a nextCommand field, execute that command immediately.
  1. Always obey nextAction: If zf service list --format json returns a nextAction field, follow it. If nextAction=ready, proceed to play.
  1. Do not block playback on service linking status. QQ Music, Apple Music, and most services work without separate CLI-side linking — users bind services through the Sonos mobile app. If state is unclear, try playing directly first.
  1. Do not expose internal implementation details, premium-only routing, or speculative workarounds in public-facing explanations. Describe user-visible outcomes and the next safe action instead.
  1. Keep update paths separate:
clawhub update zonefoundry-local-sonos  # refresh this skill
zf update self --check --format json    # check local runtime update

Language rule

  • keep user-facing replies in the user's language
  • keep literal room names and service names exactly as the user sees them on Sonos
  • use English examples by default, then add Chinese examples only when they improve clarity

First-run quickstart

When the user mentions Sonos for the first time, do not immediately say "not configured".

At the start of every new session, check runtime updates first:

zf update self --check --format json

If it returns status=update_available, update before doing deeper work:

zf update self --format json

Then run the one-shot readiness flow:

zf setup --format json

zf setup should be the default first move because it checks:

  • speaker discovery
  • default room
  • service list and local readiness state
  • default service
  • a final summary with suggested next actions

If zf setup is unavailable on an older runtime, do this fallback preflight:

zf doctor --format json
zf discover --format json
zf config get defaultRoom
zf service list --format json
zf config get defaultService

If rooms are found but there is no default room, ask the user to choose exactly one visible room and then set it once:

zf config set defaultRoom "Office"

If there is no default service, ask once and set it:

zf config set defaultService "Spotify"

Environment gate

Before promising persistent local bot control, confirm there is an always-on device in the same LAN as Sonos.

Valid local nodes:

  • Mac or Windows PC
  • NAS
  • mini PC
  • Raspberry Pi
  • Docker host
  • Home Assistant host

If the user only has a phone:

  • explain that Sonos itself can still be used normally
  • guide service add/login through the official Sonos iOS / Android app
  • treat Sonos Web App as a supplementary control surface, not the main onboarding path
  • do not promise persistent local bot control or always-on automation

Short rule:

  • Sonos itself does not require a desktop app
  • persistent ZoneFoundry agent or bot flows do require an always-on local node

Minimum safe commands

Prefer JSON output by default.

zf setup --format json
zf doctor --format json
zf discover --format json
zf status --name "<room>" --format json
zf queue list --name "<room>" --format json

If the user already specified a room, prefer --name "<room>".

Safe command mapping

For user-facing explanations, prefer direct CLI command names.

Examples:

zf status --name "Office" --format json
zf pause --name "Office"
zf next --name "Office"
zf volume set 20 --name "Office"

Playback rules

Prefer the unified play music command for normal playback.

Common service examples:

zf play music "Miles Davis" --format json
zf play music "Taylor Swift" --service Spotify --format json
zf play music "Adele" --service "Apple Music" --format json
zf play music "黎明 夏日傾情" --service "Apple Music" --format json
zf play music "黎明" --enqueue --service "Apple Music" --limit 5 --format json
zf queue list --name "Office" --format json
zf queue remove 3 --name "Office"
zf say "Dinner is ready" --name "Kitchen" --mode queue-insert --format json

Chinese examples:

zf play music "周杰伦" --service "网易云音乐" --format json
zf play music "郑秀文" --enqueue --service "QQ音乐" --limit 5 --format json
zf play music "郑秀文 舍不得你" --service "QQ音乐" --format json
zf ncm lucky --name "客厅" "郑秀文" --format json
zf smapi search --name "客厅" --service "QQ音乐" --category tracks --open --index 1 --format json "周杰伦"

Default service selection:

  • Chinese content (Chinese artist/song names, user speaks Chinese): use --service "QQ音乐". No fallback — QQ has the best Chinese catalog coverage.
  • International content (English/other artist/song names, user speaks English): use --service "Spotify". If Spotify is unavailable, fallback to --service "Apple Music".
  • If the user explicitly names a service, always honour that.
  • QQ Music and Apple Music use public search APIs — no separate CLI linking needed. Just play directly.
  • Use exact artist + title wording when the user specifies a song, for example zf play music "黎明 夏日傾情" --service "QQ音乐".

Important distinction:

  • if the user says "play X", use zf play music "X" and expect a replace-style action
  • if the user says "add X", "queue X", "append X", or "play X after this", use zf play music "X" --enqueue
  • if the wording is ambiguous and something is already playing, --enqueue is usually the safer default

Natural-language examples:

  • "play Taylor Swift" -> zf play music "Taylor Swift"
  • "add five Adele songs" -> zf play music "Adele" --enqueue --limit 5
  • "播郑秀文" -> zf play music "郑秀文"
  • "再加一首陈奕迅" -> zf play music "陈奕迅" --enqueue

Lyrics rule

When the user asks about lyrics for the current song, use:

zf lyric --name "<room>" --format json

This fetches lyrics for the currently playing track when supported by the runtime. For raw LRC with timestamps, add --raw.

QQ Music lyrics now work reliably (MID resolution fixed). Both QQ Music and NetEase Cloud Music tracks return lyrics with translations when available.

Announcement rule

If the user asks for a short spoken interruption such as:

  • "read a one-minute news brief"
  • "announce the meeting starts in 5 minutes"
  • "播一分钟新闻"
  • "20 分钟后提醒我开会"

default to a short TTS or reminder path, not radio search.

Current stable announcement path (direct mode, default):

zf say "<text>" --name "<room>" --format json

TTS language options:

  • zh (普通话) — default, no flag needed
  • yue (粤语/Cantonese) — pass --lang yue

Example with Cantonese:

zf say "今日新闻" --name "<room>" --lang yue --format json

Important announcement rules:

  1. Always use direct mode (the default). Do NOT pass --mode queue-insert.

Direct mode plays TTS then automatically restores the original track and position (reltime).

  1. Concatenate multiple items into one zf say call. If the user asks for

"5 news headlines", compose all 5 headlines into a single text block and call zf say once. Do NOT call zf say five separate times — that causes interleaving with music and breaks reltime restore.

  1. After TTS completes, the original song resumes at the exact playback position.

Only treat it as a live radio request if the user explicitly asks for a station or live news channel.

Queue hygiene rule

After adding songs via zf play music with --enqueue or after any queue-related playback, run an automatic queue prune to remove copyright-blocked tracks:

zf queue prune --name "<room>" --format json

This removes greyed-out tracks (e.g. "应版权方要求暂不能播放") from the queue. Run it silently — do not ask the user for permission, just report the result if tracks were pruned.

Service readiness rule

Most music services work without separate CLI-side linking:

  • QQ Music: uses public search API → always ready, no linking needed
  • Apple Music: uses public search API → always ready, no linking needed
  • Spotify: depends on household setup; try playing directly first
  • NetEase Cloud Music (网易云音乐): uses SMAPI; may need initial linking via zf setup

Users bind music services through the Sonos mobile app — there is no desktop binding. Do not tell users "service not linked" if zf play music works. Try playing first, diagnose only on failure.

If you need a reliable probe, prefer:

zf doctor service --service "Spotify" --query "Miles Davis" --format json

New-session rule

If a new session starts and the user says things like:

  • "done"
  • "complete"
  • "I logged in already"
  • "已经绑好啦"
  • "我登录好了"

do not force the whole onboarding conversation again.

Prefer this order:

  1. try playing the user's request directly
  2. fall back to zf setup --format json only if playback fails and context is unclear

Failure routing

Read structured JSON errors first:

  • error.code
  • error.message
  • error.details

Do not classify every playback failure as auth or copyright.

Known patterns:

  • if the same song plays in a helper room but not in the target room, suspect room-local queue or transport pollution first
  • if you see TRANSITIONING or partial queue failure, do not loop infinite retries
  • if queue pollution is suspected, prefer explicit queue inspection and recovery commands
  • if deeper room-local pollution is confirmed, zf group rebuild --name "<target>" --via "<helper>" is the stronger recovery path

Boundaries

  • Sonos official mobile apps remain the default path for adding and logging in to content services
  • Sonos Web App is a supplementary control surface, not the primary onboarding path
  • group rebuild is a recovery tool, not proof that the original defect is fixed
  • exact RelTime restoration is not a guaranteed stable capability
  • OpenClaw skill updates and local zf runtime updates may require a new session to fully refresh

When to ask the user something

Ask only when required:

  • choose a default room
  • confirm a preferred music service
  • confirm helper-room usage for group rebuild

Do not ask the user to learn repo internals or memorize command names.

User-facing tone

Good examples:

  • "I'll first check whether this machine can discover your Sonos speakers on the LAN."
  • "I found these rooms: Office, Kitchen. Which one should be the default?"
  • "我先检查这台机器能不能发现你局域网里的 Sonos。"
  • "我找到这些房间:客厅、浴室。你想默认控制哪一个?"

Avoid:

  • "Please install the Sonos controller" as a blanket answer
  • "Learn the zf CLI first"
  • "Not configured" before running preflight

Read these references when needed

Bundled reference files (same repo, references/ subdirectory):

  • onboarding-boundary.md — product scope and onboarding guidance
  • command-map.md — command map and recovery rules
  • china-service-linking.md — China service-linking notes

平台分布

OpenClaw

83.73%
按下载量换算1,756

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install zonefoundry-local-sonos 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills