← Back to Skills Marketplace
symbolstar

Echo

by SymbolStar · GitHub ↗ · v0.2.0 · MIT-0
cross-platform ⚠ suspicious
92
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install echo-cue
Description
Patch a locally installed OpenClaw Control UI so that finishing an assistant reply plays a short Web-Audio two-tone "ding-dong" chime in the browser tab. Loc...
README (SKILL.md)

echo-cue 🔔 (a.k.a. "echo")

A zero-build local patch for OpenClaw Control UI (webchat) that plays a short two-tone chime (A5 → E5, ~900ms) when an assistant reply finishes streaming. Designed as a stop-gap until upstream 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 skill injects an equivalent IIFE into the bundled UI dist so it works today, and gracefully steps aside when upstream ships.

What you get

  • Short ding-dong when the assistant finishes a reply
  • Skipped for NO_REPLY / empty silent completions
  • Always rings by default (foreground + background); set onlyHidden=on to limit to hidden tabs only
  • 4-second hard rate-limit + content-fingerprint dedup → never double-rings on streaming re-renders
  • Per-browser localStorage toggles (no UI surface added)
  • One-shot apply / remove with backup
  • Cache-bust: rewrites index.html to a new bundle filename so plain Cmd+R picks up the patch
  • Patches every detected OpenClaw install (brew + nvm + OPENCLAW_HOME) so it works even when Gateway runs under a different node than which openclaw resolves
  • Auto-detects upstream PR landing → skips itself

Install

bash apply.sh

Then refresh your Control UI browser tab (regular Cmd+R is enough, the script cache-busts the bundle filename). Click or press a key once on the page to unlock the AudioContext (this happens automatically the first time you send a message).

Verify

DevTools console:

window.__milly_cue_v1__   // → true

Send a question, switch to another tab — you should hear a ding-dong when the assistant finishes.

Toggle (per browser)

// Disable entirely
localStorage.setItem('milly.completionCue', 'off')

// Re-enable
localStorage.removeItem('milly.completionCue')

// Ring even when the tab is in foreground (default behaviour as of 0.2.0):
localStorage.removeItem('milly.completionCue.onlyHidden')

// Limit ringing to hidden / unfocused tabs only:
localStorage.setItem('milly.completionCue.onlyHidden', 'on')

Uninstall

bash remove.sh

Restores the original bundle from index-*.js.milly.bak and the original index.html from index.html.milly.bak.

After openclaw update

The update overwrites dist/control-ui/..., dropping the patch. Re-run:

bash apply.sh

apply.sh is idempotent and detects upstream:

  • Already patched → skip
  • Upstream responseCompletionSound shipped → skip + advise uninstall

Known limits

  • Anchor: .chat-group.assistant DOM class. If OpenClaw renames it the patch silently does nothing (fail-quiet, no breakage).
  • AudioContext requires one user gesture per page load (browser policy).
  • Webchat only. TUI / iOS / macOS / Android clients are not covered (they have their own native notification stacks).
  • Single audible cue per assistant turn regardless of message length.

File layout

File Purpose
apply.sh Detect every OpenClaw install, idempotent inject IIFE, backup, cache-bust
remove.sh Restore from .milly.bak files
inject/completion-cue.iife.js The patch payload
tests/manual.md 7-step verify checklist

Related

Usage Guidance
Before installing, understand that this is a local patch: it rewrites OpenClaw Control UI bundle files and index.html in detected installs so the browser can play a chime. The artifacts include backups and an uninstall script, and no exfiltration or credential handling is evident.
Capability Analysis
Type: OpenClaw Skill Name: echo-cue Version: 0.2.0 The skill performs automated patching of the OpenClaw Control UI by searching for installations across the system (including global npm and nvm directories) and injecting a JavaScript payload into minified production bundles. While the payload in 'inject/completion-cue.iife.js' appears limited to playing audio cues via the Web Audio API and lacks data exfiltration or network capabilities, the mechanism used in 'apply.sh' to modify application files and 'index.html' in-place is a high-risk behavior. This pattern of modifying production assets across the filesystem is a risky capability that could be repurposed for unauthorized code execution or persistence.
Capability Assessment
Purpose & Capability
The browser payload matches the stated purpose: it watches assistant-message DOM updates and plays a Web Audio chime, with no network calls, credential use, or unrelated data handling shown.
Instruction Scope
The instructions are user-directed, but the default apply script intentionally patches every detected OpenClaw install rather than only one active install.
Install Mechanism
There is no install spec, but SKILL.md asks the user to run a shell script manually; this is disclosed and central to the local-patch purpose.
Credentials
The script searches common global, nvm, pnpm, and OPENCLAW_HOME locations and rewrites OpenClaw UI dist files. That is proportionate to a local UI patch, but users should understand the breadth.
Persistence & Privilege
The patch persists in the installed UI bundle and index.html until removed, but the artifacts disclose backups and include a remove.sh restore path.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install echo-cue
  3. After installation, invoke the skill by name or use /echo-cue
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.2.0
Default behavior change: ring in foreground tabs too (set milly.completionCue.onlyHidden=on to restrict to hidden tabs only).
v0.1.1
Align SKILL name field with published slug (echo-cue).
v0.1.0
Initial release: two-tone Web Audio chime when an assistant reply finishes streaming. Stop-gap for openclaw/openclaw#69186 / PR #73894.
Metadata
Slug echo-cue
Version 0.2.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Echo?

Patch a locally installed OpenClaw Control UI so that finishing an assistant reply plays a short Web-Audio two-tone "ding-dong" chime in the browser tab. Loc... It is an AI Agent Skill for Claude Code / OpenClaw, with 92 downloads so far.

How do I install Echo?

Run "/install echo-cue" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Echo free?

Yes, Echo is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Echo support?

Echo is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Echo?

It is built and maintained by SymbolStar (@symbolstar); the current version is v0.2.0.

💬 Comments