Notification hook does not fire on permission prompts (Windows 11)

Resolved 💬 3 comments Opened May 7, 2026 by eojodrabmol Closed May 10, 2026

Summary

The Notification hook does not fire when a tool-use permission prompt is shown to the user. Per documented behavior, permission prompts should fire the Notification hook immediately. They don't — verified across 105 seconds (well past the 60s idle threshold). Stop hooks fire correctly on the same wiring; only Notification on permission prompts is broken.

Environment

  • OS: Windows 11 Pro 10.0.26200
  • Shell: PowerShell
  • Claude Code: current (VS Code extension and CLI both reproduce)

Reproduction

  1. In ~/.claude/settings.json, configure a Notification hook with "matcher": "" pointing to a script that produces an observable side effect (e.g., audio playback, HTTP POST, log write).
  2. In a Claude Code session, set the in-chat permission mode to ask before edits.
  3. Have Claude attempt a Write to a path outside the allowlist / additionalDirectories (e.g., D:\some_file.txt when D:\ is not in additionalDirectories).
  4. The permission prompt appears as expected.
  5. Observe: the Notification hook script does not execute. Wait 90+ seconds — still does not execute.
  6. After approving or rejecting the prompt, the Stop hook does fire correctly on Claude's next turn — confirming the hook wiring works for Stop but not for Notification.

Expected behavior

Per hooks documentation, the Notification hook should fire immediately when a permission prompt is displayed, AND should fire after the documented 60-second idle threshold for unanswered prompt input.

Actual behavior

Notification hook does not fire on permission prompts at all. Verified across 105+ seconds of waiting on a single permission prompt — neither the immediate-fire nor the 60s-idle-fire path triggered. No script invocation, no audible ding from an installed audio hook, no ntfy.sh push from an installed push hook (both wired into Notification with "matcher": "").

Impact

This breaks any user-installed Notification hook intended to alert the user on permission prompts — sound playback, push notifications, IDE focus changes, etc. Without it, users must keep visual focus on the Claude Code UI to notice that a tool is waiting for approval, defeating the purpose of the Notification hook for this very common scenario.

Reproducibility

Consistent — every permission prompt during a multi-hour session failed to fire Notification. Stop fired correctly throughout the same session with the same hook configuration.

Hook config snippet

"Notification": [
  {
    "matcher": "",
    "hooks": [
      { "type": "command", "command": "python ..." }
    ]
  }
]

Same shape works perfectly for Stop and SessionStart.

Notes

/feedback slash command is not available in the VS Code extension or local builds, hence filing here.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗