Ambient › Guides

Claude Code notifications not working on Mac: how to fix them

Updated · 4 min read

Most missing Claude Code notifications come from one of three causes: you were still typing, your terminal doesn't show them (only Ghostty, Kitty and iTerm2 get desktop notifications), or macOS is blocking the app that posts them. Start with the table below.

Get Ambient Free for macOS 14 and later.

Find your symptom

What you seeLikely causeFix
Nothing in VS Code, Cursor, Warp or other terminalsNo built-in desktop notification thereUse a hook or the terminal bell
Nothing in Apple TerminalNo desktop notification, and at most a silent bellUse a hook, or the bell with Audible bell on
Nothing in iTerm2Alerts are off by defaultTurn them on in iTerm2
Nothing in Ghostty or KittymacOS is blocking the appAllow notifications for it
Nothing inside tmuxtmux swallows the alertAdd allow-passthrough
An osascript hook does nothingScript Editor has no permissionAllow notifications for Script Editor
Alerts arrive late, or not while you typeThe alert waits until you look awayUse Stop and PermissionRequest hooks

Check the timing first

Claude Code only alerts you when you appear to be away, and that's based on typing. A permission alert waits until you haven't typed for about six seconds, and each keystroke pushes it back. An idle alert comes about 60 seconds after Claude finishes, if you haven't typed since. For an alert the moment something happens, use a PermissionRequest or Stop hook. The permission guide shows how.

Use a terminal that shows them

Ghostty, Kitty and iTerm2 get a desktop notification. Other terminals get nothing by default, or in Apple Terminal, at most a silent bell. To send the bell in any terminal, add this to ~/.claude/settings.json:

{
  "preferredNotifChannel": "terminal_bell"
}

In Apple Terminal, also turn on Audible bell under Settings → Profiles → Advanced. If this setting is notifications_disabled, change it back: that turns off the alert, though hooks still run.

Turn on alerts in iTerm2

Go to Settings → Profiles → Terminal and check Notification Center Alerts. Then click Filter Alerts and enable Send escape sequence-generated alerts.

Allow notifications in macOS

Open System Settings → Notifications, find your terminal app and turn on Allow Notifications. Also check that Focus or Do Not Disturb isn't hiding them.

Let them through tmux

Add set -g allow-passthrough on to ~/.tmux.conf and run tmux source-file ~/.tmux.conf. The tmux setup guide has the full config.

Fix a silent osascript hook

osascript posts notifications through Script Editor. Without permission it fails silently, and macOS doesn't ask. Run this once so Script Editor appears in your settings:

osascript -e 'display notification "test"'

Nothing shows yet. Open System Settings → Notifications, find Script Editor and turn on Allow Notifications, then run the command again.

Check that the hook loaded

Type /hooks at the Claude Code prompt and look for your hook under its event. If it's missing, check that ~/.claude/settings.json is valid JSON, and that the new event sits beside your existing events inside the single hooks object.

Or skip the setup

Ambient installs its own hooks and shows every session at the notch, in any terminal or editor, with no notification settings to line up. Click the island to go back to the exact tab or pane.

Stop babysitting terminals.

Free for macOS 14 and later. Works with Claude Code, Codex and Gemini CLI.

Get Ambient

Common questions

Why do Claude Code notifications not show up on my Mac?

Usually because you were still typing, your terminal doesn't show desktop notifications, or macOS is blocking the app. Only Ghostty, Kitty and iTerm2 get desktop notifications by default.

Why don't I get notifications in the VS Code terminal?

Claude Code doesn't send a desktop notification there. Use a Notification hook, or set preferredNotifChannel to terminal_bell.

Why does my osascript notification hook do nothing?

osascript posts through Script Editor, and it fails silently without permission. Run it once, then allow Script Editor in System Settings → Notifications.

Sources

More guides: Claude Code notifications on Mac · Claude Code permission notifications