Skip to content

[BUG] VSCode Extension Ignores All Permission Settings #15772

@slinktaylor

Description

@slinktaylor

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?

Summary

The Claude Code VSCode extension does not read or respect any permission settings from settings files, despite documentation stating settings are shared between CLI and extension.

Environment

  • OS: macOS Darwin 24.6.0
    • VSCode Extension: Claude Code for VS Code (anthropic.claude-code)
      • Extension Version: 2.0.75
        • CLI Version: 2.0.53

Expected Behavior

Permission settings in ~/.claude/settings.json and .claude/settings.json should be respected by the VSCode extension, auto-approving commands in the allow list and blocking commands in the deny list.

Actual Behavior

The VSCode extension prompts for permission on EVERY bash command regardless of settings configuration. Neither allow rules nor deny rules have any effect.

Files Tested

  • ~/.claude/settings.json (global user settings) ❌ Not read
    • .claude/settings.json (project settings) ❌ Not read
      • .claude/settings.local.json (local project settings) ❌ Not read
        • VSCode settings.json with claudeCode.* keys ❌ Not read

Additional Observations

  • CLI claude in terminal) correctly reads and respects these same settings files
    • The extension appears to use default "prompt for everything" behavior
      • No combination of settings files or VSCode settings changes this behavior
        • Restarting VSCode, creating new chat instances, etc. have no effect

What Should Happen?

Permission settings in ~/.claude/settings.json and .claude/settings.json should be respected by the VSCode extension:

  • Commands in the "allow" list should be auto-approved without prompting
    • Commands in the "deny" list should be blocked
      • The claudeCode.allowDangerouslySkipPermissions VSCode setting should bypass permission prompts when set to true
        • Settings from CLI should be shared and honored by the VSCode extension as documented

Steps to Reproduce

  1. Create ~/.claude/settings.json with permission rules
    1. Create .claude/settings.json in project with same content
    1. Completely quit and restart VSCode
    1. Open new Claude Code chat
    1. Ask Claude to run a bash command (e.g., eb --version)
      Expected: Command runs without prompt (if in allow list) or is blocked (if in deny list)
      Actual: Extension prompts "Allow this bash command?" regardless of settings

Impact

  • Users cannot configure autonomous workflows in VSCode
    • Every bash command requires manual approval
      • Significantly impacts productivity for trusted development environments
        • Documentation claims settings are shared but they are not

Workaround

Use CLI in terminal instead of VSCode extension (CLI correctly reads settings)

Error Messages/Logs

Steps to Reproduce

  1. Create ~/.claude/settings.json with:
  2. {
  3. "permissions": {
  4. "allow": ["Bash", "Edit", "Write"],
    
  5. "deny": ["Bash(rm -rf:*)"]
    
  6. }
  7. }
  8. Create .claude/settings.json in project with same content
  9. (Optional) Create .claude/settings.local.json in project with same content
  10. (Optional) Add to VSCode settings.json:
  11. {
  12. "claudeCode.allowDangerouslySkipPermissions": true
  13. }
  14. Completely quit and restart VSCode
  15. Open new Claude Code chat
  16. Ask Claude to run any bash command (e.g., "run eb --version")
    Expected Result: Command runs without prompt (or is blocked if in deny list)

Actual Result: Extension prompts "Allow this bash command?" despite settings configuration

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

No response

Claude Code Version

2.0.75

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions