[BUG] VS Code Extension Ignores Hook `permissionDecision: "ask"`
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?
The VS Code extension ignores hookSpecificOutput.permissionDecision: "ask" from PreToolUse hooks. The CLI correctly prompts the user for permission, but VS Code silently falls back to permission rules.
This creates a security gap: hooks cannot enforce "ask before executing" policies in VS Code, only in CLI.
Hook decisions "allow", "deny", "approve", "block" all work consistently in both interfaces—only "ask" is broken.
What Should Happen?
When a hook returns permissionDecision: "ask", VS Code should show a permission prompt (same as CLI does).
Error Messages/Logs
Steps to Reproduce
- Fork and open in GitHub Codespaces: https://github.com/gramatus/claude-reproductions
- In Claude Code (VS Code extension), run:
run: echo "test-20" - Observe: command runs silently without prompting
- Compare with CLI: open terminal, run
claude, thenrun: echo "test-20" - Observe: CLI correctly shows permission prompt
See full test matrix: https://github.com/gramatus/claude-reproductions/blob/main/permissions-bug/REPRODUCE.md
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.61
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
Workaround: Use {"decision": "block"} instead of "ask". Works in both environments but removes case-by-case approval.
Related issues:
- #12604 - Extension ignores permission settings
- #13028 - Permissions in settings.local.json not respected
Full reproduction repo: https://github.com/gramatus/claude-reproductions/tree/main/permissions-bug
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗