Runtime vs Vercel Sandbox
Runtime runs Firecracker microVMs and bills active CPU, like Vercel Sandbox. For an agent that mostly waits on a model, it costs 70% less.
The saving: 1,000 one-minute runs of a 2 vCPU sandbox with 4 GiB cost $0.64 on Runtime and $2.12 on Vercel. At 100,000 runs a month, that is $63.89 against $212.44, $149 a month saved. Your Vercel Sandbox code keeps working. Change one import.
Comparing more than two providers? Vercel Sandbox alternatives ranks the other providers by the cost of the same job.
Updated
On this page
70% less than Vercel Sandbox
Compute only, at list rates checked 25 October 2026 (Vercel Sandbox pricing). Plan fees, network, taxes and free credits are left out. The worked example below shows the arithmetic.
Where Runtime is better#
- 80% cheaper CPU. Active CPU costs $0.025 an hour on Runtime and $0.128 on Vercel. Memory costs 65% less. Busier jobs save more. With both CPUs busy the whole minute, the example job costs $1.33 on Runtime and $5.68 on Vercel.
- It pauses itself when idle. After 300 seconds with no request, command, connection, traffic or CPU use, a Runtime sandbox pauses. While paused, it pays only paused storage, $0.08 per GB (10⁹ bytes) a month. The next request wakes it. Its processes keep running.
- A written uptime promise. Paid accounts get 99% API uptime a month, measured from outside. If a month falls short, 10% of that month's charges is returned as credit automatically (Uptime Promise).
- Memory survives a pause. A paused Runtime sandbox wakes with its processes still running, kept while you have credit. A stopped Vercel sandbox keeps its filesystem, and its processes start again.
- Forks keep memory too. A Runtime fork copies a running sandbox with its memory and running processes. A Vercel snapshot or fork captures the filesystem, so processes start again.
- Private ports by default. A Runtime preview gives a port an HTTPS address that needs a token unless you make it public. Vercel's exposed ports are reachable at a public URL.
- No platform to join. Runtime needs no hosting plan, team or project. Prepaid credit from $10 is the whole account.
- A one-line switch.
withruntime/vercelruns code written for Vercel Sandbox's SDK, in JavaScript and Python: commands, files, ports, snapshots and persistent sandboxes, with no Vercel project or token. Credit you add within 30 days of signing up is matched, up to $1,000 in total. - Single sign-on included. SAML or OIDC sign-in, SCIM, roles and an audit log come with every Runtime account (single sign-on). Vercel sells SAML single sign-on as an add-on for Pro teams and keeps directory sync for Enterprise.
- Your agent sets itself up. It runs
npx withruntime sandboxes run -- ..., shows you a link, and starts once you approve in the browser. No API key goes into a prompt or a config file. The MCP server reuses the same connection.
Also included: a code interpreter, network allow and deny lists, secrets the sandbox never sees, custom images, volumes backed up daily, a Linux desktop, metrics, webhooks, OpenTelemetry export, S3, R2 and GCS bucket mounts, MCP servers from a catalog, and identity tokens for AWS and Google Cloud. Paid accounts add custom domains, TCP ports, dedicated outbound addresses and WireGuard private networks. See products.
At a glance#
Vercel's figures come from its public pricing and documentation, checked
25 October 2026, at the rates of its default iad1 region.
| Runtime | Vercel Sandbox | |
|---|---|---|
| Isolation | Firecracker microVM, own kernel | Firecracker microVM, own kernel |
| CPU billing | $0.025 per active vCPU-hour, with a small floor | $0.128 per active CPU-hour |
| Memory billing | $0.0075 per reserved GiB-hour | $0.0212 per provisioned GB-hour |
| Plan | None; prepaid credit from $10 | Hobby allowance free; usage beyond it needs Pro |
| Free start | 100 free hours of a 1 GB machine in the first 30 days, no card | 5 active CPU-hours and 420 GB-hours a month on Hobby |
| Session length | No time limit: runs while it works, pauses itself after 300 seconds idle | 45 minutes on Hobby, 24 hours on Pro |
| Stop and resume | Pause keeps files, memory and processes | Stop keeps the filesystem; processes start again |
| Snapshots, forks | Files, memory and running processes | The filesystem |
| Port URLs | Private with a token by default | Public |
Cost for the same job#
Take 1,000 runs of a 2 vCPU sandbox with 4 GiB on Runtime and 4 GB on Vercel, which gives 2 GB per vCPU. Each run lasts 60 seconds and keeps the CPU busy for 20 CPU-seconds. This is an agent that spends most of its time waiting for a model.
- CPU
- 1,000 × 20 s / 3,600 × $0.025
- $0.14
- Memory
- 1,000 × 60 s / 3,600 × 4 × $0.0075
- $0.50
- CPU
- 1,000 × 20 s / 3,600 × $0.128
- $0.71
- Memory
- 1,000 × 60 s / 3,600 × 4 × $0.0212
- $1.41
- Saving: 70%, or $1.49 per 1,000 runs.
- Per month: at 100,000 runs, $63.89 on Runtime against $212.44 on Vercel.
- Busier work: with both CPUs busy for the whole minute, $1.33 on Runtime against $5.68 on Vercel, a 77% saving.
A GiB is about 7% larger than a GB, so Runtime's memory figure covers slightly more. Creations, network, storage, plan fees, taxes and free allowances are excluded from both. On Runtime, inbound traffic is free. Each account's first 100 GiB out a month is free, then $0.02 per GB (10⁹ bytes). See pricing for Runtime's terms.
How to switch#
Give your coding agent the one instruction in migration. It replaces the Vercel calls on a branch, tests them on the free usage, and tells you what you save each month. Your old code stays on the main branch until you merge.
Change one import
Runtime's SDK runs code written for Vercel Sandbox's SDK. Change the import and
set RUNTIME_API_KEY, or run npx withruntime login once:
TypeScriptimport { Sandbox } from "withruntime/vercel"; // was: from "@vercel/sandbox"Pythonfrom withruntime.vercel import sandbox # was: from vercel import sandboxSandboxes get Vercel's defaults: 2 vCPUs with 2048 MiB each, a 5-minute
timeout, and persistence. So stop() pauses a sandbox, and the next call or
Sandbox.get({ name }) wakes it. Ports listed at create get public addresses.
domain(port) returns the address for that port. Sandboxes use the free usage first, then prepaid credit.
With no timeout, a sandbox has no time limit: it runs while it works. A timeout
over an hour works too. The sandbox object moves Runtime's hour-long limit on
toward it while your program runs. Users and groups (createUser,
asUser) and list filters, sorting and cursors work as on Vercel. A call
Runtime handles differently, such as Drives or other regions, throws
NotSupportedError before anything happens. It names what to use instead.
VERCEL.md in the package lists every mapping.
Or port the calls
Vercel Sandbox:
JavaScriptimport { Sandbox } from "@vercel/sandbox";const sandbox = await Sandbox.create();const command = await sandbox.runCommand("echo", ["hello"]);console.log(await command.stdout());await sandbox.stop();Runtime:
TypeScriptimport { Sandbox } from "withruntime";const box = await Sandbox.create();try { console.log((await box.exec("echo hello", { check: true })).stdout);} finally { await box.stop();}When Vercel Sandbox may fit better#
- Regions and scale. Vercel runs sandboxes in 19 regions, with up to 10,000 concurrent sandboxes on Pro. Runtime runs in one US region.
- Your app already lives on Vercel. Sandboxes then share its account, billing and observability.
Sources#
Checked 23 September 2026; single sign-on and the firewall checked 27 September 2026.
Try it on your own work. Sign up, then paste the setup prompt into your coding agent.