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_bell

From 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