Skip to content

Notification hooks (permission_prompt) don't fire in VS Code extension #28774

@jordanwiseman-ai

Description

@jordanwiseman-ai

Description

Notification hooks with permission_prompt and idle_prompt matchers never fire in the VS Code extension. Stop hooks work correctly.

Steps to Reproduce

  1. Add the following to ~/.claude/settings.json:
{
  "hooks": {
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "afplay /System/Library/Sounds/Glass.aiff &"
          }
        ]
      }
    ]
  }
}
  1. Start Claude Code in the VS Code extension
  2. Ask Claude to perform an action that requires permission (e.g. run a bash command)
  3. Permission prompt appears but no hook fires — no sound plays

Expected Behavior

The Notification hook should fire when a permission prompt is shown, just as it does in the CLI.

Actual Behavior

The hook never fires. Verified by checking hook execution logs — only Stop hooks produce log entries. Zero Notification hook executions recorded across multiple attempts and VS Code reloads.

Environment

  • macOS (Darwin 25.3.0)
  • Claude Code VS Code extension
  • Tested with both direct afplay commands and CC Ring extension's hook script

Impact

There is currently no way to receive audio alerts when Claude Code is waiting for permission approval in VS Code. This leads to significant wasted development time when users switch to other tasks while Claude works, not realizing it's blocked on a permission prompt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions