English | νκ΅μ΄
Visit the website β Listen to sound packs and explore features.
Claude Code notification plugin β Alerts you with sounds and OS notifications on task completion, errors, and input requests. Create custom notification sounds with AI voice synthesis.
dding-dong (λ΅λ) is a Korean onomatopoeia for a doorbell chime. It notifies you when Claude Code finishes a task or needs your attention.
- Instant alerts on task completion, errors, and input requests
- Cross-platform support: macOS, Linux, WSL (Windows)
- Customizable notification sounds with the sound pack system
- AI voice synthesis β Generate your own voice notifications with Qwen3-TTS (voice cloning & emotion control)
- Korean/English message support
- Quiet hours, cooldown, and environment variable overrides
- Claude Code CLI
Run the following command in Claude Code:
/plugin marketplace add https://github.com/CaesiumY/dding-dong
/plugin install dding-dong
/dding-dong:dd-setup
Automatically detects your platform and checks for audio players and notification tools.
/dding-dong:dd-test
Cycles through all event types to test notifications. If you hear sounds, you're all set!
Alternative installation / Update
claude plugin add https://github.com/CaesiumY/dding-donggit clone https://github.com/CaesiumY/dding-dong
cd dding-dong
claude plugin add ./plugin marketplace update dding-dong
| Skill | Description |
|---|---|
/dding-dong:dd-setup |
Environment detection & setup |
/dding-dong:dd-test |
Test all event notifications |
/dding-dong:dd-config |
View/modify settings |
/dding-dong:dd-sounds |
Manage sound packs |
/dding-dong:dd-doctor |
Auto-diagnose notification issues |
| Skill | Description |
|---|---|
/dding-dong:dd-feedback |
Auto-generate feedback/bug reports |
/dding-dong:dd-help |
Help and feature guide |
/dding-dong:dd-pack-create |
Custom sound pack creation wizard |
/dding-dong:dd-tts-pack |
TTS voice synthesis sound pack |
Configuration is merged in 5 stages (later stages take priority):
| Stage | Path | Description |
|---|---|---|
| Default | (built-in defaults) | Plugin hardcoded values |
| Global | ~/.config/dding-dong/config.json |
Global settings |
| Project | .dding-dong/config.json |
Shared per project (committed to repo) |
| Local | .dding-dong/config.local.json |
Personal override (.gitignore recommended) |
| Env | Environment variables | Final override |
| Variable | Description |
|---|---|
DDING_DONG_ENABLED=false |
Disable the plugin |
DDING_DONG_VOLUME=0.5 |
Override volume |
DDING_DONG_LANG=en |
Override language |
DDING_DONG_PACK=retro |
Override sound pack |
Full configuration example & option details
{
"enabled": true,
"language": "ko",
"sound": {
"enabled": true,
"pack": "default",
"volume": 0.7,
"events": {
"task.complete": true,
"task.error": true,
"input.required": true,
"session.start": false,
"session.end": false
}
},
"notification": {
"enabled": true,
"events": {
"task.complete": true,
"task.error": true,
"input.required": true,
"session.start": false,
"session.end": false
}
},
"messages": {
"task.complete": "μμ
μ΄ μλ£λμμ΅λλ€!",
"task.error": "μ€λ₯κ° λ°μνμ΅λλ€",
"input.required": "νμΈμ΄ νμν©λλ€",
"session.start": "μ½λ©μ μμν©λλ€",
"session.end": "μΈμ
μ΄ μ’
λ£λμμ΅λλ€"
},
"quiet_hours": {
"enabled": false,
"start": "22:00",
"end": "08:00"
},
"cooldown_seconds": 3
}| Option | Default | Description |
|---|---|---|
enabled |
true |
Enable/disable the entire plugin |
language |
"ko" |
Message language (ko / en) |
sound.enabled |
true |
Enable sound notifications |
sound.pack |
"default" |
Sound pack name to use |
sound.volume |
0.7 |
Volume (0.0 β 1.0) |
notification.enabled |
true |
Enable OS notifications |
messages.<event> |
(language default) | Custom message per event (overrides language default) |
quiet_hours.enabled |
false |
Enable quiet hours |
quiet_hours.start |
"22:00" |
Quiet hours start time |
quiet_hours.end |
"08:00" |
Quiet hours end time |
cooldown_seconds |
3 |
Minimum interval between notifications (seconds) |
- Sound:
afplay - Notification:
osascript(native Notification Center)
- Sound:
pw-playβpaplayβffplayβmpvβaplay(searched in order) - Notification:
notify-send(libnotify)
- Sound: PowerShell
System.Windows.Media.MediaPlayer - Notification:
wsl-notify-send(if installed) β WinRT PowerShell Toast β terminal bell
Sound packs are resolved from three locations in order:
- Project packs:
.dding-dong/packs/<pack-name>/ - User packs:
~/.config/dding-dong/packs/<pack-name>/ - Built-in packs:
{plugin install path}/sounds/<pack-name>/
| Pack | Description |
|---|---|
default |
Standard notification sounds |
retro |
8-bit chiptune arcade-style effects |
musical |
Piano chord-based harmonic alerts |
Create voice-synthesized sound packs using Qwen3-TTS:
/dding-dong:dd-tts-pack
| Mode | Description |
|---|---|
| Voice Cloning | Clone your own voice from a reference audio sample (3+ seconds required) |
| CustomVoice | Choose from 9 built-in speakers. Control emotion/style with natural language (e.g., "bright and energetic tone") |
Requirements: NVIDIA GPU (CUDA) Β· Python 3.10+ (automatic venv setup supported)
TTS pack creation flow
- Automatic environment check (GPU, Python, qwen-tts)
- Mode selection β model size selection (0.6B / 1.7B)
- Pack name/info input β boilerplate generation
- Voice configuration (reference audio or speaker selection)
- Per-event text & emotion settings
- Preview β full generation β validation β apply
manifest.json structure & how to apply a sound pack
{
"name": "my-pack",
"displayName": "My Custom Sound Pack",
"version": "1.0.0",
"author": "Author",
"description": "Sound pack description",
"events": {
"task.complete": {
"files": ["complete1.wav", "complete2.wav"],
"rotation": "random"
},
"task.error": {
"files": ["error.wav"]
}
}
}| Field | Required | Description |
|---|---|---|
name |
Yes | Pack identifier (must match directory name) |
displayName |
No | Human-readable display name |
version |
No | Semantic version |
author |
No | Pack author |
description |
No | Pack description |
events |
Yes | Event-to-sound mapping |
| Mode | Behavior |
|---|---|
"random" |
Random selection from files array |
| Other or not specified | Play first file |
Specify the pack name in your config file:
{
"sound": {
"pack": "my-pack"
}
}If sounds aren't playing or notifications aren't showing:
/dding-dong:dd-doctor
Automatically inspects your environment and provides diagnosis with suggested fixes.
- Fork this repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'feat: add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
MIT License β See the LICENSE file for details.