AgentNotch
DownloadGet AgentNotch

AgentNotch for macOS

v1.3.1

Your coding agents, in the notch.

Product

  • Buy
  • Features
  • Download
  • Account
  • What's new
  • Get it free
Compare
  • vs tmux
  • vs terminal-notifier
  • vs iTerm alerts
  • vs Claude Code alerts
  • vs watching the terminal
Guides
  • Monitor agents on macOS
  • When Claude Code finishes
  • When Claude Code needs input
  • Notifications not working
  • Cursor agent notifications
  • Codex notifications
  • See all
Works with
  • Claude Code
  • Cursor
  • Codex
  • Conductor
  • Ghostty
  • iTerm2
  • See all

© 2026 Piotr Jura

AccountPrivacyTermsBuilt by Agentic Developer
AgentNotch
DownloadGet AgentNotch
AgentNotch/Guides/Claude Code notifications not working

Claude Code notifications not working

Why a Claude Code notification hook fires but no banner appears on macOS, and the checks that fix it, from Focus mode to which settings file the hook lives in.

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

❯ cursor agent

▲ Tuning the HUD drop spring

✓ grep interactiveSpring (14 hits)

✓ read NotchWindow.swift

✓ edit NotchHUD.swift (+42 −11)

✓ edit SpringPresets.swift (+8 −2)

running xcodebuild test

❯ codex

• Chasing the flaky webhook retry test

✓ read app/api/stripe/webhook/route.ts

✓ pnpm test webhook.spec.ts

✓ patched the retry backoff

13 passed — ready for review

Hover the notch
3 agents1.2M111
5h2hWeek5dMonth18dWeek6d

You wired up a Notification hook, saw it work once, and now nothing. This usually splits into two problems: the hook isn't firing, or it fires and macOS eats the banner. Work through them in that order.

  1. Run /hooks in the session. It lists what is actually loaded. If your hook isn't there, the session is reading a different settings file than the one you edited: project settings in .claude/settings.json take precedence over ~/.claude/settings.json, and .claude/settings.local.json beats both.
  2. Check the matcher. A Notification hook with an empty matcher fires on everything; a specific one like permission_prompt or idle_prompt fires only on that event, and a typo in it fails silently.
  3. Watch it live with claude --debug hooks from the terminal. If the command runs and you still see nothing, the rest is macOS.
  4. Grant the notification permission. A banner sent with osascript shows up under Script Editor in System Settings, Notifications, and it's off until you allow it. terminal-notifier needs its own entry.
  5. Turn off Focus. Do Not Disturb suppresses the banner without telling anyone, and this is the answer more often than it should be.
  6. Check what the terminal swallows. A bell inside tmux, or inside the VS Code or Cursor integrated terminal, frequently never reaches you even when everything upstream is correct.

Where AgentNotch fits

Every step above is worth doing, and none of it changes the shape of a notification: it fires once, and if you miss it, it's gone. That's the part people are actually fighting when they debug this for the third time.

AgentNotch keeps the state visible instead. Session status lives in the menu bar while the session runs, so a finished or waiting session stays marked until you act on it, and with several open it points at the one that needs you. There is no hook to configure and nothing to keep working. It runs on your Mac and never reads your code or keys.

Questions

Why are my Claude Code notifications not working?
The two usual causes are the hook never firing and the banner being swallowed by macOS. Check the hook is registered by running the /hooks command, then check macOS is allowed to show the notification, since a banner sent by osascript needs Script Editor enabled in System Settings and is suppressed by Focus mode.
Why is my Claude Code hook not firing?
Usually the hook is in a settings file the session is not reading, or the matcher does not match. Project settings in .claude/settings.json override your user settings, so a hook in one file can be replaced by the other, and running /hooks in the session shows what is actually loaded.
Do Claude Code notifications work inside tmux or VS Code?
The hook fires normally, but a terminal bell inside tmux or an editor's integrated terminal is often swallowed before it reaches you. A macOS banner or a menu-bar monitor is more reliable in those setups because neither depends on the terminal passing the signal through.
How do I debug a Claude Code notification hook?
Run /hooks in the session to confirm it is registered, then run claude --debug hooks from the terminal to watch the hook evaluate as it fires. If the command runs but nothing appears, the problem is on the macOS side rather than in Claude Code.

Keep reading

  • When Claude Code needs your input
  • AgentNotch vs Claude Code notifications
  • How to know when Claude Code finishes

See which agent needs you.

Try AgentNotchfree for 14 days, no card. Watch Claude Code, Cursor, and Codex from your Mac's menu bar.

Start free trialSee pricing

Updated 2026-07-18

AgentNotch for macOS

v1.3.1

Your coding agents, in the notch.

Product

  • Buy
  • Features
  • Download
  • Account
  • What's new
  • Get it free
Compare
  • vs tmux
  • vs terminal-notifier
  • vs iTerm alerts
  • vs Claude Code alerts
  • vs watching the terminal
Guides
  • Monitor agents on macOS
  • When Claude Code finishes
  • When Claude Code needs input
  • Notifications not working
  • Cursor agent notifications
  • Codex notifications
  • See all
Works with
  • Claude Code
  • Cursor
  • Codex
  • Conductor
  • Ghostty
  • iTerm2
  • See all

© 2026 Piotr Jura

AccountPrivacyTermsBuilt by Agentic Developer