← All work

claude-ding

Sound for Claude Code. A chime when it finishes, a different one when it needs you, an error buzz when a tool fails. On npm.

I spend most of the day in Claude Code (Anthropic's terminal coding agent), often with several sessions going. The problem is knowing when one of them wants me without staring at it. claude-ding plays a sound instead.

npm install -g claude-ding
claude-ding init

That picks a preset, sets the volume, and writes hooks into Claude Code's settings. There are six presets: minimal UI tones, sci-fi, fantasy, retro chiptune, Doom (shotgun rack when it finishes), and NASA mission control with Quindar beeps.

Terminal output of claude-ding --help listing its commands, and claude-ding preset listing the six presets with doom selected
The CLI. I run the Doom preset.
Each Claude Code event maps to one named sound. The hook is one shell command, so you can wire your own.

A few details I cared about:

  • Hooks are plain commands. Each entry is claude-ding play <name>, so if you don't like the mapping you can edit the settings file by hand, or add your own hook for an event I didn't cover.
  • Any sound can be overridden with your own file, per sound, without leaving the preset.
  • Quiet hours. Set a start and end time and it stays silent at night.
  • uninstall removes exactly what install added and nothing else in your settings.

Built in TypeScript with tsup and tested with Vitest. It's the kind of tool I'd rather install than build, but nobody had, so I did.