Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/ChanMeng666/echookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/plugins/chanmeng666/echook/audio-hooks)<a href="https://agentmods.dev/plugins/chanmeng666/echook/audio-hooks"><img src="https://agentmods.dev/badge/plugins/chanmeng666/echook/audio-hooks/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/plugins/chanmeng666/echook/audio-hooks"><img src="https://agentmods.dev/badge/plugins/chanmeng666/echook/audio-hooks.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
audio-hooks scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
{
"name": "audio-hooks",
"displayName": "echook",
"version": "7.1.0",
"description": "Audio notifications + AI-controlled config for Claude Code, Cursor IDE, and Codex CLI events. 39 hook events + 47 matcher variants, each with its own sound. Desktop toasts, TTS, webhooks, status line + per-subagent rows, rate-limit alerts. Auto-bridges to Cursor IDE 3.2.16+; native install via 'audio-hooks install --cursor' or 'audio-hooks install --codex'.",
"author": {
"name": "Chan Meng",
"url": "https://github.com/ChanMeng666"
},
"homepage": "https://github.com/ChanMeng666/echook",
"repository": "https://github.com/ChanMeng666/echook",
"license": "MIT",
"documentationUrl": "https://github.com/ChanMeng666/echook#readme",
"supportUrl": "https://github.com/ChanMeng666/echook/blob/master/SUPPORT.md",
"privacyPolicyUrl": "https://github.com/ChanMeng666/echook/blob/master/PRIVACY.md",
"keywords": ["audio", "notifications", "hooks", "tts", "webhook", "ai-operated", "rate-limits", "cursor", "cursor-ide", "codex", "codex-cli", "openai-codex"],
"userConfig": {
"audio_theme": {
"type": "string",
"title": "Audio theme",
"description": "Audio theme: 'default' (voice recordings) or 'custom' (non-voice chimes). Leave blank for default."
},
"webhook_url": {
"type": "string",
"title": "Webhook URL (optional)",
"description": "Optional webhook URL for Slack/Discord/Teams/ntfy/raw notifications. Leave blank to skip. Event text, including the start of Claude's last message, is sent to this URL.",
"sensitive": true
},
"webhook_format": {
"type": "string",
"title": "Webhook format",
"description": "Webhook payload format: slack | discord | teams | ntfy | raw. Required when webhook_url is set."
},
"tts_enabled": {
"type": "boolean",
"title": "Enable text-to-speech",
"description": "Speak hook events using the system TTS engine. Default: false."
}
}
}
What it installs
The manifest is a name and a version. 1 skill, 30 hooks travel with it, and installing the plugin installs all of them — 321 tokens a session between them. Each is measured on its own page, and each can be installed alone.
- Skill audio-hooks B 321 tokens
- Hook Notification A not measured
- Hook DirectoryAdded A not measured
- Hook PostCompact A not measured
- Hook FileChanged A not measured
- Hook InstructionsLoaded A not measured
- Hook PermissionRequest A not measured
- Hook PostToolUse A not measured
- Hook PostToolUseFailure A not measured
- Hook PreToolUse A not measured
- Hook UserPromptExpansion A not measured
- Hook ConfigChange A not measured
- Hook CwdChanged A not measured
- Hook Elicitation A not measured
- Hook ElicitationResult A not measured
- Hook MessageDisplay A not measured
- Hook PermissionDenied A not measured
- Hook SubagentStop A not measured
- Hook TaskCompleted A not measured
- Hook TeammateIdle A not measured
- Hook UserPromptSubmit A not measured
- Hook WorktreeRemove A not measured
- Hook SessionEnd A not measured
- Hook SubagentStart A not measured
- Hook SessionStart A not measured
- Hook PostToolBatch A not measured
- Hook Stop A not measured
- Hook PreCompact A not measured
- Hook Setup A not measured
- Hook StopFailure A not measured
- Hook TaskCreated A not measured
What ships with it
1 file beside plugin.json in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed 8eea18d5ed30
- 3d ago Changed f4f2df46666c
- 8d ago Changed eb5c043a6ded
- 12d ago Changed · +5 lines 0777bf7887bd
- 1mo ago Changed 9de3c6262df0
- 1mo ago First seen · 36 lines scan A 2141d95507ce
audio-hooks is a plugin published in the GitHub repository ChanMeng666/echook (89 stars, last pushed yesterday), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other plugins, from other repositories
context-guard
ContextGuard keeps AI coding-agent context lean, safe, and auditable with project-local setup, scans, large-read guards, output trimming/sanitizing, queryable log artifacts, budgeted context packs, tool/MCP schema pruning, statusline visibility, and usage audits.
branch-guard
Cut routine git/gh approval prompts: auto-approve safe commands (read-only, staging, branch/worktree create, feature-branch commits & pushes) and confirm protected-branch or destructive ones.
aio-monitoring-observability
Monitoring and observability strategy, implementation, and troubleshooting. Metrics design (Golden Signals, RED/USE), distributed tracing (OpenTelemetry), alerting, SLOs, dashboards, log aggregation, and tool selection. Includes 7 automation scripts and production-ready templates.
aio-visual-diff
Verify AI-built UI against design via measurement-driven diff — extracts computed CSS and bounding boxes through Chrome DevTools MCP, diffs against Figma reference or a frozen baseline, and feeds numerical deltas back to the agent. No screenshot eyeballing.
aio-ios-device-debug
Debug iOS apps on physical devices. Build, install, launch, capture logs, pull crash reports, and analyze crashes from the terminal.
anymodel
Delegate tasks and reviews from Claude Code to any provider and model.