Sandbox Stable

by cloudflareb052c32bab7dNo license3K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 7 days ago

Build or maintain Cloudflare Sandbox apps on the stable @cloudflare/sandbox package. Use sandbox-next for preview apps and sandbox-migrate-to-next for stable-to-preview migrations.

AI-generated overview

Guides building or maintaining Cloudflare Sandbox apps on the stable @cloudflare/sandbox package, with a retrieval map to official docs.

What it does
This skill acts as a gate, contract, and retrieval map for working with the stable @cloudflare/sandbox package. It tells the agent to verify that an app uses the stable npm dependency and matching container image, and to stop and switch to other skills when preview or migration work is detected. It lists non-negotiable API behaviors, such as exec taking a command string and resolving with buffered stdout, stderr, and exitCode, and points to official documentation pages for each task. It also provides a pre-ship checklist covering package/image alignment, typechecking, secrets, and deprecated API cleanup.
When to use it
Use it when building or maintaining a Cloudflare Sandbox app that depends on the stable @cloudflare/sandbox package and stable container image. It is also for cleaning up deprecated stable APIs without moving to the preview line. Do not use it for preview apps or stable-to-preview migrations, which the skill directs elsewhere.
Requirements
No scripts are included; it is instructions only. It assumes an agent working in a Cloudflare Workers project with the @cloudflare/sandbox dependency and a matching container image, and it directs the agent to fetch official Cloudflare documentation pages and rely on installed stable types.

Sandbox SDK — stable package

Isolated Linux environments on Cloudflare Containers, driven from Workers.

Prefer the main Sandbox docs and installed stable types over memory. This skill is a gate, a contract, and a retrieval map—not a full manual.

This line is the current stable default npm package. The main Sandbox documentation describes it. Existing apps can stay here and keep shipping.

We recommend new projects on @cloudflare/sandbox@next with sandbox-next. When you can, plan a move with sandbox-migrate-to-next so you are ready when 1.0 becomes the stable release. Do not force that port unless the user asks.

1. Gate — confirm the package line

Before writing code, inspect the app:

CheckMust match
npm dependencyDefault @cloudflare/sandbox (not @next / preview tags)
Container imageMatching stable image (not cloudflare/sandbox:next)
If you find…Action
@cloudflare/sandbox@next or a next imageStop. Load sandbox-next.
User wants to port to 1.0 / @nextStop. Load sandbox-migrate-to-next. Do not half-apply preview APIs on a stable package.
Only cleaning deprecated stable APIsStay here; use the 2026 deprecation guide. That is not a move to @next.

Never mix a stable Worker package with an @next container image (or the reverse).

Skills install: Agent setup · cloudflare/skills

2. Contract — non-negotiables

  • await sandbox.exec(command) takes a command string and resolves when the command finishes, with buffered stdout / stderr / exitCode (and related fields).
  • Long-running and streaming work use the stable command APIs (startProcess, execStream, and related helpers)—not the @next single-handle model. Open the Commands docs; do not invent @next output() handles on stable.
  • Sessions can preserve working directory and environment across commands (default session / enableDefaultSession, createSession). See Sessions docs when state must carry across calls.
  • Interactive browser terminals often use sandbox.terminal(request) and session/xterm helpers on stable—not preview createTerminal unless the package is @next.
  • Prefer RPC transport when using tunnels or large/binary streaming. HTTP/WebSocket transports are deprecated (cleanup guide below).
  • Files, mounts, ports, tunnels, backups, lifecycle, and interpreter: use main docs for signatures; trust installed stable types.
  • Non-secret config in sandbox env; live credentials in the Worker. Use outbound handlers when processes call external APIs.
  • Production preview hostnames need wildcard DNS on a custom domain when using those URL patterns.
  • Do not apply @next argv/process.output() APIs while the dependency is still stable.
  • Self-deployed bridge stays on the stable package and image. Bridge

Minimal shape:

ts
import { getSandbox, proxyToSandbox, Sandbox } from "@cloudflare/sandbox";
export { Sandbox };
const sandbox = getSandbox(env.Sandbox, "user-123");const result = await sandbox.exec('python3 -c "print(2 + 2)"');// result.stdout, result.exitCode, result.success

3. Retrieve — open the doc for the task

Fetch the page before implementing. Installed stable types win over guesses.

You need to…Open
OrientSandbox overview
First Worker, template, DockerGet started
exec, streaming, background processesCommands API · Execute commands · Background processes · Streaming output
Sessions / shell state across commandsSessions concept · Sessions API
getSandbox options, sleep, destroyLifecycle API · Sandbox options
Env varsEnvironment variables
FilesFiles API · Manage files · File watching
Buckets / mountsStorage API · Mount buckets
BackupsBackups API · Backup and restore
Ports, preview URLs, exposePorts API · Expose services
TunnelsTunnels API
Proxy / Workers connectionsProxy requests · Workers connections
Browser / PTY terminalTerminal API · Terminal concept · Browser terminals
Code interpreterInterpreter API · Code execution
Git in the sandboxGit workflows
Secrets / egressOutbound traffic
WebSocketsWebSocket connections
Docker-in-DockerDocker in Docker
Production deployProduction deployment
Containers conceptContainers
How-to indexGuides
API indexAPI reference
Deprecated APIs while staying on stable2026 deprecation guide
Self-deployed bridgeBridge · Bridge HTTP API
Examples (stable/main)examples on GitHub
New work on 1.0 previewsandbox-next · 1.0 preview
Port existing app to @nextsandbox-migrate-to-next · Migrate

Deprecated-API cleanup (stay on stable)

Update package + matching image first, then follow the guide. Typical search:

sh
rg 'SANDBOX_TRANSPORT|transport:|exposePort\(|enableDefaultSession|execStream\(|readFileStream|writeFileStream'

This path does not switch you to @next.

4. Before you ship

  • Worker package and container image on the same stable line
  • Typecheck against installed stable types
  • No live secrets in sandbox env
  • If using deprecated transports/helpers, finish or track 2026 deprecation cleanup
  • When the team is ready for 1.0, use sandbox-migrate-to-next—do not force cutover unprompted

Source and attribution

Source:cloudflare/skillsinskills/sandbox-stableat commitb052c32

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal