Get notified when Claude Code finishes.
Claude Code can work for a few seconds or a few minutes. You don’t have to watch it. Set up a sound or a notification once, look away, and come back the moment it’s done or needs you.
Why bother
Without a signal you end up doing one of two things: staring at the spinner, or wandering off and coming back ten minutes late. A notification fixes both. You can do something else and still answer Claude the moment it asks a question or finishes.
Option 1: the terminal bell
The simplest setup. Inside Claude Code, run /config and set the notification option to the terminal bell. Claude Code then rings your terminal’s bell when it’s waiting for you.
Many terminals can turn that bell into something more visible. iTerm2, Ghostty, Kitty and others can show a desktop notification or bounce the Dock icon when a background tab rings; look for “bell” or “notifications” in your terminal’s settings. Some terminals also let Claude Code send its own desktop notifications directly.
Option 2: a sound every time it finishes (Stop hook)
Claude Code supports hooks: commands it runs at certain moments. The Stop hook runs each time Claude finishes responding. Add this to ~/.claude/settings.json to play a sound on a Mac:
{
"hooks": {
"Stop": [
{ "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }] }
]
}
}For other systems, swap the command:
- Linux:
paplay /usr/share/sounds/freedesktop/stereo/complete.oga - Windows (PowerShell):
powershell -c [console]::beep(880,300)
The Stop hook fires after every reply, including quick one-line answers, so pick a short, pleasant sound.
Option 3: an alert when it needs you (Notification hook)
The Notification hook runs when Claude Code wants your attention, for example when it needs permission to run a command or has been waiting for your input. This one shows a macOS notification:
{
"hooks": {
"Notification": [
{ "hooks": [{ "type": "command", "command": "osascript -e 'display notification \"Claude Code needs you\" with title \"Claude Code\"'" }] }
]
}
}On Linux, use notify-send "Claude Code" "Needs your input" instead. Use this together with the Stop hook, or on its own if you only care about being unblocked.
Hooks run shell commands on your machine, so only add ones you understand. Run /hooks in Claude Code to see what’s set up.
Then: what to do with the wait
Once you know you’ll hear Claude when it’s done, the wait becomes free time. A few good uses: type your next prompt (Claude Code queues it until the current turn ends), skim the diff it’s producing, or stand up for a minute.
Or play a round of Bitty. It’s a tiny buddy for your desktop with quick brain games sized to the wait. It doesn’t connect to Claude Code (it never reads your terminal or code), which is exactly why it pairs well with a notification: play until you hear the chime, press Esc, and you’re back.
- Start your AI as usual.
- Open Bitty: click the little buddy on your desktop, or press Option+Shift+B on a Mac (Alt+Shift+B on Windows and Linux).
- Pick the wait: a 5-second Blitz, 15, 30 or 60 seconds, or a 5-minute Boss Fight.
- Press Esc when your AI is done. You’re straight back at your work.
Try Bitty free
Bitty is a free download for macOS, Windows and Linux. The free plan includes 5 challenges a day plus unlimited 5-second Blitz rounds and the Daily Challenge, every core game and three buddies. Premium adds unlimited play, Boss Fights and more.
Download Bitty freeSee the games
More: What to do while your AI codes · While Cursor’s agent runs · Brain games for programmers · Bitty vs CodeBreak