Parallel agents inside one sandbox
Independent workspace sessions keep agent trajectories from trampling one another.
Open-source agent sandbox infrastructure
One sandbox. Many isolated agent sessions. One shared LayerStack.
Run an agent swarm inside one sandbox without forcing every coding agent into the same writable workspace. Each gets a private COW workspace session and holder-owned namespace over the shared LayerStack, then publishes through an optimistic concurrency control gate that commits every resolved path—or none.

Product definition
Ephemeral Sandbox is open-source agent-sandbox infrastructure for teams running multiple coding agents safely against one codebase. Instead of giving every agent access to the same writable checkout, it creates a private copy-on-write workspace session for each agent over a shared, immutable LayerStack. Commands run inside a holder-owned Linux namespace, so the session’s filesystem and process boundary persist across operations. When work is ready, Ephemeral Sandbox compares the session with the latest shared head, resolves changes path by path, and publishes one atomic layer—or publishes nothing if the change set cannot be accepted. Operators can inspect commands, file activity, resource use, and line provenance through dedicated CLI, MCP, and observability interfaces. The system is designed for local and Docker-backed multi-agent workflows that need parallel execution without sacrificing isolation, reviewability, or deliberate promotion of completed work.
Learn the system
Start with the category definition, then follow the product, architecture, or workflow path that matches what you are building.
Understand the temporary environment lifecycle, isolation boundary, and finalization choices.
ExploreProduct categoryGive parallel coding agents private workspace sessions over one stable project base.
ExploreArchitectureConnect lifecycle, runtime control, evidence, and publication in one control plane.
ExploreWorkflowCoordinate an agent swarm without exposing incomplete writes between tasks.
ExploreIndependent workspace sessions keep agent trajectories from trampling one another.
Sessions share immutable lower paths while each owns its writable upper layer.
Recheck against head, publish atomically, and map resulting lines back to their owner.
The multi-agent runtime loop
Agents share the sandbox daemon and LayerStack lower paths, but each executes in a holder-owned namespace with its own writable overlay. Coordination happens at publication.
Every workspace session pins the same immutable lower history without cloning the full workspace.
Each holder owns its namespace boundary, upperdir, workdir, lease, and private COW delta.
Recheck paths against current head, merge eligible text, and publish every resolved path or none.
Auditability by design
Observability is part of the runtime substrate, not an afterthought. Query live state while agents work, then connect published output to the session or operation that produced it.
Snapshots, span waterfalls, domain events, resource series, and LayerStack state.
Resolve ownership to a workspace session, operation, original base, or unknown.
Ownership metadata remains queryable even as immutable LayerStack history is squashed.
# inspect the latest execution trace
$ sandbox-observability-cli trace --sandbox-id eos-abc --trace-id last
trace 8bd1 · exec_command · 1.84s
├─ workspace admission 18ms
├─ namespace launch 41ms
└─ command runtime 1.78s
# read newest-first domain events
$ sandbox-observability-cli events --sandbox-id eos-abc --last-n 3
agent-a command.started trace=8bd1
agent-b command.yielded awaiting stdin
agent-c layer.published L000024
# attribute published lines
$ sandbox-runtime-cli --sandbox-id eos-abc file_blame --path src/auth.ts
1–8 original
9 workspace_session:ws-17
10–12 original
13–14 operation:req-91
Optimistic concurrency control
Session results never overwrite the shared LayerStack as they finish. Publication compares the leased base, current head, and captured delta, then commits one immutable layer—or none.
Explore the interfacesvalidate(session)auth_test()log(session.id)Explicit control surfaces
Use the surface that matches the authority you need. CLI, MCP, and the web console share the same operation semantics without pretending they are one combined command.
Discover images and workspaces, create runtimes, inspect lifecycle state, compact, export, and destroy.
sandbox-manager-cli list_sandboxesRun commands, stream stdin and transcripts, and read, write, edit, or attribute published files.
sandbox-runtime-cli --sandbox-id ID exec_command pwdQuery snapshots, traces, events, cgroup resource series, and live LayerStack state.
sandbox-observability-cli snapshot --sandbox-id ID