Which sandbox is best for the Vercel AI SDK?
It depends on whether the model needs a real machine. For chat turns that mostly wait on the model, Runtime costs least: $53.47 a month for the turns priced below, against $159.11 on Vercel Sandbox and $276.00 on E2B, with any model. Pick just-bash if text tools over your app's own files are enough, a hosted code tool if you stay with OpenAI or Anthropic, or Vercel Sandbox for the SDK's built-in tools.
How does the AI SDK connect an agent to a sandbox?
The SDK runs tools in your own process unless a tool sends the work elsewhere. Its tools registry and harness docs list these ways to run code:
| Route | Where code runs | Models |
|---|---|---|
@ai-sdk/sandbox-just-bash |
A simulated bash in your process | Any |
openai.tools.codeInterpreter() |
OpenAI's hosted container | OpenAI |
anthropic.tools.codeExecution_20260120 |
Anthropic's hosted container | Claude |
code-execution, bash-tool, Vercel's own |
Vercel Sandbox | Any |
bedrock-agentcore |
AWS Bedrock's code interpreter | Any |
just-bash describes itself as "a simulated bash environment with virtual filesystem", so it cannot install a package or run a real binary. A provider's own code tool ties the agent to that provider's models.
What matters in a sandbox for the AI SDK?
- Any model. Tools that are ordinary AI SDK tools let Claude, GPT, Gemini and open models through the AI Gateway all use the same sandbox.
- A real machine. A full Linux system where
pip installandnpm installwork when the model needs more. - Chat sessions that cost nothing while idle. Each conversation can keep one sandbox that pauses between turns and wakes with its files, memory and processes.
- Streaming routes.
streamTextkeeps the same tools; stop the sandbox inonFinish, and a time limit stops it if the client disconnects. - Harness agents too. The SDK's
HarnessAgenttakes a sandbox adapter, with ports for bridge harnesses such as Claude Code and Codex.
What does an AI SDK chat app cost per month?
Fifty thousand chat turns, each two minutes on a 2 vCPU, 4 GiB sandbox and busy for 10 CPU-seconds, at each provider's published rates:
| Provider | Isolation | CPU billed on | A month of turns |
|---|---|---|---|
| Runtime Cloud | Firecracker microVM | Measured use | $53.47 |
| Vercel Sandbox | Firecracker microVM | Measured use | $159.11 |
| E2B | Firecracker microVM | Every vCPU held | $276.00 |
| Daytona | Containers by default | Every vCPU held | $276.00 |
| Modal | gVisor, a shared kernel | The CPU requested | $396.60 |
When might another sandbox fit better?
- No sandbox at all. If the model only needs shell-like text tools over files your app already holds, just-bash runs in your process with nothing to create.
Runtime Cloud
With Runtime an AI SDK agent gets a full Linux microVM from one line,
tools: runtimeTools(sbx), with any model the SDK can call. The four tools
run commands and read, write and list files in a Firecracker microVM with its
own kernel. They are plain AI SDK tools, so changing models is a one-word
change. The same machine is also a sandbox for the SDK's HarnessAgent:
createRuntimeSandbox() from withruntime/ai-harness, with ports for bridge
harnesses such as Claude Code and Codex (guide).
- The machine. Ubuntu 24.04 with
sudo, Python, Node.js, Bun and gcc, where pandas, NumPy and matplotlib are already installed. - Chat sessions.
Sandbox.getOrCreate("chat-42")gives each conversation one named sandbox that pauses itself after 300 seconds with nothing happening and wakes on the next turn. - Cost. CPU is billed on measured use. The fifty thousand turns above cost $53.47 on Runtime, 66% less than Vercel Sandbox and 81% less than E2B, at rates checked 25 October 2026.
A run on Runtime, recorded 2 October 2026
TypeScriptimport { generateText, stepCountIs } from "ai";import { Sandbox } from "withruntime";import { runtimeTools } from "withruntime/ai";await using sbx = await Sandbox.create();const { text } = await generateText({ model: "anthropic/claude-sonnet-4.6", tools: runtimeTools(sbx), stopWhen: stepCountIs(10), prompt: "Print the first 15 Fibonacci numbers with Node.",});console.log(text);We ran this generateText loop with ai 7.0.87 and the SDK's mock model in
place of Claude, so the model's two tool calls were scripted and the AI SDK
ran them against a live sandbox:
textruntime_write_file fib.mjs Wrote 132 bytes to /workspace/fib.mjsruntime_exec node fib.mjs && node --version exitCode 0 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 v24.21.0Node.js 24 was there with nothing installed first. Streaming routes, chat sessions and spending limits are in code execution for the AI SDK.
Try it free after npx withruntime login. An app that already calls another
sandbox moves over with the migration guide.
Sources
Checked 25 October 2026.
- AI SDK tools registry: the code execution and sandbox tools and where each runs
- AI SDK HarnessAgent: the sandbox adapters and what bridge harnesses need
- just-bash: its own description
- Each provider's published rates, checked 25 October 2026, as the pricing guide lists them
- The recorded run: Runtime's TypeScript SDK with
ai7.0.87'sMockLanguageModelV4, against production on 2 October 2026