Documentation Index
Fetch the complete documentation index at: https://docs.factory.ai/llms.txt
Use this file to discover all available pages before exploring further.
Beta — OS-level Sandbox is opt-in and under active development. Behavior,
settings, and platform support may change between releases.
Default access policies (when sandbox is enabled)
| Resource | Default policy | Configurable via |
|---|---|---|
| File reads | Allow all. Only explicit denyRead entries are blocked. | sandbox.filesystem.denyRead |
| File writes | Deny all except CWD (current working directory). Additional paths can be allowed. denyWrite overrides allowWrite. | sandbox.filesystem.allowWrite, sandbox.filesystem.denyWrite |
| Network | Deny all except *.factory.ai (always allowed by default). Additional domains must be explicitly allowed. | sandbox.network.allowedDomains |
What’s included
Per-command sandbox mode (default when enabled):- File tools (Read, Edit, Create, LS, Grep, Glob, ApplyPatch) —
checkFileAccess()before every operation, enforcingdenyReadfor reads andallowWrite/denyWritefor writes - Execute tool — shell commands wrapped in OS sandbox (Seatbelt/bubblewrap) with network routed through SRT’s filtering proxy for domain-level control
- FetchUrl —
checkNetworkAccess()againstallowedDomains - Note — main Droid process, MCPs and subagent are not isolated yet.
- Sandbox violations interrupt the agent loop with a TUI prompt, even at Auto (High) autonomy
- Three options: Allow once, Allow always (persists to settings), Deny
- For
denyWriteviolations: “Remove from deny list” option instead of “Allow always” (removes the entry fromdenyWritein settings) - For
denyReadviolations: “Remove from deny list” option instead of “Allow always” - For Execute network violations: real-time domain prompts via SRT’s proxy callback with 60s auto-deny timeout
droid exec):
- Sandbox violations are auto-denied without prompting — no hang, no user interaction required
- The agent receives a denial message and reports it in the output
- File write violations (outside CWD): adds parent directory to
sandbox.filesystem.allowWritein user settings denyWriteviolations: removes the entry fromsandbox.filesystem.denyWritedenyReadviolations: removes the entry fromsandbox.filesystem.denyRead- Domain violations: adds domain (with wildcard for 3+ part domains, e.g.
registry.npmjs.org->*.npmjs.org) tosandbox.network.allowedDomains - Changes take effect immediately in the current session
- Org-level
denyWrite/denyReadsettings cannot be overridden by user “Allow always” - Violation prompt shows “(organization policy)” when the deny comes from org settings
SANDBOXstatus indicator in footer when sandbox is enabled- “Sandbox Violation” prompt with violation details (path, domain, reason)
Settings config
denyWrite/denyRead use union merge — org denies cannot be removed downstream.
Related
- Autonomy Level — approval policy for tool risk.
- Settings — where
sandbox.*lives. - Hierarchical Settings & Org Control — how org policy merges with user settings.
- Security — broader security model for the Droid CLI.
