By jtcressy
Audio notifications for all 26 Claude Code hook events with per-hook config, agent sounds, and git commit detection
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code plugin that plays audio notifications for all 26 hook events. Features a mix of novelty sound effects and voice lines — rubber ducky squeaks, Warcraft 3 peon voice lines ("Work work", "Something need doing?"), and other comedic audio cues. Each hook event has a distinct sound so you can tell what Claude is doing just by listening.
Sounds were generated with ElevenLabs TTS using the Samara X voice, mixed with various sound effects.
Add the marketplace to your ~/.claude/settings.json:
{
"extraKnownMarketplaces": {
"jtcressy-claude-plugins": {
"source": {
"source": "github",
"repo": "jtcressy/claude-code-sound-hooks"
},
"autoUpdate": true
}
},
"enabledPlugins": {
"sound-hooks@jtcressy-claude-plugins": true
}
}
Restart Claude Code. The plugin will be installed automatically.
To disable all sounds, set "sound-hooks@jtcressy-claude-plugins": false in enabledPlugins.
| # | Hook | Description | Sound |
|---|---|---|---|
| 1 | PreToolUse | Before tool calls | General tool sound |
| 2 | PermissionRequest | When permission is requested | Permission alert |
| 3 | PostToolUse | After tool calls complete | Completion sound |
| 4 | PostToolUseFailure | After tool calls fail | Error sound |
| 5 | UserPromptSubmit | When user submits a prompt | Input sound |
| 6 | Notification | When notifications are sent | Notification alert |
| 7 | Stop | When Claude finishes responding | Stop sound |
| 8 | SubagentStart | When subagent tasks start | Agent start sound |
| 9 | SubagentStop | When subagent tasks complete | Agent stop sound |
| 10 | PreCompact | Before compact operations | Compact warning |
| 11 | SessionStart | When a session starts/resumes | Session greeting |
| 12 | SessionEnd | When a session ends | Session farewell |
| 13 | Setup | When /setup runs (legacy, kept for backwards compatibility) | Setup sound |
| 14 | TeammateIdle | When a teammate agent idles | Idle alert |
| 15 | TaskCompleted | When a background task completes | Task done sound |
| 16 | ConfigChange | When config files change | Config change sound |
| 17 | WorktreeCreate | When worktrees are created | Worktree sound |
| 18 | WorktreeRemove | When worktrees are removed | Worktree sound |
| 19 | PermissionDenied | When auto-mode classifier denies a tool call | Denial alert |
| 20 | StopFailure | When a turn ends due to an API error | Failure sound |
| 21 | TaskCreated | When a task is created via TaskCreate | Task created sound |
| 22 | PostCompact | After context compaction completes | Post-compact sound |
| 23 | InstructionsLoaded | When CLAUDE.md or .claude/rules/*.md is loaded | Instructions loaded sound |
| 24 | CwdChanged | When the working directory changes | Cwd changed sound |
| 25 | FileChanged | When a watched file changes on disk | File changed sound |
| 26 | Elicitation | When an MCP server requests user input mid-tool-call | Elicitation sound |
| 27 | ElicitationResult | When a user responds to an MCP elicitation | Elicitation result sound |
Bash tool runs git commit, a special pretooluse-git-committing sound plays instead of the default PreToolUse sound.agent_* folders, used when the script is invoked from agent frontmatter with --agent=<name>.Individual hooks can be toggled without disabling the entire plugin.
| File | Purpose | Committed |
|---|---|---|
hooks/config/hooks-config.json | Default/shared config | Yes |
hooks/config/hooks-config.local.json | Personal overrides | No (gitignored) |
The local config takes precedence over the shared config.
Create hooks/config/hooks-config.local.json in the plugin's cache directory:
{
"disablePreToolUseHook": true,
"disablePostToolUseHook": true,
"disableLogging": true
}
npx claudepluginhub jtcressy/claude-code-sound-hooks --plugin sound-hooksUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.