Deltabox: A rollback-able agent sandbox DeltaBox Lite launched as a standalone sandbox runtime that gives AI coding agents a confined filesystem view with explicit diff, commit, and abort semantics per task or per tool call. The tool composes Sandlock, Landlock, and seccomp with DeltaFS FUSE on Linux and uses Seatbelt plus APFS clones and FSEvents on macOS, offering three filesystem modes — cbcow-through, cbcow-private, and copy-private — with prebuilt binaries for macOS (arm64, x64) and Linux (x64, arm64) available via curl install script, npm, Homebrew, and Cargo. It ships optional JSON-RPC over stdio adapters for Pi and DeepSeek Harness, plus policy controls covering filesystem read/write rules, secret-path denial, and network allow/audit modes. Lightweight, agent-native sandboxing with diff · commit · abort. Give agents a confined workspace with explicit diff, commit, and abort semantics. deltabox-lite is a standalone sandbox runtime for AI coding agents. Agents keep full execution freedom inside a confined filesystem view, and every change they make can be reviewed , committed , or aborted - per task or per tool call. Linux defaults to a commit-biased FUSE view; macOS uses native APFS clones and FSEvents. Private modes keep changes hidden from the host until commit. Think of it as Git for agent sessions: less ceremony, more control, and no anxiety about binary or large files. Run a command, inspect its change set, and choose whether to keep or discard it: - Native isolation, not a container - Linux composes Sandlock/Landlock/ seccomp with DeltaFS FUSE; macOS uses Seatbelt plus APFS clones and FSEvents. - Service-free durable sessions - Linux starts a session-scoped filesystem helper and macOS starts a session-scoped event helper automatically. Durable files remain authoritative across independent CLI processes; no global daemon or manual service startup is required. - Three filesystem modes - cbcow-through makes changes visible immediately and makes commit an O 1 acceptance operation. cbcow-private runs the same DeltaFS engine over a private reflink/copy tree and publishes only touched paths at commit. copy-private remains the compatibility fallback. - Diff / commit / abort - unified text diffs, binary and large-file markers, and a linear checkpoint chain. Abort restores the selected checkpoint; commit accepts the current state. - Review-scope savepoints — task and tool adapters choose the correct abort target; normal commit and abort do not require a user-created checkpoint. - Agent adapters — optional JSON-RPC over stdio for Pi and other integrations; see the adapter protocol https://github.com/delta-box/deltabox-lite/blob/main/docs/protocol.md . - Policy-first — filesystem read/write rules, secret-path denial, network allow/audit, deny-all and allowlist modes, scrubbed child environments, and bounded writes/storage. Copy this prompt into an AI coding agent with terminal access: Install DeltaBox Lite by following the instructions at https://raw.githubusercontent.com/delta-box/deltabox-lite/main/install-prompt.txt Detect my environment, install the appropriate runtime and any DSH or Pi integration I use, and verify the installation with the disposable smoke test. The plain-text installation prompt https://github.com/delta-box/deltabox-lite/blob/main/install-prompt.txt covers environment checks, integration setup, and verification. You can also paste its contents directly into your agent. Run the following on Mac or Linux to install deltabox-lite CLI: curl -fsSL https://raw.githubusercontent.com/delta-box/deltabox-lite/main/scripts/install.sh | sh The prebuilt binaries ship for macOS arm64, x64 and Linux x64, arm64 can be found on GitHub release https://github.com/delta-box/deltabox-lite/releases . deltabox-lite CLI can also be installed via the following package managers: Install using npm npm install --global deltabox-lite Install using Homebrew brew install delta-box/tap/deltabox cargo build --release export PATH="$PWD/target/release:$PATH" With DeepSeek Harness installed, add the plugin to your Web profile: dsh plugin --profile web add dsh-deltabox For Desktop, open Plugins → Add plugin , enter dsh-deltabox , and install it. Alternatively, use Desktop's bundled CLI: dsh plugin --profile desktop add dsh-deltabox DSH plugin guide https://github.com/delta-box/dsh-deltabox readme for configuration and review controls. Install Pi if needed, then add the extension: npm install --global @earendil-works/pi-coding-agent pi install npm:pi-deltabox Start a new Pi session in your project and run /sandbox-status to verify that the extension is active. Use /sandbox-review , /sandbox-commit , and /sandbox-abort to review, keep, or discard changes. See the Pi extension guide https://github.com/delta-box/pi-deltabox readme for configuration, including explicit command isolation settings. Both integrations use FUSE on Linux for CB-CoW /dev/fuse and fusermount3 or fusermount and APFS/FSEvents on macOS. For a first transaction, create a project with one ordinary file and discard a command's changes. No package manifest or policy file is needed: demo=$ mktemp -d cd "$demo" printf 'original\n' notes.txt deltabox run --abort -- sh -c ' printf "sandboxed\n" notes.txt printf "generated\n" generated.txt find . -maxdepth 1 -type f -print ' cat notes.txt test -e generated.txt The command runs inside the sandbox view, prints the diff, and then aborts. The original notes.txt remains unchanged and generated.txt is removed. To keep a result, use the same one-command interface with --commit : deltabox run --commit -- sh -c 'printf "accepted by deltabox\n" accepted.txt' cat accepted.txt run creates and cleans up a temporary transaction. Scripts and agent integrations should select --commit or --abort explicitly; the child exit status is preserved after that decision. For multiple independent commands, start a persistent session. Commands run from the project directory can omit --project ; use it only when invoking Deltabox from another directory: cd /abs/path/my-project session id=$ deltabox session start . deltabox exec "$session id" -- sh -c 'printf "step one\n" step-one.txt' deltabox exec "$session id" -- sh -c 'printf "step two\n" step-two.txt' deltabox diff "$session id" deltabox commit "$session id" deltabox session stop "$session id" Session records live in