Runtime changelog, 23 September 2026
What shipped in Runtime Cloud on 23 September 2026: switch in one import from Daytona and Vercel Sandbox too; see what you save; works inside the agent tools you use; remote MCP with browser sign-in; SSH, editors and port forwarding; pause answers at the freeze; the SDKs wait for room; every sandbox command lives under runtime sandbox; custom images, all the way; metrics, events and webhooks; teams; audit log; paid sandboxes reach every port; secrets sandboxes never see; paused sandboxes wake on request; sandboxes by name; long-running sandboxes from every interface; 50 free hours and 100 sandboxes at once; paid accounts run 20 sandboxes at once; the free trial runs eight sandboxes at once; forks and snapshots for everyone; code written for E2B runs on Runtime; SDKs work behind proxies and inside Cloudflare Workers; keys for CI from the terminal; first commands in a fresh sandbox are faster; a public status page; storage prices for snapshots, images and volumes; read your own limits; and side-by-side guides.
Switch in one import from Daytona and Vercel Sandbox too
Code written for Daytona's or Vercel Sandbox's SDK runs on Runtime after changing one import to withruntime/daytona or withruntime/vercel, in JavaScript and Python, as E2B code already does with withruntime/e2b.
See what you save
runtime compare --from e2b prices the sandboxes you actually ran at a rival's published rates and prints the monthly saving. Record the provider you are leaving with runtime switch --from <provider> before your first top-up, and that top-up is matched, up to $100.
Works inside the agent tools you use
A sandbox client for the OpenAI Agents SDK, tools for the Vercel AI SDK, LangChain, CrewAI, LlamaIndex, Pydantic AI, Google ADK, Mastra and the Claude Agent SDK, a Claude Code plugin, and ready configs for Codex, Cursor, Windsurf, VS Code and Gemini CLI. See frameworks.
Remote MCP with browser sign-in
Add Runtime's MCP address to Claude.ai, ChatGPT or another remote client, approve it once in your browser, and it works with no key to paste. Each connection is listed and revocable on your keys page.
SSH, editors and port forwarding
runtime sandbox ssh <id> opens a shell, runtime sandbox ssh config --install lets VS Code and JetBrains connect, and runtime sandbox port-forward <id> 5432 brings any TCP port to your machine, all over the API with no port open to the internet.
Pause answers at the freeze
A pause returns as soon as the sandbox's processors stop, and compute billing ends there; its memory is saved in the background.
The SDKs wait for room
When every sandbox slot is taken, a create waits for one to free, for up to two minutes, instead of failing.
Every sandbox command lives under runtime sandbox
runtime sandbox run, runtime sandbox ssh and runtime sandbox port-forward, because sandboxes are one product of several. The old runtime run says where it went.
Custom images, all the way
Build from any Dockerfile: multi-stage, COPY --from, ARG, heredocs, ADD from a URL, FROM scratch and .dockerignore, with a build context of up to 100 MiB sent from a folder, where a rebuild uploads only what changed. Pull from private registries (Docker Hub, GitHub, Google, Amazon ECR and others) with credentials sealed on arrival and never returned. Each build of a name is its next version, tags such as latest point at versions, and a sandbox starts from name:tag. An image can run a start command and have its sandbox's create wait for a ready port or command. Rebuilds start from the steps an earlier build shares, four builds run at once on a paid account, and the build log streams. See custom images.
Metrics, events and webhooks
Each sandbox's measured CPU and memory over time, with sbx.metrics(), runtime sandbox metrics, MCP, and live charts on the sandbox's own page in your account, where owners can also stop it. Lifecycle events (created, running, paused, woken, stopped, start failed) for sandboxes, snapshots and volumes, with GET /v1/events. Webhooks send them to your URL, signed like Stripe's, retried for about three days, with a delivery log and a test send; verifyWebhook in both SDKs checks them. OpenTelemetry export pushes events as logs and CPU and memory as metrics to any OTLP/HTTP endpoint. See metrics and webhooks.
Teams
Invite people to your account as owner, admin, developer or billing member; each role can do what its name says and no more, and a key can never do more than the member who made it. A person can belong to several accounts and switch between them on the website or with runtime account switch. See teams.
Audit log
Every change to members, keys, connections, limits, credit, network rules, secrets and durable resources is recorded with who made it, when and from which address, kept at least 400 days. Read it at Audit log, with GET /v1/audit, runtime audit, the SDKs or MCP.
Paid sandboxes reach every port
Databases, git over ssh, gRPC and programs that ignore proxy settings work with no setup, on any public host. Trial sandboxes stay on ports 80 and 443, and your network rules narrow every port.
Secrets sandboxes never see
runtime secrets set OPENAI_API_KEY --host api.openai.com stores a key once; sandboxes see a placeholder, and the proxy adds the value to HTTPS requests to the hosts you named. See security.
Paused sandboxes wake on request
A command, a file or terminal call, or a visit to a shared port wakes a paused sandbox by itself, in about half a second, and the call runs. idlePauseSeconds now pauses a sandbox after that long without a request, so it costs running time only while it is used.
Sandboxes by name
A name is unique in the account, and Sandbox.getOrCreate(name) returns that sandbox, woken if paused, or makes it.
Long-running sandboxes from every interface
persistent: true at create, sandbox.update(), runtime sandbox update --persistent on or the API keeps a paid sandbox running while credit lasts, and keepAlive extends a lease from your own process.
50 free hours and 100 sandboxes at once
The free trial is now 50 hours (now 100), up from 20, still with no card and eight sandboxes running at once. A paid account starts with room for 100 sandboxes, 200 vCPUs and 400 GiB of memory at once, and more on request. Accounts that signed up before get the 50 hours too.
Paid accounts run 20 sandboxes at once
A paid account starts with room for 20 sandboxes, 64 vCPUs and 128 GiB of memory at once (now 100, 200 and 400 GiB), and more on request.
The free trial runs eight sandboxes at once
Up from three, with the same 20 free hours (now 100) and still no card.
Forks and snapshots for everyone
Copy a running sandbox with its memory and processes, and choose whether the copies use the trial or paid credit.
Code written for E2B runs on Runtime
Change from "e2b" to from "withruntime/e2b" (Python withruntime.e2b) in SDK 0.4.0, and it runs.
SDKs work behind proxies and inside Cloudflare Workers
Both SDKs honour HTTPS_PROXY and NO_PROXY, and the JavaScript SDK runs in a Worker with nodejs_compat.
Keys for CI from the terminal
runtime keys create gets an owner-approved key and prints it once, ready to pipe into a secret store.
First commands in a fresh sandbox are faster
Start templates now come with Node, npm, Python, pip, Bun, uv and git already warm, so a first node takes 84 ms instead of 1,284 ms.
A public status page
withruntime.com/status checks the API from outside every two minutes and starts a real sandbox every ten.
Storage prices for snapshots, images and volumes
Snapshots and images cost $0.08 per GB a month and volumes about $0.11 per GiB a month, and the trial keeps three images and 10 GiB of volumes free for good.
Read your own limits
runtime limits and runtime.limits.get() show whether a key is read-only and how much of its daily limit is left.
Side-by-side guides
Comparisons with E2B, Daytona, Vercel, Modal, Cloudflare and Fly.io, each with the cost of the same job.