
Cloudflare Sandbox Next
OfficialFreeBuild and modify Cloudflare Sandbox apps with ease.
Free · Opens the source repo
What Cloudflare Sandbox Next does
The Cloudflare Sandbox Next skill is designed for developers working with the preview version of the Cloudflare Sandbox SDK, specifically @cloudflare/sandbox@next. This skill provides essential guidance and instructions for building and modifying applications within isolated Linux environments hosted on Cloudflare Containers. It serves as a critical resource for ensuring that developers are utilizing the correct package line and APIs, particularly when transitioning from stable to preview versions.
When using this skill, developers must confirm that their application is set up to use the @next version of the SDK. This includes verifying dependencies and container images to avoid conflicts with the stable version. The skill emphasizes that it is not suitable for applications still relying on the default stable package, directing users to the appropriate tools for migration when necessary.
The skill outlines key operational contracts, detailing how to execute commands within the sandbox environment. It specifies that each execution is independent and highlights the limitations of process handles, such as the absence of standard input and the need for explicit shell syntax. Additionally, developers are reminded to manage process lifecycles carefully, ensuring that configurations and environment variables are set correctly for each execution.
Overall, this skill is tailored for developers who are starting new projects with the Cloudflare Sandbox SDK preview. It provides a structured approach to utilizing the SDK effectively while avoiding common pitfalls associated with version mismatches and improper API usage.
When to use it
Use this skill when starting new projects with the Cloudflare Sandbox SDK `@next` version or when modifying existing applications that need to leverage the preview features.
When not to use it
This skill is not suitable for applications that are still using the stable version of the Cloudflare Sandbox SDK or for those needing to migrate from stable to `@next`—in such cases, use the `sandbox-migrate-to-next` skill instead.
What you can build with it
Starting a New Project
When beginning a new application utilizing the Cloudflare Sandbox SDK, this skill guides you through the necessary setup and API usage.
Modifying Existing Apps
If you need to update an existing application to use the preview features of the Cloudflare Sandbox, this skill provides the essential instructions.
Avoiding Compatibility Issues
This skill helps ensure that you do not mix stable and preview versions, preventing potential errors and conflicts in your development environment.
How to install Cloudflare Sandbox Next
View source1. Install with the skills CLI
npx skills add cloudflare/skills/sandbox-next --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by cloudflareSandbox SDK — @next (1.0 preview)
Isolated Linux environments on Cloudflare Containers, driven from Workers.
Prefer preview docs and installed @next types over memory. APIs change; this skill is a gate, a contract, and a retrieval map—not a full manual.
We recommend new projects on this line. Apps still on the default package use sandbox-stable. Port only when asked, via sandbox-migrate-to-next.
1. Gate — confirm the package line
Before writing code, inspect the app:
| Check | Must match |
|---|---|
| npm dependency | @cloudflare/sandbox@next (or another preview tag) |
| Container image | Same line (e.g. cloudflare/sandbox:next, next-python) |
| If you find… | Action |
|---|---|
Default @cloudflare/sandbox (no @next) | Stop. Load sandbox-stable. Do not apply this skill’s APIs. |
User wants to port stable → @next | Stop. Load sandbox-migrate-to-next. |
| Self-deployed bridge only | Bridge is not on the 1.0 preview line yet. Keep bridge on stable package + image. Bridge (stable) |
Never mix an @next Worker package with a stable container image (or the reverse).
Skills install: Agent setup · cloudflare/skills
2. Contract — non-negotiables
sandbox.exec(argv)takes an argv list and resolves when the process starts. It returns a handle, not a finished command result.- Collect results with handle methods:
output(),logs(),waitForExit(),waitForPort(),waitForLog(),kill(signal?). - No implicit shell. Shell syntax needs an explicit shell, e.g.
["/bin/bash", "-lc", script]. - Each launch is independent. A
cd/exportin oneexecis not visible to the next. Passcwdandenvper launch, or one shell script. - Process handles have no stdin. Interactive use → terminals (
createTerminal+connect). - Local wait
timeout/AbortSignalcancel the wait only. They do not kill the process. Usekillorexec’s remotetimeout. getProcess/listProcesses/getTerminal/listTerminalsdo not start a container; they returnnull/[]when none is up.- Process and terminal IDs belong to the current container, not forever to a sandbox ID. For work that must survive replace, store the full job (argv, cwd, env, app state)—not only an id.
- Non-secret config only in
setEnvVars/ launchenv. Live credentials stay in the Worker; use outbound handlers when the sandbox calls external APIs. - Do not invent removed stable APIs (
gitCheckouton core, string-execcompletion, session execution,sandbox.terminal(request)). - Do not use one retry loop for every error (see Errors docs).
Minimal shape:
import { getSandbox, proxyToSandbox, Sandbox } from "@cloudflare/sandbox";
export { Sandbox };
const sandbox = getSandbox(env.Sandbox, "user-123");
const process = await sandbox.exec(["python3", "-c", "print(2 + 2)"]);
const result = await process.output({ encoding: "utf8" });
// result.stdout, result.exitCode
Optional non-exhaustive cheatsheet (process/terminal/interpreter only): references/api-quick-ref.md
Examples index (next branch): references/examples.md
3. Retrieve — open the doc for the task
Fetch the page before implementing. Installed @next types win over guesses.
| You need to… | Open |
|---|---|
| Orient / choose preview | 1.0 preview overview |
| First Worker, wrangler, Dockerfile | Get started |
exec, handles, readiness, durability | Process execution |
| Process API signatures | Processes API |
| Sandbox ID vs container vs sleep/destroy | Lifecycle |
cwd / env / setEnvVars | Environment |
| Interactive PTY / browser terminal | Terminals · Terminals API |
| Python/JS code interpreter | Interpreter · Interpreter API |
| Extensions model | Extensions |
| Error classes and recovery | Errors · Errors API |
| Common failures | Troubleshooting |
| API hub | API reference |
Files, mounts, backups, ports, tunnels, proxyToSandbox | Main docs for shared surfaces (ignore stable-only session/transport/sandbox.terminal): Files · Storage / mounts · Ports · Tunnels · Backups · Outbound traffic · Expose services · Production |
| Example apps | examples on next |
| Still on stable package | sandbox-stable · Main Sandbox docs |
| Porting an existing stable app | sandbox-migrate-to-next · Migrate |
4. Before you ship
- Lockfile and Dockerfile on the same
@nextline - Typecheck against installed
@nexttypes - No live secrets in sandbox env
- Production preview hostnames need wildcard DNS on a custom domain when using those URL patterns
Frequently asked questions about Cloudflare Sandbox Next
Similar skills
Turborepo
Optimized build system for JavaScript/TypeScript monorepos.
Azure Pipelines Validation
Streamline your Azure DevOps pipeline changes locally.
Azure Developer CLI
Streamline your Azure project workflows with best practices.
Azure Container Registry CLI
Manage Azure Container Registry resources with ease.
Aspire
Build and orchestrate polyglot distributed applications seamlessly.
Vercel CLI
Manage and deploy Vercel projects from the command line.
