VS Code extension ignores Bash permission allow rules from settings.json
Description
The VS Code extension does not enforce Bash(...) allow rules defined in ~/.claude/settings.json and ~/.claude/settings.local.json. Every Bash command prompts for permission, even when explicitly allowed.
The CLI respects these rules perfectly — same config files, same machine, same commands. Only the extension ignores them.
Reproduction
- Add Bash allow rules to
~/.claude/settings.json:
{
"permissions": {
"allow": [
"Bash(ls *)",
"Bash(git status*)",
"Bash(git log*)"
]
}
}
- Run
claudein terminal →ls -la ~/some/pathexecutes without prompting ✅ - Use the VS Code extension → same command prompts for permission ❌
Expected behavior
The VS Code extension should enforce the same Bash(...) allow/deny rules from settings.json that the CLI does. Users shouldn't have to approve the same safe commands hundreds of times per session.
Environment
- macOS 15 (Darwin 25.3.0)
- Cursor (VS Code fork) — but the issue is with the Claude Code extension, not Cursor specifically
- Claude Code CLI works correctly with the same settings
- Both
~/.claude/settings.jsonand~/.claude/settings.local.jsontested
Impact
Heavy users with comprehensive allow lists (100+ Bash patterns) get no benefit from them in the extension. This makes the extension significantly less usable for power users who have carefully curated their permission rules. The constant prompting interrupts flow and slows down work considerably.
But all good. Thank you. The tool is amazing. Deeply appreciate you guys and all the work you've done!
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗