[Feature] Add configurable sandbox write paths (additionalWriteDirectories)

Resolved 💬 5 comments Opened Feb 2, 2026 by olearydj Closed Feb 3, 2026

Summary

There's no way to configure sandbox write paths for bash commands. Write paths are hardcoded, and additionalDirectories only grants read access.

Background

This was discussed in #10377 (now closed/locked). A commenter found the write paths are hardcoded:

B = [
    "/dev/stdout", "/dev/stderr", "/dev/null", "/dev/tty",
    "/dev/dtracehelper", "/dev/autofs_nowait",
    "/tmp/claude", "/private/tmp/claude",
    iJ.join(A, ".npm/_logs"), iJ.join(A, ".claude/debug"),
    ".",
]

Reproduction

Config:

{
  "permissions": {
    "allow": ["Edit(/Volumes/Casa/**)"]
  },
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": true,
    "additionalDirectories": ["/Volumes/Casa"]
  }
}

Result:

$ touch /Volumes/Casa/test.txt
# Operation not permitted

$ mv /tmp/claude/file.txt /Volumes/Casa/file.txt
# Operation not permitted

Expected behavior

additionalDirectories should grant both read and write access, or there should be a separate additionalWriteDirectories setting.

Current workarounds

  • Use Edit/Write tools instead of bash (requires read+write, inefficient)
  • Ask user to run the command
  • Add to excludedCommands (security tradeoff)

Proposal

The underlying sandbox-runtime already supports filesystem.allowWrite. Expose this in Claude Code settings, e.g.:

{
  "sandbox": {
    "additionalWriteDirectories": ["/Volumes/Casa", "/path/to/other"]
  }
}

Or make additionalDirectories grant write access too (simpler, matches user expectation).

Environment

  • macOS Darwin 24.5.0
  • Claude Code (latest as of 2026-02-02)

View original on GitHub ↗

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