[BUG] Permission patterns in .claude/settings.json not recognized, but identical patterns in .claude/settings.local.json work
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
- 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
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
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗