Skip to content
Introducing Sandbox SDK 1.0

Give your agent a sandbox.

Add an isolated sandbox to your app with one import. Commands, files, and git on 13 providers.

Read the docs

Install

bun add @opencoredev/sandbox-sdk

One package, every adapter included

Create

await using box = await createSandbox(e2b())

Deleted when the scope exits

Run

await box.$`bun test`

Commands, files, and git inside the VM

Local, cloud, or in-memory.

Develop on your machine with Docker, test in memory, ship to E2B, Daytona, Vercel, Upstash, Railway, Tenki and more. The API stays the same.

Swap the adapter, keep the code.

Every adapter passes the same conformance suite. Moving providers is an import change, not a rewrite.

your codeunchangedadapterE2B

Run commands

Shell commands with safe interpolation, streamed output and timeouts. A non-zero exit comes back as ok: false, not a throw.

bun testexit 0 · ok: true

Move files and repos

Read, write, edit, search, upload and watch files. Clone and push with the token kept out of logs.

your machinesandboxcommitsremote

Control the lifecycle

Create, reconnect by id, list what is running, pause, snapshot or destroy. Each adapter declares what it supports.

snapshot
createdrunningpausedrunningdestroyed

Tests run in-process.

memory() keeps the sandbox API inside your test process. Nothing to boot, nothing to pay for.

  • The same API as the cloud adapters
  • No API key and no network in CI
  • Files, commands and processes, all in memory
your test processnetwork3 pass · 0 fail

Start in one install.

Read the docs