Deliberately exposed and out of scope#
Anything not in the lockdown list (see the threat model) is potentially reachable from inside Claude. This page reproduces the two reference tables: what the sandbox deliberately exposes, and what is out of scope.
Paths below are inside the container. The PyPI launcher mounts only the
project directory, writable in the container. With --peers it also mounts
the parent directory writable, except when the parent is your home. Each
agent’s sandbox still binds only its own project. The launcher also mounts
shared agent state, git identity, and explicitly added paths from the
workstation. For its read-only host config mount, see
Configuration.
Deliberately exposed#
These paths are bound into the sandbox on purpose. Modes are r
(read-only) or rw (read-write).
Path |
Mode |
Why |
|---|---|---|
Workspace |
rw |
The whole point of Claude. Default: |
|
r |
Host-global sandbox config ( |
|
r |
Curated gitconfig: gh/glab credential helpers for |
|
r |
Host’s system gitconfig is reachable read-only but neutralised for |
|
rw |
Claude’s state, settings, skills, hooks. |
|
rw |
Account-level state (OAuth token, recent-projects list, settings). Symlinked alongside |
|
rw |
Skills shared by every agent (Claude, Codex, Pi), in every session. Codex and Pi load them natively; Claude via symlinks in |
|
rw |
Tool caches Claude needs across runs (if present) |
|
rw |
|
|
rw |
|
|
rw |
Bulk-bound XDG data dir: host-installed plugins for |
|
r |
The real Claude binary, relocated here by the installer from |
Network (egress-jailed by default, ADR 0015) |
— |
Claude runs in a private network namespace (pasta-bridged) with a routing allowlist: the internet, DNS, and configured |
For the rationale behind the XDG split, the uv bind discipline, the gitconfig redirect, and the egress jail (and the network-identity disclosure that remains when an operator disables the jail), see the threat model and 15. Jail Claude’s egress in a per-process netns with a routing allowlist.
Out of scope#
The sandbox does not defend against the following. Each row names the mitigation expected from you.
Exposure |
Why |
Mitigation expected from you |
|---|---|---|
Workspace contents |
Claude has to read your workspace to do its job |
Keep secrets outside the workspace (e.g. |
Container host kernel |
A bwrap-aware kernel exploit is out of scope; this is a credential-isolation tool, not a sandbox against arbitrary native code |
Keep your kernel patched; treat the devcontainer host as the trust boundary |
Internet exfiltration / domain filtering |
The default egress jail (ADR 0015) blocks lateral movement to internal RFC1918 hosts, not outbound exfil — the internet, DNS, and |
If outbound exfil is in your threat model, run the devcontainer behind your own egress filter, and/or layer Claude Code’s native |
Non-standard credential paths |
The installer scans |
Audit your devcontainer’s |
Non-root devcontainers; rootful Docker w/ default AppArmor |
v1 targets rootless podman + Debian/Ubuntu + |
Tracked for v2 |