3.1.0-beta.0
Pre-release- Add support for drives via a new Drive class and CLI commands
From Vercel Sandbox
Minor Changes
- Add support for drives via a new
Driveclass and CLI commands. (#196)
Ephemeral microVMs for running untrusted code, as the SDK and CLI.
| May | Jun | Jul | Aug | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sunday | No releases on May 3, 2026 | No releases on May 10, 2026 | No releases on May 17, 2026 | No releases on May 24, 2026 | No releases on May 31, 2026 | No releases on Jun 7, 2026 | No releases on Jun 14, 2026 | No releases on Jun 21, 2026 | No releases on Jun 28, 2026 | No releases on Jul 5, 2026 | No releases on Jul 12, 2026 | No releases on Jul 19, 2026 | No releases on Jul 26, 2026 | No releases on Aug 2, 2026 | No releases on Aug 9, 2026 | No releases on Aug 16, 2026 |
| Monday | No releases on May 4, 2026 | 2 releases on May 11, 2026 | 1 release on May 18, 2026 | No releases on May 25, 2026 | 1 release on Jun 1, 2026 | No releases on Jun 8, 2026 | No releases on Jun 15, 2026 | No releases on Jun 22, 2026 | No releases on Jun 29, 2026 | No releases on Jul 6, 2026 | 1 release on Jul 13, 2026 | 1 release on Jul 20, 2026 | No releases on Jul 27, 2026 | No releases on Aug 3, 2026 | 1 release on Aug 10, 2026 | No releases on Aug 17, 2026 |
| Tuesday | No releases on May 5, 2026 | No releases on May 12, 2026 | No releases on May 19, 2026 | No releases on May 26, 2026 | No releases on Jun 2, 2026 | No releases on Jun 9, 2026 | No releases on Jun 16, 2026 | No releases on Jun 23, 2026 | 1 release on Jun 30, 2026 | 2 releases on Jul 7, 2026 | No releases on Jul 14, 2026 | No releases on Jul 21, 2026 | No releases on Jul 28, 2026 | 1 release on Aug 4, 2026 | No releases on Aug 11, 2026 | No releases on Aug 18, 2026 |
| Wednesday | No releases on May 6, 2026 | No releases on May 13, 2026 | No releases on May 20, 2026 | 1 release on May 27, 2026 | No releases on Jun 3, 2026 | 1 release on Jun 10, 2026 | No releases on Jun 17, 2026 | No releases on Jun 24, 2026 | No releases on Jul 1, 2026 | No releases on Jul 8, 2026 | 1 release on Jul 15, 2026 | No releases on Jul 22, 2026 | No releases on Jul 29, 2026 | No releases on Aug 5, 2026 | No releases on Aug 12, 2026 | No releases on Aug 19, 2026 |
| Thursday | 1 release on May 7, 2026 | 1 release on May 14, 2026 | 1 release on May 21, 2026 | No releases on May 28, 2026 | 1 release on Jun 4, 2026 | No releases on Jun 11, 2026 | No releases on Jun 18, 2026 | No releases on Jun 25, 2026 | No releases on Jul 2, 2026 | No releases on Jul 9, 2026 | 1 release on Jul 16, 2026 | No releases on Jul 23, 2026 | 2 releases on Jul 30, 2026 | No releases on Aug 6, 2026 | No releases on Aug 13, 2026 | |
| Friday | 1 release on May 8, 2026 | No releases on May 15, 2026 | 3 releases on May 22, 2026 | 1 release on May 29, 2026 | 1 release on Jun 5, 2026 | 1 release on Jun 12, 2026 | No releases on Jun 19, 2026 | No releases on Jun 26, 2026 | 1 release on Jul 3, 2026 | No releases on Jul 10, 2026 | No releases on Jul 17, 2026 | 1 release on Jul 24, 2026 | No releases on Jul 31, 2026 | 1 release on Aug 7, 2026 | No releases on Aug 14, 2026 | |
| Saturday | No releases on May 9, 2026 | No releases on May 16, 2026 | No releases on May 23, 2026 | No releases on May 30, 2026 | No releases on Jun 6, 2026 | No releases on Jun 13, 2026 | No releases on Jun 20, 2026 | No releases on Jun 27, 2026 | No releases on Jul 4, 2026 | No releases on Jul 11, 2026 | 1 release on Jul 18, 2026 | No releases on Jul 25, 2026 | No releases on Aug 1, 2026 | No releases on Aug 8, 2026 | No releases on Aug 15, 2026 |
44 releases since Mar 18, 2026, busiest day 3
From Vercel Sandbox
Drive class and CLI commands. (#196)From Vercel Sandbox
Add support for Vercel Managed Images and deprecate the runtime option in the SDK and CLI. Runtime-based creation remains supported through the legacy v2 API; image-based and default creation use the v3 API. Passing both runtime and image is an error. (#276)
Sandboxes that do not specify an image now use vercel/sandbox/universal. The previous default was the node24 runtime on Amazon Linux 2023. The new default is based on Ubuntu and includes Node.js 24, Bun, Python 3.14, coding agents, and common development and debugging tools.
Existing runtime calls continue to work, it's recommended to migrate to Vercel managed images when possible:
runtime: omit image to use the new Universal image, or set image: "vercel/sandbox/node:24" for an Ubuntu-based Node.js equivalent to the previous default.runtime: "node22": use image: "vercel/sandbox/node:22" for an Ubuntu-based equivalent.runtime: "node24": use image: "vercel/sandbox/node:24" for an Ubuntu-based equivalent.runtime: "node26": use image: "vercel/sandbox/node:26" for an Ubuntu-based equivalent.runtime: "python3.13": use image: "vercel/sandbox/python:3.14" for an Ubuntu-based equivalent, and note the Python version upgrade.From Vercel Sandbox
Drive class and CLI commands. (#196)From Vercel Sandbox
Retry-After when the value is up to 20 seconds. Retry-After values greater than 20 seconds will throw back the response to the client. (#270)From Vercel Sandbox
From Vercel Sandbox
Sandbox.fork() now calls the POST /v2/sandboxes/:name/fork endpoint, which copies the source sandbox's env (and image) server-side. (#259)From Vercel Sandbox
Add @vercel/sandbox-mock, a drop-in mock for @vercel/sandbox backed by just-bash. Rather than reimplementing the SDK surface, it runs the real @vercel/sandbox classes against an in-memory implementation of the /v2/sandboxes HTTP API injected through the SDK's fetch seam — so command execution, filesystem, multi-user/group management, snapshots, and forking all exercise the real SDK code. Commands run locally via just-bash against an in-memory filesystem, and command()/setupSandbox() let tests stub the output of commands just-bash can't run. (#245)
As part of this, Snapshot.get now forwards a custom fetch (via WithFetchOptions), matching Snapshot.list and Snapshot.tree. Previously it always used the global fetch, so an injected client — such as the mock — could not intercept the request.
From Vercel Sandbox
createUser, asUser, createGroup, addUserToGroup, and removeUserFromGroup on the Sandbox class, plus a SandboxUser class that scopes command and file operations to a specific user's context (#116)Drive class and CLI commands. (#196)durationMs field (#243)Sandbox.list and Sandbox.get now expose expiresAt, reflecting the current session's deadline including any timeout extensions, and sandbox list renders it in the TIMEOUT column. Sandbox.update({ timeout }) (and sandbox config timeout) now also extends the currently running session so an increased timeout takes effect immediately instead of only applying to future sessions. (#239)updatedAt are now kept and malformed team entries are skipped. The CLI also no longer leaks raw validation details when scope can't be determined, showing a friendly hint instead. OAuth response parse failures are masked the same way. (#225)sandbox connect/ssh (CLI) and the new Sandbox.openInteractive() (SDK) now request a WebSocket URL and token from the API and connect to the controller-hosted PTY, instead of installing and bootstrapping the vc-interactive-server binary inside the sandbox at connect time. This removes the bundled server binary along with the @vercel/pty-tunnel and @vercel/pty-tunnel-server packages. (#222)Drive class and CLI commands. (#196)timeoutMs to runCommand (SDK) and a --timeout <duration> flag to sandbox exec (CLI). (#212)snapshots tree. The tree now reads the API's anchor node so snapshots sharing the current snapshot's parent are listed, and siblings are rendered by snapshot ID instead of source session ID. (#211)updatedAt getter to the Snapshot class (#208)Add L7 request matchers and forward URLs support to network policy rules. (#177)
Support pagination (CLI and SDK) when listing sandboxes, snapshots, sessions (#177)
Add defineSandboxProxy helper in @vercel/sandbox/proxy to easily implement network policies forwarding rules (#188)
Rename sandbox to session, namedSandbox to sandbox (#177)
Support keepLastSnapshots feature for CLI and SDK (#193)
Add sandbox port replacement support through update. (#177)
Support default snapshot expiration for persistent sandboxes (#177)
Refactor the sandbox update and deprecate old network-policy update (#177)
Support a new method: Sandbox.getOrCreate() (#177)
Rename snapshotOnShutdown to persistent (#177)
Automatically scale memory to vcpu when updating (#177)
Move to cursor pagination. Support new sortyBy parameter for lists. Support new statusUpdatedAt filter (#177)
Add Sandbox.fork(...) to the SDK and sandbox fork <source> to the CLI for forking an existing sandbox into a new one. (#205)
Remove support for blocking parameter in .stop() and default to always blocking. Improve CLI output when stopping a sandbox. (#177)
Lists now unwrap the json and return the items and pagination fields directly (#177)
Support new onResume parameter in Sandbox.create and Sandbox.get (#177)
Support snapshot tree pagination (#191)
Add support for tags (#177)
Fix an 422 error when trying to resume a sandbox after snapshotting (#177)
Add Node 26 support. (#177)
Add support for patch + delete v2 endpoints for named sandboxes. (#177)
Fix readFile writing the API error JSON into the destination when the file response is not an octet-stream. The SDK now rejects any non-application/octet-stream response (including 2xx with a JSON error body) instead of piping it verbatim to the caller's stream. (#202)
Fix bug where the first ssh connection hang (#177)
Support updading current-snapshot-id of an existing sandbox (#177)
Fix JsDocs, messages and double-error message bug (#177)
Add Sandbox.fork(...) to the SDK and sandbox fork <source> to the CLI for forking an existing sandbox into a new one. The fork copies as many config parameters as the server exposes — resources (vcpus), timeout, networkPolicy, tags, ports, persistent, snapshotExpiration, keepLastSnapshots — and lets the caller override any of them. Environment variables are not copied (encrypted server-side) and must be re-supplied via env / --env. (#205)
Breaking: removed sandbox create --sandbox-snapshot <name> and Snapshot.fromSandbox(name). Use sandbox fork <name> / Sandbox.fork({ sourceSandbox: name }) instead. Raw snapshot IDs are still supported via sandbox create --snapshot <id> and Sandbox.create({ source: { type: "snapshot", snapshotId } }).
readFile writing the API error JSON into the destination when the file response is not an octet-stream. The SDK now rejects any non-application/octet-stream response (including 2xx with a JSON error body) instead of piping it verbatim to the caller's stream. (#202)Reuse Undici Agent across instances (#143)
Smarter fallback team selection for scope inference: tries defaultTeamId first, then the best hobby-plan OWNER team (personal team or most recently updated). Filters fallback candidates by billing.plan === 'hobby' to avoid selecting pro/enterprise teams. Skips teams that return 403 and shows a helpful error when no team allows sandbox creation. (#120)
Add workflow serialization support for the Snapshot class via WORKFLOW_SERIALIZE / WORKFLOW_DESERIALIZE, fixing serialization errors when a Snapshot instance is returned from a workflow step. (#140)
stdout()/stderr()/output() failing on deserialized Command instances with "logs() requires an API client" error. (#130)Add support for setting file permissions (mode) in the writeFiles API. Files can now include an optional mode property to set permissions on the tarball, avoiding the need for a separate chmod command. (#90)
await sandbox.writeFiles([
{
path: "/usr/local/bin/myscript",
content: Buffer.from("#!/bin/bash\necho hello"),
mode: 0o755,
},
]);
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Production-grade container orchestration for automated deployment and scaling.
A fast reverse proxy that exposes a local server behind NAT or a firewall to the internet.
The container runtime that packages software into portable images.
Open-source home automation that puts local control first.
One tool to manage every AWS service from the command line, and script them.
If you publish Vercel Sandbox, you can claim this product by proving you administer its repository.