Blog · August 11, 2026 · 6 min read
Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input
Every Claude Code session has the same dead spot. You hand over a task, the agent starts working, and you switch to something useful — which means you miss the moment it finishes, and you definitely miss the moment it stops to ask for permission. The terminal doesn't shout. It just sits there, blocked, while you answer email.
The fix is Claude Code notifications: an alert when Claude Code finishes a task, and a different one when it needs your input. Claude Code ships with several ways to do this, from a one-line setting to a fully scripted hook. Here they all are, simplest first.
Option 1: the built-in terminal bell
Claude Code has a notification preference built in. Run this once:
claude config set --global preferredNotifChannel terminal_bellFrom then on, Claude Code rings the terminal bell when it needs your attention. Whether you actually hear anything depends on your terminal: macOS Terminal plays a sound by default, while iTerm2 users should either enable the bell in Profiles → Terminal or set the channel to iterm2_with_bell instead. It's the lowest-effort option and also the easiest to miss — a bell is a bell, with no message attached and nothing to click.
Option 2: hooks — notifications you fully control
The proper mechanism is hooks. Claude Code exposes lifecycle events you can attach shell commands to, and two of them map exactly onto the two alerts you want: the Notification event fires when Claude is waiting for you (a permission prompt or a question), and the Stop event fires when it finishes responding. Add this to ~/.claude/settings.json:
{
"hooks": {
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "afplay /System/Library/Sounds/Ping.aiff"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "afplay /System/Library/Sounds/Glass.aiff"
}
]
}
]
}
}That version just plays two different sounds — Ping for "Claude needs you now", Glass for "done" — which is already a big upgrade: your ears learn the difference within a day. On Linux, swap afplay for paplay and a sound file from your system theme.
For a visible banner instead of (or alongside) the sound, replace the command with an AppleScript call:
osascript -e "display notification \"Claude Code needs your input\" with title \"Claude Code\""macOS treats these banners as coming from the scripting system, so they're not clickable and they inherit whatever Focus rules you've set. If you want banners that jump you back to the right terminal window when clicked, install terminal-notifier via Homebrew and use it in the hook command with its -activate flag. For the full tour of what hooks can do beyond notifications — auto-formatting, guarding risky commands — see our practical guide to Claude Code hooks.
Option 3: push it to your phone
If you wander away from the desk while long tasks run, a desktop banner helps nobody. The standard trick is ntfy.sh: pick a topic name, install the ntfy app on your phone, and make the hook command a one-line curl that posts "Claude is done" to your topic. Your phone buzzes wherever you are. It works, it's free, and it takes about ten minutes to wire up — the main caveat is that anyone who guesses your topic name can see your pings, so treat the topic like a password.
Option 4: the zero-config option
Every setup above assumes you enjoy editing JSON and debugging why a hook didn't fire. If you'd rather skip to the part where notifications just work, that's exactly why we built AI Done Now: a Mac menu bar app that watches Claude Code and notifies you when it finishes or needs input — no settings files, no scripts. Different alerts for "done" and "waiting for you", native clickable notifications that bring you back to your terminal, and it handles Cursor, Codex CLI, and Gemini CLI with the same two clicks if you use those too.
Which setup should you pick?
If you live in one terminal and rarely leave the keyboard, the terminal bell is honestly enough. If you like owning your config, the two-hook setup — Ping for input needed, Glass for done — is the sweet spot, and it's what most heavy users build eventually. Add ntfy if your coffee machine is far from your desk. And if you want all of it without touching a config file, the menu bar app does in two clicks what this whole article does in JSON.
Whichever you choose, the payoff is the same and it's bigger than it sounds: agentic coding only pays off when you stop supervising the agent. Set up the alerts once, and the minutes Claude Code spends working become minutes you actually get back — our post on a workflow that doesn't involve watching the terminal covers what to do with them.
Keep reading
Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively
8 min read
Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track
6 min read
A Claude Code Workflow That Doesn't Involve Watching the Terminal
5 min read
Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow
7 min read
Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously
7 min read
Claude Code Subagents: How to Delegate Work to Specialized Agents
7 min read
Claude Code Context Management: Treat the Context Window Like a Budget
6 min read
Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top
7 min read
Skills and Plugins: How to Teach Claude Code Your Way of Working
7 min read
Claude Code Background Tasks: Run Long Commands Without Blocking Your Session
6 min read
Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input
7 min read
Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes
6 min read
Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile
5 min read
Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform
6 min read
Get a Ding the Moment Codex Needs Your Response
6 min read
Get Notified the Moment Claude Code Is Waiting for Your Input
6 min read
“Notifications Are Turned Off for Claude” — Here Is the Fix
6 min read
Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes
6 min read
terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes
6 min read
Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes
6 min read
Get Claude Code Notifications on Your Phone
6 min read