[Critical] Claude Code Glob patterns (/**) in settings.local.json don't work - breaks developer workflow

Open 💬 13 comments Opened Aug 30, 2025 by Latigid-Sam

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

  1. Add permission to .claude/settings.local.json: "Read(/Users/sam/repos/parcelping/nozzles/**)"
  2. Ask Claude to read a file deep in the directory structure, e.g., /Users/sam/repos/parcelping/nozzles/src/core/config.py
  3. Claude requests permission for that specific file despite the parent directory having /** permission
  4. 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:

  1. Grant very broad permissions like "Read(/Users/sam/repos/**)"
  2. Manually add every subdirectory path (defeats purpose of wildcards)
  3. 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.

View original on GitHub ↗

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