Home / Docs / Quickstart · also: Limits
Quickstart
The API is E2B-compatible: if your code already uses the E2B SDK, only the endpoint and key change. No other code changes are needed.
1. Point the SDK at us
# shell env — or set the same vars in code. The SDK derives
# the API endpoint (https://api.<domain>) and the sandbox hosts
# (<port>-<id>.<domain>) from E2B_DOMAIN.
export E2B_DOMAIN="sbx.agent-next.com"
export E2B_API_KEY="anx_your_key" # issued with your beta invite
2. Python
pip install e2b==2.40.0 # pinned — see "SDK versions" below
from e2b import Sandbox
sbx = Sandbox.create() # default template
# run commands — stdout / stderr / exit code, streaming supported
out = sbx.commands.run("uname -a")
print(out.stdout)
# read & write files (text or binary)
sbx.files.write("/tmp/hello.txt", "hi")
print(sbx.files.read("/tmp/hello.txt"))
# pause keeps memory and processes; any call auto-resumes (~160 ms)
sbx.pause()
sbx = Sandbox.connect(sbx.sandbox_id)
sbx.kill()
3. JavaScript / TypeScript
npm install e2b@2.26.0
import { Sandbox } from "e2b";
const sbx = await Sandbox.create();
const out = await sbx.commands.run("uname -a");
console.log(out.stdout);
await sbx.files.write("/tmp/hello.txt", "hi");
console.log(await sbx.files.read("/tmp/hello.txt"));
await sbx.pause();
const again = await Sandbox.connect(sbx.sandboxId); // auto-resumes
await sbx.kill();
4. OpenAI Agents SDK — E2BSandboxClient
The Agents SDK's sandbox integration talks E2B, so it picks up the same env vars.
pip install "openai-agents[e2b]" e2b==2.40.0
import asyncio
from agents import Runner
from agents.run import RunConfig
from agents.sandbox import SandboxAgent, SandboxRunConfig
from agents.extensions.sandbox import (
E2BSandboxClient, E2BSandboxClientOptions, E2BSandboxType,
)
async def main():
client = E2BSandboxClient()
session = await client.create(
options=E2BSandboxClientOptions(
sandbox_type=E2BSandboxType.E2B,
timeout=900,
pause_on_exit=True, # keep the sandbox after the script exits
)
)
try:
agent = SandboxAgent(
name="Workspace Inspector",
model="gpt-5",
instructions="Inspect the workspace and summarize the project.",
)
result = await Runner.run(
agent,
"List the files in the workspace and summarize.",
run_config=RunConfig(sandbox=SandboxRunConfig(session=session)),
)
print(result.final_output)
finally:
await session.shutdown()
asyncio.run(main())
SDK versions
| SDK | Verified with | Notes |
|---|---|---|
| Python | pip install e2b==2.40.0 | verified end to end |
| JS / TS | npm install e2b@2.26.0 | verified end to end |
| OpenAI Agents SDK | pip install "openai-agents[e2b]" | uses the e2b SDK underneath |
/v2 is supported: e2b Python ≥ 2.51 speaks the /v2 API (POST/GET /v2/sandboxes, POST /v2/sandboxes/{id}/connect) and works without a pin. The versions above are the ones we verify end to end — pin them if you want exactly what we test.