Read tool prompts for permission despite explicit allow rules in settings.local.json

Status Fixed / completed
Reported on v2.1.50
Maintainer reply None cached
Activity 4 comments · opened Feb 22, 2026 · closed Feb 22, 2026

Description

The Read tool prompts for user permission on files that are explicitly allowed in settings.local.json, while other tools (like Glob) on the same paths work without prompting.

Environment

  • Claude Code version: 2.1.50
  • OS: Debian Linux (amd64)
  • Working directory: /opt/projects/

Configuration

Allow rules exist on both levels:

Global (~/.claude/settings.local.json):

{
  "permissions": {
    "allow": [
      "Read(/home/jens/.claude/*)",
      "Read(/home/jens/.claude/**)",
      "Read(/home/jens/.claude/**/*)"
    ]
  }
}

Project (/opt/projects/.claude/settings.local.json):

{
  "permissions": {
    "allow": [
      "Read(/home/jens/.claude/*)",
      "Read(/home/jens/.claude/**)",
      "Read(/home/jens/.claude/**/*)"
    ]
  }
}

Reproduction steps

  1. Configure allow rules for Read(/home/jens/.claude/**) on both global and project level
  2. In a conversation, ask Claude to read ~/.claude/CLAUDE.md
  3. Claude calls Glob(/home/jens/.claude/**/**) → works without prompting
  4. Claude calls Read(/home/jens/.claude/CLAUDE.md) → prompts for permission

Expected behavior

Read should be auto-approved for paths matching the allow rules, just like Glob is.

Actual behavior

Read prompts for user confirmation despite matching allow rules. Glob on the same path pattern works without prompting.

Related issues

  • #11285 (regression in v2.0.36, Read tool requires permission despite allow rules)
  • #13340 (global/local settings.json allow permissions not respected)
  • #6631 / #4467 (permission patterns not enforced for Read/Write)

These were reported months ago but the issue persists in v2.1.50.

View original on GitHub ↗

4 Comments

github-actions[bot] · 7 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/6850
  2. https://github.com/anthropics/claude-code/issues/18191
  3. https://github.com/anthropics/claude-code/issues/27139

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

Jensimogit · 7 months ago

Update: Glob also affected

In the same session, Glob is also blocked despite matching allow rules on both levels:

Allow rules (both global and project):

"Glob(/opt/projects/**)",
"Glob(/export/data/docs/*)",
"Glob(/export/data/docs/**)",
"Glob(/export/data/docs/**/*)"

Blocked call:

  • Glob(pattern: "INDEX.md", path: "/export/data/docs") → prompts for permission

Note: /opt/projects/docs is a symlink to /export/data/docs, which is why rules exist for both paths. Neither path pattern is auto-approved for Glob.

In the same session, Bash(git -C /export/data/docs status) works fine — so it's specifically the dedicated tools (Read, Glob, likely also Write/Edit/Grep) that don't respect the allow rules consistently.

Jensimogit · 7 months ago

Closing as duplicate of #6850. Added reproduction details there.

github-actions[bot] · 7 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.