LIVE|CLI v0.144.0·model GPT-5.6 Sol·verified 2026-07-09
Codex Insider
The unofficial wire for OpenAI Codex.
config.toml key

sandbox_workspace_write.writable_roots

default: unset

Published Jul 15, 2026 · Verified against the official config docs

What it does

An array of extra directories Codex can write to when sandbox_mode is workspace-write. Out of the box, workspace-write already covers your current directory plus temp dirs like /tmp; writable_roots adds paths beyond that. Two catches: .git/ and .codex/ under any writable root stay read-only regardless, and this key only governs writes. Codex can read files anywhere on disk no matter what you put here.

Values

An array of absolute paths. The config reference describes it as “Additional writable roots when sandbox_mode = ‘workspace-write’”. There’s no default in the docs, which in practice means no extra roots: just the workspace itself and temp directories.

[sandbox_workspace_write]
writable_roots = ["/path/to/project"]

The same table holds network_access, exclude_slash_tmp, and exclude_tmpdir_env_var, so if you’re already editing it for one of those, this key lives right next door.

When to change it

  1. Monorepo work where you launch Codex in one package but it writes generated output into a sibling. Add the sibling’s absolute path.
  2. A build step that writes to a fixed path outside the repo (a shared cache or artifacts folder).
  3. Scratch space on another drive that Codex keeps getting write-denied on.

If Codex keeps asking for approval to write somewhere legitimate, that path probably belongs here.

Gotchas

The big one: this key scopes writes only. Issue #5237 has a pile of users surprised that Codex reads files outside the working directory, and the sandbox docs confirm reads aren’t restricted. So don’t reason about this key backwards: shrinking or omitting writable_roots does not stop Codex from looking at anything.

There’s no exclude list either. If you came here to block .env or ~/.ssh from being read, this key can’t do it, and per issue #2847 no ignore mechanism has shipped.

Also, .git/ and .codex/ under a writable root remain read-only even when the root is writable, recursively, and .git gets protected even as a gitdir pointer file (the worktree case). Adding a repo to writable_roots does not let Codex touch its git internals.

Sources