How to know when Claude Code finishes
Ways to get notified when a Claude Code run finishes on macOS, from the terminal bell and Stop hooks to an always-on menu-bar view.
By Piotr Jura, creator of AgentNotch. Tested on macOS with AgentNotch v1.3.1.
❯ claude
● Wiring the license claim endpoint
⎿ Edited lib/license/store.ts (+38 −6)
⎿ Edited app/api/license/claim/route.ts (+21 −3)
⎿ Ran npm test (42 passed)
● Run npm run db:migrate?
❯ 1. Yes 2. No, tell Claude what to do
waiting for your approval
You start a Claude Code run, switch to Slack, and lose track of it. By the time you look back, it finished five minutes ago and you waited on nothing.
Claude Code gives you two built-in ways to catch that moment: the terminal bell and a Stop hook, wired to osascript or terminal-notifier for a native banner. Both work for one session you're half-watching, and both fire once, so they leak the minute you run more than one.
Where AgentNotch fits
AgentNotch keeps the state visible instead of firing once. It watches your Claude Code sessions in the menu bar, so a finished run reads as done. Open several and it flags the one that needs you next; click to land in it. It runs on your Mac, never your code or keys. Keep the bell for the fast cue; the notch takes over at three sessions.
Side by side
| What it does | Its limit | |
|---|---|---|
| Terminal bell | Rings when a run ends, if your terminal's bell is on. | Fires once. Says something finished, not which session. |
| Stop hook | Runs any command when a session ends, e.g. a macOS notification. | Per session, per event. It carries no running state. |
| AgentNotch | Keeps every session's status in the menu bar as it runs. | Flags the one that needs you; macOS only. |
Questions
- How do I know when Claude Code is done?
- The simplest built-in signal is the terminal bell: Claude Code rings it when a run ends, so turn on an audible or visual bell in your terminal and you get a ping the moment it stops. For something you can see across every session at once, a menu-bar monitor like AgentNotch marks the session as done without you switching windows.
- Does Claude Code have a notification when it finishes?
- Claude Code fires a Stop hook when a run ends, which you can wire to any command, including a macOS notification. Set it up in your settings and you get a system alert each time a session finishes.
- Why do I keep missing when Claude Code finishes?
- A one-time bell or notification is easy to miss when you are in another app or running several sessions at once. The ping fires once and is gone, so if you look away you lose it, which is why a persistent status view helps once you pass two or three sessions.
- Can I get a sound when Claude Code is done?
- Yes. Enable your terminal's audible bell, or point a Claude Code Stop hook at a command that plays a sound with afplay, and you hear a cue the moment the run ends.
Keep reading
See which agent needs you.
Try AgentNotchfree for 14 days, no card. Watch Claude Code, Cursor, and Codex from your Mac's menu bar.
Updated 2026-07-17