Claude Code and TapNoise.
Hear Claude Code finish, ask for permission or fail, in the sounds of your keyboard theme. Knock twice to jump to the window that’s waiting.
What happens
- Done when Claude Code finishes a turn: a rising phrase, and Tappy celebrates.
- Needs you when Claude Code asks for a permission: a quick rising phrase that repeats, so you know to look.
- Error when a turn ends in an error: a falling phrase.
- Knock to answer: while Claude Code waits for you, knock twice on the MacBook, or click Tappy, to bring its window forward.
- The sounds are made from your current sound theme, so they match the keys you type on.
Set it up
- Open TapNoise from Applications. Connect is refused while it runs from the disk image.
- Open Settings › Agents. Under Agent sounds, make sure Play agent sounds is on. It is on by default.
- Under Connect your agents, click Connect next to Claude Code.
- To see the exact lines first, open What TapNoise writes to ~/.claude/settings.json.
- Restart any Claude Code session that was already running.
- Under Hear them, click Done, Needs you or Error to hear each sound.
Good to know
- Connect adds three entries to hooks: Stop for done, Notification for permission prompts, and StopFailure for errors. Your own hooks stay where they are.
- TapNoise backs up the file first, in ~/Library/Application Support/TapNoise/Agent hook backups. The file is written back with two-space indents, so its layout can change a little.
- The hook sends only which agent it is, what happened and the app it runs in. It doesn’t read your prompts or code.
- Knock to answer works for five minutes after a permission prompt. After that, the wait ends and a knock does its usual job.
- Several sessions finishing together play one sound.
- After you move TapNoise, the row shows Repair. Click it so the hook points at this copy.
- Click Remove to take TapNoise’s entries out. The rest of the file stays as it was.
- Sounds need a TapNoise license. They stay silent during a call while Quiet during calls is on.
Questions
Does TapNoise read my prompts or code?
No. The hook tells TapNoise only which agent it was, whether it is done, needs you or hit an error, and which app it runs in.
Will Connect break my existing Claude Code hooks?
No. TapNoise adds its entries after yours and leaves everything else in the file. Remove takes its entries out again.
I connected it, but nothing plays. What now?
Check that Settings › Agents shows Claude Code as connected and that Play agent sounds is on. Then restart the Claude Code session, because a running agent doesn’t pick up the change until it restarts. Also check that Sounds on is on under Settings › General.
TapNoise