Codex
Codex sandbox modes: read-only, workspace-write, danger-full-access and network access
How do I change the Codex sandbox mode and allow network access?
Codex has three sandbox modes: read-only, workspace-write and danger-full-access. Pick one per run with codex --sandbox <mode>, or set sandbox_mode in ~/.codex/config.toml. Network access is off by default in workspace-write; turn it on with network_access = true under [sandbox_workspace_write].
The three sandbox modes
- read-only: Codex can inspect files but cannot edit files or run commands without approval.
- workspace-write: Codex can read files, edit inside the workspace and run routine local commands there. This is the default low-friction mode for local work. Network access is off by default.
- danger-full-access: no sandbox. Filesystem and network limits are removed. OpenAI marks it as elevated risk and not recommended.
Set the mode for one run
Edit the workspace, ask before leaving it
codex --sandbox workspace-write --ask-for-approval on-request
Read only, for browsing or planning
codex --sandbox read-only --ask-for-approval on-request
Read only in CI, never prompt
codex --sandbox read-only --ask-for-approval never
Inside a session you can switch to read-only with the /permissions command.
Set a default in config.toml
sandbox_mode accepts read-only, workspace-write or danger-full-access. Extra keys under [sandbox_workspace_write] apply only in workspace-write mode.
~/.codex/config.toml
sandbox_mode = "workspace-write" approval_policy = "on-request" [sandbox_workspace_write] network_access = true writable_roots = ["/path/to/another/folder"]
- network_access: allow outbound network access inside the workspace-write sandbox.
- writable_roots: extra folders Codex may write to.
- exclude_tmpdir_env_var: remove $TMPDIR from writable roots.
- exclude_slash_tmp: remove /tmp from writable roots.
Paths that stay read-only
Even in workspace-write, some folders inside a writable root stay read-only, including everything under them:
- <writable_root>/.git, whether it is a folder or a file. If it is a gitdir pointer file, the real Git folder is protected too.
- <writable_root>/.agents when it exists as a folder.
- <writable_root>/.codex when it exists as a folder.
How each platform enforces it
- macOS: the built-in Seatbelt framework. It works out of the box.
- Linux and WSL2: bubblewrap (bwrap). Codex uses the first bwrap on PATH and otherwise falls back to a bundled helper that needs unprivileged user namespace support.
- Windows: the native Windows sandbox in PowerShell, and the Linux sandbox in WSL2.
Sources
More on Codex
Other guides
Get the weekly agent stack update
New official MCP servers, spec changes and harness releases, checked against the source. One email a week, no fluff.
Reviewed Oct 13, 2026. Settings change often; the linked vendor docs are the source of truth.