Cross-platform notification toolkit for AI coding assistants. Get alerted when prompts complete with customizable sounds, toast notifications, profiles, and quiet hours.
- Cross-platform — Windows, macOS, Linux
- Bundled sounds — 4 generated WAV tones (default, success, error, gentle)
- Meme sound presets — 11 chiptune sounds (Mario 1-Up, Zelda secret, Metal Gear alert, etc.)
- Custom sounds — drop
.wav/.mp3files insounds/custom/ - Profiles — switch between sound presets (default, silent, loud, or create your own)
- Per-project overrides — different sounds per workspace
- Quiet hours — auto-mute during specified time ranges (supports overnight wrap)
- Toast notifications — native OS popups (WinRT on Windows 10+, osascript on macOS, notify-send on Linux)
- Volume control — global volume 0-100%
- Zero dependencies — uses OS built-in tools only (python3 optional for config editing)
| OS | Required | Optional |
|---|---|---|
| Windows | Git Bash, PowerShell | python3 (for manage.sh and meme sounds) |
| macOS | bash | afplay, osascript, python3 |
| Linux | bash | paplay/aplay/pw-play, notify-send, python3 |
/plugin marketplace add pick/prompt-chime
/plugin install prompt-chime@prompt-chime
The plugin registers the Stop hook automatically — you'll hear a notification every time Claude finishes responding.
git clone https://github.com/pick/prompt-chime.git
cd prompt-chime
bash install.shThis copies files to ~/.claude/notifications/ and registers the Stop hook in ~/.claude/settings.json.
When installed as a plugin, use the /notification-toolkit skill directly inside Claude Code:
/notification-toolkit status # show current settings
/notification-toolkit list # available sounds
/notification-toolkit preview mario-1up # preview a sound
/notification-toolkit set stop zelda-secret # change notification sound
Just ask Claude naturally — "change my notification to mario-1up", "turn off notifications at night", "make it quieter".
bash ~/.claude/notifications/manage.sh help # all commands
bash ~/.claude/notifications/manage.sh status # current settings
bash ~/.claude/notifications/manage.sh list # available sounds
bash ~/.claude/notifications/manage.sh test # fire test notification
bash ~/.claude/notifications/manage.sh preview gentle # preview a sound
bash ~/.claude/notifications/manage.sh volume 60 # set volume
bash ~/.claude/notifications/manage.sh quiet on 22:00 08:00 # quiet hours
bash ~/.claude/notifications/manage.sh set stop success # change stop sound
bash ~/.claude/notifications/manage.sh profile create work gentle 50 # custom profileGenerate 11 chiptune meme sounds (requires python3):
python3 scripts/generate_meme_sounds.py| Sound | What it is |
|---|---|
metal-gear-alert |
MGS "!" alert |
mario-1up |
Super Mario extra life |
zelda-secret |
Zelda secret discovery |
sonic-ring |
Sonic ring collect |
victory-fanfare |
Final Fantasy win jingle |
codec-call |
MGS codec ringtone |
level-up |
RPG ascending arpeggio |
boxing-bell |
Ding ding ding |
nintendo-switch |
Joycon snap click |
fail-horn |
Price Is Right losing horn |
game-over |
Arcade game over |
bash ~/.claude/notifications/manage.sh set stop mario-1up
bash ~/.claude/notifications/manage.sh set error fail-hornDrop .wav or .mp3 files into ~/.claude/notifications/sounds/custom/:
cp ~/Downloads/ding.wav ~/.claude/notifications/sounds/custom/
bash ~/.claude/notifications/manage.sh set stop dingSound names must use only letters, numbers, hyphens, and underscores.
Config lives at ~/.claude/notifications/config.json:
| Field | Type | Description |
|---|---|---|
global.enabled |
bool | Master on/off switch |
global.volume |
0-100 | Audio volume percentage |
global.quiet_hours.enabled |
bool | Auto-mute toggle |
global.quiet_hours.start |
HH:MM | Start time (24h format, e.g. "22:00") |
global.quiet_hours.end |
HH:MM | End time (wraps midnight, e.g. "08:00") |
global.toast.enabled |
bool | Show native OS notifications |
global.toast.title |
string | Notification title text |
global.toast.duration |
seconds | How long toast displays |
events.<name>.sound |
string | Sound file name (without extension) |
events.<name>.enabled |
bool | Whether this event fires |
events.long_running.threshold_seconds |
number | Min duration to trigger |
profiles.<name>.sound |
string | Sound for this profile |
profiles.<name>.volume |
0-100 | Volume for this profile |
project_overrides.<path>.sound |
string | Per-project sound override |
bash uninstall.shSee CONTRIBUTING.md.