Public beta — 100 sandbox-hours free

Agents wait.
Your hours shouldn't.

An agent session is mostly waiting — on the model, on the user, on I/O. agent-next Sandbox gives every session its own Firecracker microVM that pauses with memory and processes intact and resumes in ~160 ms — and only running time draws down your hours. The public beta is free: one one-time grant of 100 sandbox-hours per account.

# Already on E2B? Two env vars and nothing else changes.
import os
os.environ["E2B_DOMAIN"]  = "sbx.agent-next.com"
os.environ["E2B_API_KEY"] = "anx_your_key"        # from your beta invite

from e2b import Sandbox                          # pip install e2b==2.40.0

sbx = Sandbox.create()
print(sbx.commands.run("echo hello").stdout)

sbx.pause()                              # memory + processes kept
back = Sandbox.connect(sbx.sandbox_id)   # auto-resumes in ~160 ms
sbx.kill()

Three pillars

A real VM per session

Every sandbox is a Firecracker microVM with its own kernel and root access. Run untrusted, model-generated code without sharing a kernel with anyone.

Pause keeps everything

Pause snapshots memory and running processes; resume measured at ~161 ms (p50, sequential). Paused time doesn't consume your hours.

Metering you can query

Per-sandbox metering of running and paused time plus CPU-seconds, reported as JSON through the usage API. Only running time draws down your hours.

E2B-compatible API · internet on by default · default beta template to be listed in the docs once published.

What runs inside

Real coding agents, unmodified. All seven CLIs below passed real bug-fix tasks inside our sandboxes — up to 300 running concurrently on one node.

Agent CLIVersion testedStatus
Claude Code2.1.283tested
Codex CLI0.157.1tested
opencode1.18.32tested
aiderpip aider-chattested
cline3.0.65tested
grok-cli1.0.1tested
mini-swe-agentpiptested
CapabilityStatus
Shell exec, file read/write, streaming outputmeasured E2B-conformance 18/19
Pause / resume with memory intactmeasured ~160 ms p50
Internet on by default (SMTP egress blocked)beta
Default beta template — contents to be listed in the docs once publishedbeta

Benchmarks, measured

Every number below was measured on our self-hosted substrate — one 16-vCPU DigitalOcean node — not estimated. Full tables and raw logs →

161 ms
resume p50 — memory and processes preserved
136 ms
create p50 — sequential lifecycle, n=20
1,000
idle sandboxes on one 16-vCPU node, ~20 MB host RAM each
98.9%
of tasks passed at up to 300 concurrent real coding agents — zero infra errors

100 concurrent realistic users for 10 minutes: 0 create errors, ~0.04% platform errors.

FAQ

I already use E2B. What changes?

Two env vars: E2B_DOMAIN and your E2B_API_KEY. We verify e2b==2.40.0 on Python and e2b@2.26.0 on JS end to end; newer Python SDKs (≥ 2.51, /v2 API) also work. See the quickstart.

Is there a session time limit?

The gateway imposes none. The sandbox timeout sets its lifetime — the v2 API defaults it to 300 s; raise it at create time or with setTimeout. Idle sandboxes auto-pause after 300 s without traffic — unless your paused-sandbox quota is full — and the next request resumes them.

What happens to an idle sandbox?

After 300 s without activity it pauses automatically: memory and processes are kept, and paused time doesn't consume your 100-hour grant. Resume on the next request, measured at ~160 ms. Exception: if your account is already at its quota of paused sandboxes (50 by default), an idle sandbox is not paused — it stays running and keeps consuming your grant until a paused slot frees up.

Can a sandbox reach the internet?

Yes — outbound internet is on by default. SMTP egress (ports 25/465/587) is blocked.

How is usage metered?

The beta is free: each account gets a one-time grant of 100 sandbox-hours. A sandbox-hour is an hour of running time — the gateway meters running wall-clock per sandbox and reports running, paused and CPU-seconds per sandbox at GET /v0/usage. Paused time doesn't consume the grant.

Where does it run?

US region during the beta. Sandboxes have no disk backups — treat them as ephemeral and push results out.