Skip to main content
A unified API for isolated command execution across multiple backends. Whether you need local process isolation, Docker container security, or cloud-based E2B microVMs, the same Sandbox interface works everywhere. Backends are interchangeable — code written for LocalSandbox works identically with DockerSandbox or E2BSandbox.

Backends

LocalSandbox

Local process execution via zt-exec. Fast, no isolation overhead. Good for development and trusted code.

DockerSandbox

Container isolation via Testcontainers. Full filesystem and network isolation. Production-ready.

E2BSandbox

Cloud Firecracker microVMs via E2B. Maximum isolation with MCP support and session reconnection.

Core API

try (Sandbox sandbox = LocalSandbox.builder()
        .tempDirectory("test-")
        .build()) {

    // Execute commands
    ExecResult result = sandbox.exec(ExecSpec.of("mvn", "test"));

    if (result.success()) {
        System.out.println(result.stdout());
    }

    // File operations
    sandbox.files()
        .create("pom.xml", pomContent)
        .create("src/main/java/App.java", code)
        .and()    // return to Sandbox
        .exec(ExecSpec.of("mvn", "compile"));
}

Module Structure

ModuleBackendDependencies
agent-sandbox-coreLocalSandboxzt-exec
agent-sandbox-dockerDockerSandboxtestcontainers
agent-sandbox-e2bE2BSandboxjackson, awaitility
agent-sandbox-bomBill of Materials

Documentation

Full Documentation

API reference, ExecSpec builder, SandboxFiles, ExecSpecCustomizer, design principles

Source Code

Core, Docker, E2B modules and BOM

Used By

  • Agent Judgeagent-judge-exec runs command-based evaluation in sandboxes
  • Agent Client — isolated execution environments for autonomous agents
  • Agent Bench — benchmark execution with configurable isolation level