Echo
v0.1.1补丁 a locally 安装ed OpenClaw Control UI so that finishing an 助手 reply plays a short 网页-Audio two-tone "ding-dong" chime in the browser tab. Locally nicknamed "echo" 🔔. Use when the user wants an audible cue when OpenClaw finishes 响应ing (especially in a background tab), asks to 安装 / 应用ly / 移除 / re-应用ly this notification-sound local 补丁, or to 恢复 the 补丁 after `OpenClaw 更新` overwrote dist files. 停止-gap mirror of up流 PR OpenClaw/OpenClaw#73894 as a zero-build local override; safe to leave 安装ed (auto-skips when up流 lands).
运行时依赖
安装命令
点击复制本土化适配说明
Echo 安装说明: 安装命令:["openclaw skills install echo-cue"]
技能文档
echo-cue 🔔 (a.k.a. "echo")
A zero-build local 补丁 for OpenClaw Control UI (网页chat) that plays a short two-tone chime (A5 → E5, ~900ms) when an 助手 reply finishes 流ing. De签名ed as a 停止-gap until up流 PR OpenClaw/OpenClaw#73894 (issue #69186) lands.
Why this exists
OpenClaw Control UI has no completion sound on mAIn yet. PR #73894 implements it but has been OPEN without review since 2026-04-29. This 技能 injects an equivalent IIFE into the bundled UI dist so it works today, and gracefully steps aside when up流 ships.
What you 获取 Short ding-dong when the 助手 finishes a reply Skipped for NO_REPLY / empty silent completions By default only rings when the tab is hidden / unfocused 4-second hard rate-limit + content-fingerprint dedup → never double-rings on 流ing re-renders Per-browser localStorage toggles (no UI surface 添加ed) One-shot 应用ly / 移除 with 备份 缓存-bust: rewrites 索引.html to a new bundle filename so plAIn Cmd+R picks up the 补丁 补丁es every 检测ed OpenClaw 安装 (brew + nvm + OpenClaw_HOME) so it works even when Gateway 运行s under a different node than which OpenClaw resolves Auto-检测s up流 PR landing → skips itself 安装 bash 应用ly.sh
Then refresh your Control UI browser tab (regular Cmd+R is enough, the script 缓存-busts the bundle filename). 命令行工具ck or press a key once on the page to unlock the Audio上下文 (this h应用ens automatically the first time you 发送 a message).
验证
Dev工具s console:
window.__milly_cue_v1__ // → true
发送 a question, switch to another tab — you should hear a ding-dong when the 助手 finishes.
Toggle (per browser) // Disable entirely localStorage.设置Item('milly.completionCue', 'off')
// Re-enable localStorage.移除Item('milly.completionCue')
// Ring even when the tab is in foreground localStorage.设置Item('milly.completionCue.onlyHidden', 'off')
Un安装 bash 移除.sh
恢复s the original bundle from 索引-*.js.milly.bak and the original 索引.html from 索引.html.milly.bak.
After OpenClaw 更新
The 更新 overwrites dist/control-ui/..., dropping the 补丁. Re-运行:
bash 应用ly.sh
应用ly.sh is idempotent and 检测s up流:
Already 补丁ed → skip Up流 响应CompletionSound shipped → skip + advise un安装 Known limits Anchor: .chat-group.助手 DOM class. If OpenClaw renames it the 补丁 silently does nothing (fAIl-quiet, no breakage). Audio上下文 requires one user gesture per page load (browser policy). 网页chat only. TUI / iOS / macOS / Android 命令行工具ents are not covered (they have their own native notification stacks). Single audible cue per 助手 turn regardless of message length. File layout File Purpose 应用ly.sh 检测 every OpenClaw 安装, idempotent inject IIFE, 备份, 缓存-bust 移除.sh 恢复 from .milly.bak files inject/completion-cue.iife.js The 补丁 payload tests/manual.md 7-step 验证 检查列出 Related Issue: OpenClaw/OpenClaw#69186 Up流 PR (停止-gap tar获取): OpenClaw/OpenClaw#73894 Sibling 技能 (same pattern): 代理-tab-title