Tech

Sandbox capabilities

Akshay Sarode

Celistra wraps every spawned agent in a kernel-enforced sandbox by default. This is a feature page — for the deep dive, see Sandboxing Claude Code on macOS.

The default policy

That's the right policy 95% of the time. The agent can read your code, hit the internet, run git / npm / cargo, but cannot write outside the workspace.

Per-agent grants

For the cases that need more: edit ~/.celistra_capabilities.json from the tray. Each grant is a match block (agent name pattern, source, command) plus a list of capabilities to add. AND within a grant, OR across grants.

Capability tokens

workspace_rw · read_anywhere · network · subprocess · screen_capture · accessibility · full_disk_access · read:<path> · write:<path> · exec:<path> · privileged

Audit log

Every spawn, every grant, every kernel block decision goes into the hash-chained audit log. Hourly verification. View it via the dashboard's Activity panel (live SSE stream).

Master switch

"Sandbox: ON / OFF" in the tray menu — for the rare unrestricted run. The toggle event is itself audited.

Linux & Windows

Linux uses bubblewrap with the same capability mapping. Windows uses Win32 Job Objects + AppContainer for the equivalent containment. Same JSON config, different profile generator.

FAQ

Is the sandbox on by default?

Yes — for new installs. Existing users who explicitly turned it off keep their setting.

Can I disable it for one agent only?

Yes — grant privileged in a per-agent rule. The audit log records every spawn that ran without sandbox.