Plainbuilt
All posts

Make Claude Code Make Noise

A tiny hook that stops Claude Code waiting silently while your attention is in another tab eating paste.

Claude Code is very good at reading your codebase, planning a change, and editing files without needing a motivational quote about craftsmanship. It is also world-class at sitting there, patiently and silently, waiting for an answer while you are somewhere else living an entire parallel life.

You think it is still working. Instead, it is looking at you.

Not with eyes, obviously. With a terminal prompt. Which is worse, because a terminal prompt has the emotional range of a tax form and the urgency of a microwave that refuses to beep.

This is how you lose minutes. Then hours. Then, if you are truly committed to the bit, a full afternoon to the sacred ritual of tab archaeology:

"Wait, why has nothing changed?"

"Oh."

"It asked me whether to install a package forty-three minutes ago."

"Excellent. Great. Love that for me."

Silence is elegant in a meditation app. Silence is not elegant when your coding agent has stopped mid-flight and is waiting for you to press the big human button. At that point silence is not minimalism. Silence is sabotage with good typography.

So make it ding.

Claude Code supports hooks, which can run commands when certain events happen. On macOS, the laziest useful version plays one system sound when Claude stops and another when it sends a notification. It is a tiny audible poke in the ribs from your computer, with no productivity framework named after a weather pattern.

The file you want is your personal Claude Code settings file:

~/.claude/settings.json

That applies to all Claude Code projects on your Mac, which is what you want for this. You do not want to remember to set up the beep separately in every folder like some kind of notification accountant.

If you have not edited a terminal config file before, here is the low-drama version.

Open Terminal and run:

mkdir -p ~/.claude

That makes sure the Claude settings folder exists. Then open the settings file in nano, a beginner-friendly terminal text editor:

nano ~/.claude/settings.json

If the file is empty, paste this whole thing in. If it already has settings in it, you need to merge the "hooks" section into the existing JSON instead of pasting a second separate object underneath it. JSON is fussy. It wants one top-level object, no trailing commas, and absolutely no sympathy.

{
  "hooks": {
    "Stop": [{ "matcher": "", "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }] }],
    "Notification": [{ "matcher": "", "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Ping.aiff" }] }]
  }
}

In nano, press Control + O to save, then press Enter to confirm the filename. Press Control + X to exit.

Restart Claude Code after that if the sound does not start working immediately. Sometimes config watchers are awake and noble. Sometimes they are taking a small spiritual lunch break.

You have now upgraded from "my agent may or may not be blocked in a terminal I have emotionally abandoned" to "my agent makes a little noise when it needs me."

The sound stops you paying the anxiety tax. You no longer need to keep checking whether Claude Code is done, stuck, confused, lonely, or contemplating a dependency upgrade with the seriousness of a constitutional crisis. You can go read something, answer a message, make coffee, stare into the middle distance, or open the wrong app and forget why.

Then it pings: your code assistant requires tribute.

Fine. That is a dramatic way to describe answering "yes" to a terminal prompt, but the point stands.

Pick whatever sound you want. Glass. Ping. Funk. Submarine. That weird macOS one that sounds like a robot swallowing a coin. Waiting silently is a bad default for a tool that alternates between doing useful work and needing human steering.

If Claude Code is part of your daily workflow, give it a small, stupid sound that says: come back, the machine needs an adult.

You will feel ridiculous for about four seconds, and then it will save you time.