[BUG] "Always allow access to <cwd>/ from this project" does not persist permissions

Open 💬 2 comments Opened Jun 17, 2026 by waleed-dawood

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?

Selecting "Yes, and always allow access to <cwd>/ from this project" at a Bash permission prompt does not write the granted permission to .claude/settings.local.json. After selecting the option, the file is unchanged — no entry is added to permissions.allow, and no additionalDirectories key is created.

I also checked the user-scope ~/.claude/settings.json and the per-project directory under ~/.claude/projects/; the granted permission does not appear in either. Within the same session, subsequent equivalent commands are not re-prompted, so the grant is held somewhere in the running process — but it is not written to any settings file I could find.

The option label says "always allow ... from this project", which implies the permission is persisted to the project's settings file. No such write occurs.

Closed issue #7472 reported the same symptom. A comment there states the "always allow" option writes to an additionalDirectories setting. In this case that key is not created either.

What Should Happen?

Selecting "always allow ... from this project" should persist the granted permission to .claude/settings.local.json (e.g., an entry under permissions.allow, or an additionalDirectories entry as described in #7472), so the grant is visible in the settings file and survives a restart.

If the option is intentionally session-scoped, the label should say so (e.g., "Yes, and remember for this session") rather than "always allow", to avoid implying a persistence that does not happen.

Error Messages/Logs

Steps to Reproduce

  1. In a project that contains a minimal .claude/settings.local.json:

``json
{ "permissions": { "allow": ["Bash(git log *)"] } }
``

  1. From the project root, ask Claude to run a Bash command that triggers a new permission prompt, e.g.:

``
mv foo.md subdir/
``

  1. The prompt offers:

```
Do you want to proceed?
❯ 1. Yes

  1. Yes, and always allow access to <project>/ from this project
  2. No

```

Select option 2.

  1. Inspect .claude/settings.local.json — it is unchanged.

Expected: the permission is written to .claude/settings.local.json. Actual: the file is unchanged.

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.179 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

IntelliJ IDEA terminal

Additional Information

Related: closed issue #7472 — same symptom. A comment there says the "always allow" option writes to an additionalDirectories setting; that key was not created in this case.

View original on GitHub ↗

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