VSCode Extension: Permission settings (allow: [*] and defaultMode: bypassPermissions) not working

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Nov 28, 2025 · closed Nov 28, 2025

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

  1. Wildcard ["*"] in settings.json - Still prompts
  2. Removing settings.local.json - System recreates it with specific commands on each approval
  3. defaultMode: "bypassPermissions" - Still prompts
  4. VSCode setting claudeCode.allowDangerouslySkipPermissions: true - Still prompts
  5. Explicit tool allow list (Read(), Edit(), Bash(*), etc.) - Still prompts
  6. PreToolUse hooks returning {"decision": {"behavior": "allow"}} - Still prompts
  7. Making settings.local.json immutable with chflags uchg - Still prompts
  8. Full VSCode restart (Cmd+Q, not just reload) - Still prompts
  9. 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

  1. Permission prompts still appear for each new command type
  2. When user approves, the system ADDS the specific command to settings.local.json (e.g., "Bash(git status:*)")
  3. This overrides the wildcard with specific rules
  4. 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

  1. Create .claude/settings.json with "allow": ["*"]
  2. Open VSCode with Claude Code extension
  3. Start a new conversation
  4. Ask Claude to run any Bash command
  5. Observe: Permission prompt appears despite wildcard allow rule
  6. Approve the command
  7. 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.

View original on GitHub ↗

4 Comments

github-actions[bot] · 10 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/2933
  2. https://github.com/anthropics/claude-code/issues/10801
  3. https://github.com/anthropics/claude-code/issues/12562

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

AdrienCastelain · 10 months ago

Update: Solution Found

The issue was incomplete documentation. Two VSCode settings are required to work together:

{
  "claudeCode.allowDangerouslySkipPermissions": true,
  "claudeCode.initialPermissionMode": "bypassPermissions"
}
  • allowDangerouslySkipPermissions - Enables the bypass mode
  • initialPermissionMode - Activates it for new conversations

Without initialPermissionMode: "bypassPermissions", the feature is enabled but not active.

Suggestion: Update documentation to clarify both settings are needed, or make allowDangerouslySkipPermissions: true automatically set initialPermissionMode to bypassPermissions.

AdrienCastelain · 10 months ago

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.

github-actions[bot] · 10 months ago

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.