Skip to content
Markdown

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

Estimated compute cost2 vCPUs · 4 GiB · 60 s a run · 20 CPU-seconds busy

70% less than Vercel Sandbox

1,000

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/vercel runs 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.

Runtime$0.64
CPU
1,000 × 20 s / 3,600 × $0.025
$0.14
Memory
1,000 × 60 s / 3,600 × 4 × $0.0075
$0.50
Vercel$2.12
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 sandbox

Sandboxes 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#

Try it on your own work. Sign up, then paste the setup prompt into your coding agent.

Start free, no card

Was this page right?