[BUG] Permission patterns in .claude/settings.json not recognized, but identical patterns in .claude/settings.local.json work

Resolved 💬 3 comments Opened Oct 4, 2025 by svieujot Closed Oct 8, 2025

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Permission patterns defined in .claude/settings.json are not being recognized by Claude, requiring manual approval each time. However, when the exact same pattern is added to .claude/settings.local.json (either manually or through the approval dialog), it works correctly.

What Should Happen?

Patterns in .claude/settings.json should be recognized and honored without requiring approval.

Error Messages/Logs

Steps to Reproduce

  1. Add a permission pattern to .claude/settings.json (e.g., "Bash(kubectl logs:*)")
  2. Try to execute a command matching that pattern
  3. Claude will ask for permission despite the pattern being in settings.json
  4. Approve the command for the session
  5. The identical pattern is added to .claude/settings.local.json
  6. Subsequent uses of the same command pattern work without asking

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.5

Platform

Anthropic API

Operating System

Other Linux

Terminal/Shell

Other

Additional Information

Add a permission pattern to .claude/settings.json (e.g., "Bash(kubectl logs:*)")
Try to execute a command matching that pattern
Claude will ask for permission despite the pattern being in settings.json
Approve the command for the session
The identical pattern is added to .claude/settings.local.json
Subsequent uses of the same command pattern work without asking

settings.json
settings.local.json

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗