@trquth/base-claude-notify-sound-hook
v1.0.2
Published
Claude Code hooks that play a sound when a plan is ready or a task is done
Readme
🔔 base-claude-notify-sound-hook
Sound notifications for Claude Code, installed as project hooks.
| Event | Hook |
| ---------------------------------------------- | ------------------------------------- |
| 📝 Plan ready, waiting for your confirmation | PreToolUse (matcher ExitPlanMode) |
| ✅ Task completed | Stop |
📋 Requirements
- 🐚
bash - 📦 Node.js, for the
npxinstaller - 🔊 A player:
afplay(macOS, built in), orpaplay/mpg123/aplayon Linux
🚀 Install
In the project where you want the sounds:
npx @trquth/base-claude-notify-sound-hookYou are asked which events should play a sound (default: all). To skip the prompt:
npx @trquth/base-claude-notify-sound-hook --plan # plan ready only
npx @trquth/base-claude-notify-sound-hook --done # task completed only
npx @trquth/base-claude-notify-sound-hook --all # bothIt creates .claude/scripts/notify-sound/ containing play-plan-sound.sh, play-done-sound.sh, lib/play.sh and sounds/ (done.mp3), and adds the hooks to .claude/settings.json, keeping your other settings and hooks. Pass --local to write the hooks to .claude/settings.local.json (personal, not committed) instead; installing with or without --local moves the hooks to the chosen file, and --uninstall cleans both. Re-running with different options replaces the previous selection. Restart Claude Code afterwards.
🎵 Custom sounds
Replace .claude/scripts/notify-sound/sounds/done.mp3 or add .claude/scripts/notify-sound/sounds/plan.mp3 (.mp3, .wav or .aiff). Your files are kept on re-install and uninstall. Without a plan file, the plan event falls back to the macOS Glass system sound (Hero for done).
🗑️ Uninstall
npx @trquth/base-claude-notify-sound-hook --uninstall