GitShow/vercel/sandbox
vercel

sandbox

Vercel Sandbox is an ephemeral compute primitive designed to safely run untrusted or user-generated code.

by vercel
Star on GitHubForkWebsitenpm

TypeScript

174 stars34 forks21 contributorsActive · 1h agoSince 2026@vercel/sandbox-mock@3.0.0Apache-2.0

Meet the team

See all 21 on GitHub →
marc-vercel
marc-vercel61 contributions
github-actions[bot]Bot
github-actions[bot]49 contributions
QuiiBz
QuiiBz31 contributions
AndyW22
AndyW2218 contributions
Schniz
Schniz8 contributions
valerian-roche
valerian-roche6 contributions
LukeSheard
LukeSheard6 contributions
TooTallNate
TooTallNate4 contributions

Languages

View on GitHub →
TypeScript99%
Dockerfile0.8%
HCL0.2%
JavaScript0%
Shell0%

Commit activity

Last 12 weeks · 69 commits

Full graph →

Community health

3 of 6 standards met

Community profile →
62
✓README✓License✓Contributing○Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · Last activity 1h ago
See all on GitHub →
kobolog
feat(sandbox): open the account's login shell on connectOpenPR

What (and /), , and all hardcoded as the executable of the interactive session. vercel/api#85167 teaches sandbox-init to resolve the account's shell from its passwd entry when the frame carries no command — but the CLI always names one, so that path never ran. The commands that only ever open a shell now send no command and , so the session spawns : the shell the image's user actually declares, as a login shell, with its profile sourced. Commands the user typed are still sent verbatim. Wire-level, the frame goes from to . in is now the single place that decides what a session spawns, and 's is optional. exposes — the command's handler, with optional — so // can ask for a shell instead of fabricating an argv. Most of that file's diff is de-indentation from moving the handler body into a named function. With the same request becomes (), which is sudo's own version of this feature: the target account's passwd shell, as a login shell. It starts in that account's home directory, so no longer survives the + implicit-shell combination. Explicit commands under are unchanged. Nothing is echoed as for an implicit shell anymore: the sandbox picks the executable, so the CLI would only be printing a guess. api-side coordination No changes to #85167 are needed. Its empty-command path passes through to verbatim, so the client-supplied lands on the resolved shell — verified against and the controller's bridge on , neither of which rejects an empty . The dependency runs one way: this PR should land after #85167 is deployed. Against an older sandbox-init, an empty command reaches and the session fails to start. is spelled out because that is the form bash, zsh, fish and sudo all accept. If we ever need to support a shell that only takes , that translation belongs next to the passwd lookup in sandbox-init, where the shell is actually known — not in the CLI. Testing and in . New coverage: — over the four combinations (implicit/explicit command × sudo), plus sessions driven against a real local WebSocket server asserting the frame that goes over the wire, and that only an explicit command is echoed. — , , and reach with no execution; still carries the command it was given. Verified these fail against the old . 🤖 Generated with Claude Code

kobolog · 1h ago
erulkey
feat(sdk): add Secure Compute network selectionOpenPR

Why now accepts (explicit network, explicit opt-out) and applies a project-level Secure Compute default when the field is omitted. The SDK needs to expose that intent. What Adds to params and forwards it through . Omitted means inherit the project default; means create without Secure Compute. Minor changeset for . Validation Client tests assert an explicit string and an explicit are serialized into the request body, and that the key is absent when the option is omitted (so the API can apply the project default).

erulkey · 13h ago
QuiiBz
DrivesOpenPR
QuiiBz · 19h ago

Recent fixes

View closed PRs →
erulkey
Expose Secure Compute network selectionMergedPR

What changed adds public to Sandbox create and fork forwards explicit network IDs to the API forwards to opt out of a project default documents omitted values as inheriting the project default Validation 279 tests passed package typecheck passed Dependency Release after https://github.com/vercel/api/pull/83259 is deployed.

erulkey · 13h ago
QuiiBz
feat: update drives to latest majorMergedPR
QuiiBz · 20h ago
LukeSheard
fix(images): pin exact Node versionsMergedPR

Summary replace the Node image’s major-only build argument with exact values pin current Node 22, 24, and 26 releases in the Docker Bake matrix publish both major-version and exact-version image tags document the exact releases used by each image tag add a patch changeset for Verification rendered with Docker Buildx Bake asserted Node 22.23.2, 24.19.0, and 26.7.0 args and tags verified each pinned Linux x64 tarball exists upstream Stack Base PR for #280, which adds nightly automatic upgrades. 🤖 Generated with Claude Code

LukeSheard · 20h ago
Structured data for AI agents

Repository: vercel/sandbox. Description: Vercel Sandbox is an ephemeral compute primitive designed to safely run untrusted or user-generated code. Stars: 174, Forks: 34. Primary language: TypeScript. Languages: TypeScript (99%), Dockerfile (0.8%), HCL (0.2%), JavaScript (0%), Shell (0%). License: Apache-2.0. Homepage: https://vercel.com/docs/vercel-sandbox Latest release: @vercel/sandbox-mock@3.0.0 (3d ago). Open PRs: 17, open issues: 3. Last activity: 1h ago. Community health: 62%. Top contributors: marc-vercel, github-actions[bot], QuiiBz, AndyW22, Schniz, valerian-roche, LukeSheard, TooTallNate, allenzhou101, robherley and others.

·@ofershap

Replace github.com with gitshow.dev