[BUG] Write permission allow rule does not auto-allow on macOS (works on Linux)
What's Wrong?
Write(log/**) in .claude/settings.json permissions allow list does not auto-allow writes — Claude still prompts for permission on every Write tool call. The same settings file with the same Claude Code version (2.1.80) works correctly on Linux (auto-allows without prompting).
Tested multiple path formats — all prompt on macOS, all work on Linux:
Write(log/**)Write(~/Documents/jarvis/log/**)Write(/Users/username/Documents/jarvis/log/**)
What Should Happen?
Write tool calls matching the allow pattern should execute without prompting, as they do on Linux.
Steps to Reproduce
- Create a new git repo:
mkdir test && cd test && git init - Create
.claude/settings.json:
{
"permissions": {
"allow": [
"Write(log/**)"
]
}
}
- Create the target directory:
mkdir -p log - Create a
CLAUDE.mdinstructing Claude to write tolog/test.mdafter every response - Start
claudeand send any message - macOS result: Claude prompts for Write permission
- Linux result: Write auto-allows without prompting
Is this a regression? I don't know — it may have never worked on macOS.
Claude Code Version: 2.1.80
Platform: Anthropic API
Operating System: MacOS Tahoe 26.3.1 (a). Works correctly on Linux with same version.
Terminal/Shell: Terminal.app / zsh
Claude Model: Opus
Additional Information:
- User-level
~/.claude/settings.jsonhas no deny rules or conflicting permissions - Other permission types (Bash, Edit, Read, WebSearch, MCP tools) in the same settings file are not affected — this appears specific to the Write tool
- No
settings.local.jsonexists
🤖 Generated with Claude Code
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗