anthropics / anthropics/claude-code
[BUG] VS Code extension ignores `bypassPermissions` mode; CLI honors it on same machine and config
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 147k
- Forks
- 24k
- PR merge metrics
- PR metrics pending
Description
Preflight Checklist
- I have searched existing issues and this hasn't been reported yet
- This is a single bug report (please file separate reports for different bugs)
- I am using the latest version of Claude Code
What's Wrong?
The VS Code extension does not apply bypassPermissions mode. The CLI applies it correctly on the same machine, with the same config, in the same repo, for the same command.
With claudeCode.initialPermissionMode set to bypassPermissions and Allow Dangerously Skip Permissions enabled, the extension still shows permission prompts for shell commands during plan mode. Running the identical prompt through claude --permission-mode bypassPermissions in a terminal executes without prompting.
Separately, and possibly the same root cause: the extension prompts for plain read commands (a grep against a file path), which should not require approval in any permission mode.
What Should Happen?
With bypassPermissions configured as the initial permission mode and the dangerously-skip toggle enabled, the extension should start conversations in bypass and execute shell commands without approval prompts, matching CLI behavior.
Read-only commands should not prompt regardless of mode.
Error Messages/Logs
No error is shown. A normal permission approval prompt appears. Nothing indicates that the configured mode was not applied.
Steps to Reproduce
Case A — bypassPermissions not applied in the extension
-
In VS Code settings (User), enable Claude Code: Allow Dangerously Skip Permissions.
-
Set Claude Code: Initial Permission Mode to
bypassPermissions. -
In
~/.claude/settings.json, set"permissions": { "defaultMode": "bypassPermissions" }. -
Open a git repo in VS Code and start a new Claude Code conversation from the repo root.
-
Switch to plan mode.
-
Ask Claude to download a file — e.g. "download the CSLB master license CSV to a scratch file and show me the headers." Claude issues:
curl -sS -o "<temp>/MasterLicenseData.csv" \ -D "<temp>/master-headers.txt" \ -w "http=%{http_code} bytes=%{size_download}" \ "https://www2.cslb.ca.gov/OnlineServices/DataPortal/DownLoadFile.ashx?fName=MasterLicenseData&type=C"Result: permission prompt.
-
In a terminal at the same repo root, run
claude --permission-mode bypassPermissions, enter plan mode, and give the same prompt.Result: command executes, no prompt.
Case B — read commands prompt in the extension
-
In the extension, in plan mode, ask Claude to grep a file outside the repo:
grep -n "initializationFailedHandler" "C:/Users/<user>/.vscode/extensions/ortus-solutions.vscode-boxlang-1.23.3/node_modules/vscode-languageclient/lib/common/client.js"Result: permission prompt for a read-only command.
Relevant ~/.claude/settings.json
{
"permissions": {
"defaultMode": "bypassPermissions",
"allow": ["Bash(git log:*)", "Bash(rg:*)", "Bash(find:*)"],
"deny": ["Read(**/.env)", "Bash(git push --force:*)", "Bash(git reset --hard:*)"],
"additionalDirectories": ["D:\\Dropbox\\Repositories"]
},
"useAutoModeDuringPlan": true
}
/doctor reports all settings files parse, no managed policy file, no project .claude/settings.json, and auto mode healthy and unoverridden.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unsure of the exact version. Plan mode did not prompt for reads or ordinary shell commands before approximately September 1, 2026.
Claude Code Version
2.1.276
Platform
Other
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
The two symptoms may share a root cause: if the extension is falling back to a lower-privilege mode rather than applying bypassPermissions, both follow.
Workaround note for anyone else hitting this: permission allow rules do not help. Claude frequently issues compound commands (cd <path> && grep ... | head) and git -C <path> log ..., neither of which a prefix rule can match. The only reliable workaround found was switching to the CLI.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing Case A and Case B on Windows, comparing the VS Code extension with the CLI using the reported initialPermissionMode, defaultMode, and plan-mode settings. Trace how the extension reads ~/.claude/settings.json and applies permission decisions; done means bypassPermissions executes the download without prompting and read-only grep commands no longer require approval.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- powershell, python, vscode
- Domain
- authorization, cli, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100