[BUG] PermissionRequest hook does not trigger in VSCode extension
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Description
The PermissionRequest hook does not fire when the permission dialog (Yes/No/Yes and don't ask again) is displayed in the VSCode extension. The hook is documented as a valid hook type but appears to not be implemented or broken in VSCode.
Steps to reproduce
- Add PermissionRequest hook to ~/.claude/settings.json:
{
"hooks": {
"PermissionRequest": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "powershell -Command \"(New-Object Media.SoundPlayer 'C:\\Windows\\Media\\Windows Proximity Notification.wav').PlaySync()\"",
"timeout": 5000
}
]
}
]
}
}
- Reload VSCode window
- Ask Claude to run a command that requires permission approval
- Permission dialog appears but hook does NOT trigger
Expected behavior
Hook should trigger when permission dialog is displayed
Actual behavior
Hook never triggers. Tested with and without matcher: "*".
Note: PreToolUse hook DOES work with the same configuration, but triggers on ALL tool calls (including auto-approved ones), making it unsuitable for notification purposes.
Use case
Running Claude Code in multiple VSCode windows and needing audio notification when human intervention is required, so agents can continue working after approval. Now multiple agents are waiting for approval, unnecessarily pausing the work.
Environment
- Claude Code VSCode extension
- Windows 11
- hooks configured in ~/.claude/settings.json
What Should Happen?
Hook should trigger when permission dialog is displayed
Error Messages/Logs
Steps to Reproduce
- Add PermissionRequest hook to ~/.claude/settings.json:
{
"hooks": {
"PermissionRequest": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "powershell -Command \"(New-Object Media.SoundPlayer 'C:\\Windows\\Media\\Windows Proximity Notification.wav').PlaySync()\"",
"timeout": 5000
}
]
}
]
}
}
- Reload VSCode window
- Ask Claude to run a command that requires permission approval
- Permission dialog appears but hook does NOT trigger
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude Opus 4.5 (model ID: claude-opus-4-5-20251101)
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
VS Code integrated terminal
Additional Information
_No response_
10 Comments
I'm having the same issue:
The Notification hook with permission_prompt and idle_prompt matchers does not trigger when using Claude Code in the VS Code extension, though the documentation suggests hooks should work across both CLI and VS Code. Environment:
Claude Code version: 2.0.53
VS Code extension
macOS Darwin 24.6.0
Configuration (~/.claude/settings.json):
{
"hooks": {
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{
"type": "command",
"command": "/path/to/notification-bell.sh"
}
]
}
]
}
}
Steps to reproduce:
Configure a Notification hook with permission_prompt matcher
Add logging to the script to verify execution
Use Claude Code in VS Code and trigger a permission prompt (e.g., file edit)
Check if the hook script was executed - it is not
Expected behavior: The notification hook should fire when a permission dialog appears, allowing users to play audio alerts. Actual behavior: The hook never executes. A debug log file written by the script is never created. Use case: Users want audible notifications when Claude Code needs interaction, especially when multitasking.
I have the same problem in VS Code + Claude Code extension on MacOS.
The "Stop" hook works, but the "PermissionRequest" hook does NOT work
(Both of the hooks do work in Claude Code at the terminal.)
Same, there's multiple tickets about this.
Sam here for macOS
Same here, using macOS, when using Claude Code VSCode extension the PermissionRequest hook does not trigger.
This is snippet of my
settings.json, the hook does run when running Claude Code terminal.I am in the same boat as @shumengliu, @royteeuwen, and everyone else... understand Rome wasn't built in a day and this probs isn't the HIGHEST priority, but would be nice to have an update to the multitude of tickets for this issue as to a potential timeline. Or even if it is a
we dont care about this as much as you guys, soz ¯\_(ツ)_/¯, is better than nothing... cheersCan we get this fixed, please?
Issue still not fixed in VSCode! even with claude 4.6 and latest version of claude code.
PermissionRequest hooks should be working on the latest versions of the extension (
2.1.30and newer).See also: https://github.com/anthropics/claude-code/issues/11156#issuecomment-3862252478
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.