VSCode Extension: Permission settings (allow: [*] and defaultMode: bypassPermissions) not working
Bug Description
The VSCode extension ignores permission settings configured in .claude/settings.json and .claude/settings.local.json. Despite having allow: ["*"] and defaultMode: "bypassPermissions" configured, the extension still prompts for permission on every new command type.
Environment
- Platform: macOS Darwin 24.5.0
- Claude Code Version: Native install, lastOnboardingVersion: 2.0.35
- IDE: VSCode with Claude Code extension
Configuration Attempted
.claude/settings.json
{
"permissions": {
"defaultMode": "bypassPermissions",
"allow": ["*"],
"deny": [],
"ask": []
}
}
.claude/settings.local.json
{
"permissions": {
"defaultMode": "bypassPermissions",
"allow": ["*"],
"deny": [],
"ask": []
}
}
VSCode User Settings
{
"claudeCode.allowDangerouslySkipPermissions": true
}
~/.claude.json Feature Flags
{
"cachedStatsigGates": {
"tengu_disable_bypass_permissions_mode": false
}
}
What Was Tried
- Wildcard
["*"]in settings.json - Still prompts - Removing settings.local.json - System recreates it with specific commands on each approval
defaultMode: "bypassPermissions"- Still prompts- VSCode setting
claudeCode.allowDangerouslySkipPermissions: true- Still prompts - Explicit tool allow list (Read(), Edit(), Bash(*), etc.) - Still prompts
- PreToolUse hooks returning
{"decision": {"behavior": "allow"}}- Still prompts - Making settings.local.json immutable with
chflags uchg- Still prompts - Full VSCode restart (Cmd+Q, not just reload) - Still prompts
- Starting new conversations after config changes - Still prompts
Expected Behavior
With allow: ["*"] configured, NO permission prompts should appear. The wildcard should match all tools.
With defaultMode: "bypassPermissions" configured, the extension should skip permission prompts entirely.
Actual Behavior
- Permission prompts still appear for each new command type
- When user approves, the system ADDS the specific command to
settings.local.json(e.g.,"Bash(git status:*)") - This overrides the wildcard with specific rules
- New command types still trigger prompts because they are not in the specific list
Workaround
The CLI version with --dangerously-skip-permissions flag works correctly. Only the VSCode extension ignores the settings.
Impact
This prevents autonomous/unattended operation of Claude Code in VSCode, which is critical for automated workflows and AI agent systems.
Steps to Reproduce
- Create
.claude/settings.jsonwith"allow": ["*"] - Open VSCode with Claude Code extension
- Start a new conversation
- Ask Claude to run any Bash command
- Observe: Permission prompt appears despite wildcard allow rule
- Approve the command
- Check
.claude/settings.local.json- specific rule was added instead of using wildcard
Additional Context
The settings hierarchy documentation suggests .claude/settings.local.json takes precedence, but even with BOTH files containing identical wildcard configurations, prompts still appear.
4 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
Update: Solution Found
The issue was incomplete documentation. Two VSCode settings are required to work together:
allowDangerouslySkipPermissions- Enables the bypass modeinitialPermissionMode- Activates it for new conversationsWithout
initialPermissionMode: "bypassPermissions", the feature is enabled but not active.Suggestion: Update documentation to clarify both settings are needed, or make
allowDangerouslySkipPermissions: trueautomatically setinitialPermissionModetobypassPermissions.Closing as resolved - the solution was found (see previous comment). This is a documentation issue rather than a bug - both settings are needed but only one was documented clearly.
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.