[BUG] Write permission allow rule does not auto-allow on macOS (works on Linux)

Resolved 💬 4 comments Opened Mar 20, 2026 by twosatnams Closed Apr 17, 2026

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

  1. Create a new git repo: mkdir test && cd test && git init
  2. Create .claude/settings.json:
{
  "permissions": {
    "allow": [
      "Write(log/**)"
    ]
  }
}
  1. Create the target directory: mkdir -p log
  2. Create a CLAUDE.md instructing Claude to write to log/test.md after every response
  3. Start claude and send any message
  4. macOS result: Claude prompts for Write permission
  5. 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.json has 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.json exists

🤖 Generated with Claude Code

View original on GitHub ↗

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