Claude Code often stops to ask before it runs a command or edits a file. If you've switched to another window, the session just sits there until you notice. Here are four ways to get a notification on your Mac, from built-in settings to your MacBook's notch.
Disclosure: we make Notchware, which is one of the options below. The first three options are built into Claude Code and macOS and cost nothing.
1. Turn on desktop notifications
When Claude finishes a task or pauses for a permission prompt while you seem to be away, Claude Code fires a notification. By default it sends a macOS desktop notification only in Ghostty, Kitty, and iTerm2.
- Ghostty and Kitty forward it to Notification Center with no setup.
- iTerm2 needs one change: open Settings › Profiles › Terminal, check Notification Center Alerts, then click Filter Alerts and enable Send escape sequence-generated alerts.
If nothing appears, check that your terminal app is allowed to send notifications in System Settings › Notifications.
2. Use the terminal bell in other terminals
Apple Terminal, Warp, and the VS Code integrated terminal don't get desktop notifications by default. You can make Claude Code ring the terminal bell instead by adding this to your user settings:
{
"preferredNotifChannel": "terminal_bell"
}3. Add a Notification hook for a sound or alert
Hooks run a command of your choice when something happens in Claude Code. They work in every terminal and run alongside the built-in notification. This one plays a macOS system sound whenever Claude Code sends a notification:
{
"hooks": {
"Notification": [
{
"hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
}
]
}
}To be alerted only when Claude needs permission, add a matcher, and use osascript to show a banner instead of a sound:
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code needs your approval\" with title \"Claude Code\"'"
}
]
}
]
}
}Want to know when a task is done, too? Add the same kind of command under the Stop event, which fires when Claude finishes responding.
Using tmux? Notifications from inside tmux don't reach your terminal until you add set -g allow-passthrough on to ~/.tmux.conf and run tmux source-file ~/.tmux.conf.
4. See it in your MacBook notch
Notification banners pile up and disappear. If you'd rather glance at one fixed spot, a notch app can show agent status right where the camera is.
Notchware Pro shows Need approval and Task completed alerts in the notch for Claude Code, Codex, and Cursor, with optional sounds. You install each integration from Settings › AI Agents, and Show Details lets you review the exact hook command before it's added. The hooks write short status events only; they don't read your prompts, code, or responses. Notchware also puts Now Playing, battery, volume, brightness, Focus, and Wi-Fi in the notch, and it's free to download, with Pro a one-time $3.99.
Notchware alerts you and you answer in the terminal. If you want to approve or deny right from the notch, dedicated agent apps such as Vibe Island, AgentPeek, and Claude Pulse focus on that. We compare them in the best MacBook notch apps.
Which should you use?
- Already on Ghostty, Kitty, or iTerm2? Turn on desktop notifications and you're done.
- Another terminal? Set
preferredNotifChanneltoterminal_bell, or add a Notification hook. - Running several agents, or tired of banners? Put the alerts in your notch.
The settings and hook events above come from the Claude Code terminal guide and hooks reference, which list every notification type you can match.