[Critical] Claude Code Glob patterns (/**) in settings.local.json don't work - breaks developer workflow
Environment
- Platform (select one):
- [x] Other: Claude Code in PyCharm IDE
- Claude CLI version: 1.0.98 (Claude Code)
- Operating System: macOS
- Terminal: PyCharm IDE
## Bug Description
The /** glob pattern in .claude/settings.local.json permissions is not granting recursive access to subdirectories and files as expected. Despite
having a wildcard permission for a parent directory, Claude continues to request explicit permission for individual files within that directory tree.
## Steps to Reproduce
- Add permission to
.claude/settings.local.json:"Read(/Users/sam/repos/parcelping/nozzles/**)" - Ask Claude to read a file deep in the directory structure, e.g.,
/Users/sam/repos/parcelping/nozzles/src/core/config.py - Claude requests permission for that specific file despite the parent directory having
/**permission - Must manually approve each individual file access request
## Expected Behavior
When granting permission with glob pattern "Read(/path/to/repo/**):
- Should allow reading ALL files in
/path/to/repo/ - Should allow reading ALL subdirectories recursively
- Should allow reading ALL files in ALL subdirectories recursively
- Should follow standard glob pattern conventions where
/**means "everything recursively"
## Actual Behavior
- Claude requests permission for each individual file
- Parent directory permission with
/**is ignored - Must add redundant permissions for every subdirectory:
```json
"Read(/Users/sam/repos/parcelping/nozzles/)",
"Read(/Users/sam/repos/parcelping/nozzles/src/)",
"Read(/Users/sam/repos/parcelping/nozzles/src/core/)",
"Read(/Users/sam/repos/parcelping/nozzles/docs/)",
- Settings file becomes bloated with hundreds of redundant entries
Additional Context
Impact on Development Workflow:
- Constant interruptions to grant permissions breaks flow
- Settings file becomes unmaintainable with hundreds of entries
- Defeats the purpose of wildcard patterns
- Contradicts standard glob behavior used in gitignore, rsync, find, etc.
Current Workaround:
Must either:
- Grant very broad permissions like "Read(/Users/sam/repos/**)"
- Manually add every subdirectory path (defeats purpose of wildcards)
- Constantly approve individual file access requests during sessions
Severity: High - Significantly impacts developer experience and makes the permissions system unnecessarily cumbersome for real-world development
scenarios where access to entire repository trees is needed.
This issue has 13 comments on GitHub. Read the full discussion on GitHub ↗