Cloudflare Sandbox App

Sandbox SDK — stable package

by cloudflare · Apache-2.0 license · ★ 2,976 on GitHub

Sandbox SDK — stable package cover

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.

---
name: sandbox-stable
description: 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.
---

# Sandbox SDK — stable package

Isolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/index.md), 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](https://developers.cloudflare.com/sandbox/index.md) 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:

Overview

Isolated Linux environments on Cloudflare Containers, driven from Workers.

Manual install (npx, ZIP)
Claude Codenpx skills add cloudflare/skills --skill sandbox-stable -g -a claude-code
Claude Code (degit)npx degit cloudflare/skills/skills/sandbox-stable#main ~/.claude/skills/sandbox-stable
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md9.1 KB
Read SKILL.md here
cloudflare/main1 file shown
SKILL.md
Show the full text111 lines

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:

Check Must match
npm dependency Default @cloudflare/sandbox (not @next / preview tags)
Container image Matching stable image (not cloudflare/sandbox:next)
If you find… Action
@cloudflare/sandbox@next or a next image Stop. Load sandbox-next.
User wants to port to 1.0 / @next Stop. Load sandbox-migrate-to-next. Do not half-apply preview APIs on a stable package.
Only cleaning deprecated stable APIs Stay 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:

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
Orient Sandbox overview
First Worker, template, Docker Get started
exec, streaming, background processes Commands API · Execute commands · Background processes · Streaming output
Sessions / shell state across commands Sessions concept · Sessions API
getSandbox options, sleep, destroy Lifecycle API · Sandbox options
Env vars Environment variables
Files Files API · Manage files · File watching
Buckets / mounts Storage API · Mount buckets
Backups Backups API · Backup and restore
Ports, preview URLs, expose Ports API · Expose services
Tunnels Tunnels API
Proxy / Workers connections Proxy requests · Workers connections
Browser / PTY terminal Terminal API · Terminal concept · Browser terminals
Code interpreter Interpreter API · Code execution
Git in the sandbox Git workflows
Secrets / egress Outbound traffic
WebSockets WebSocket connections
Docker-in-Docker Docker in Docker
Production deploy Production deployment
Containers concept Containers
How-to index Guides
API index API reference
Deprecated APIs while staying on stable 2026 deprecation guide
Self-deployed bridge Bridge · Bridge HTTP API
Examples (stable/main) examples on GitHub
New work on 1.0 preview sandbox-next · 1.0 preview
Port existing app to @next sandbox-migrate-to-next · Migrate
Deprecated-API cleanup (stay on stable)

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

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
1---
2name: sandbox-stable
3description: 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.
4---
5 
6# Sandbox SDK — stable package
7 
8Isolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/index.md), driven from Workers.
9 
10**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.
11 
12This line is the **current stable** default npm package. The main [Sandbox documentation](https://developers.cloudflare.com/sandbox/index.md) describes it. Existing apps can stay here and keep shipping.
13 
14We 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.
15 
16## 1. Gate — confirm the package line
17 
18Before writing code, inspect the app:
19 
20| Check | Must match |
21| ----- | ---------- |
22| npm dependency | Default `@cloudflare/sandbox` (**not** `@next` / preview tags) |
23| Container image | Matching **stable** image (not `cloudflare/sandbox:next`) |
24 
25| If you find… | Action |
26| ------------ | ------ |
27| `@cloudflare/sandbox@next` or a `next` image | **Stop.** Load **`sandbox-next`**. |
28| User wants to port to 1.0 / `@next` | **Stop.** Load **`sandbox-migrate-to-next`**. Do not half-apply preview APIs on a stable package. |
29| Only cleaning deprecated stable APIs | Stay here; use the [2026 deprecation guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md). That is **not** a move to `@next`. |
30 
31Never mix a stable Worker package with an `@next` container image (or the reverse).
32 
33Skills install: [Agent setup](https://developers.cloudflare.com/agent-setup/index.md) · [cloudflare/skills](https://github.com/cloudflare/skills)
34 
35## 2. Contract — non-negotiables
36 
37- `await sandbox.exec(command)` takes a **command string** and resolves when the command **finishes**, with buffered `stdout` / `stderr` / `exitCode` (and related fields).
38- 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.
39- **Sessions** can preserve working directory and environment across commands (default session / `enableDefaultSession`, `createSession`). See Sessions docs when state must carry across calls.
40- Interactive browser terminals often use **`sandbox.terminal(request)`** and session/xterm helpers on stable—not preview `createTerminal` unless the package is `@next`.
41- Prefer **RPC** transport when using tunnels or large/binary streaming. HTTP/WebSocket transports are deprecated (cleanup guide below).
42- Files, mounts, ports, tunnels, backups, lifecycle, and interpreter: use main docs for signatures; trust installed **stable** types.
43- Non-secret config in sandbox env; live credentials in the Worker. Use outbound handlers when processes call external APIs.
44- Production preview hostnames need wildcard DNS on a custom domain when using those URL patterns.
45- Do **not** apply `@next` argv/`process.output()` APIs while the dependency is still stable.
46- Self-deployed **bridge** stays on the stable package and image. [Bridge](https://developers.cloudflare.com/sandbox/sdk/bridge/index.md)
47 
48Minimal shape:
49 
50```ts
51import { getSandbox, proxyToSandbox, Sandbox } from "@cloudflare/sandbox";
52 
53export { Sandbox };
54 
55const sandbox = getSandbox(env.Sandbox, "user-123");
56const result = await sandbox.exec('python3 -c "print(2 + 2)"');
57// result.stdout, result.exitCode, result.success
58```
59 
60## 3. Retrieve — open the doc for the task
61 
62Fetch the page before implementing. Installed stable types win over guesses.
63 
64| You need to… | Open |
65| ------------ | ---- |
66| Orient | [Sandbox overview](https://developers.cloudflare.com/sandbox/index.md) |
67| First Worker, template, Docker | [Get started](https://developers.cloudflare.com/sandbox/get-started/index.md) |
68| `exec`, streaming, background processes | [Commands API](https://developers.cloudflare.com/sandbox/sdk/api/commands/index.md) · [Execute commands](https://developers.cloudflare.com/sandbox/sdk/guides/execute-commands/index.md) · [Background processes](https://developers.cloudflare.com/sandbox/sdk/guides/background-processes/index.md) · [Streaming output](https://developers.cloudflare.com/sandbox/sdk/guides/streaming-output/index.md) |
69| Sessions / shell state across commands | [Sessions concept](https://developers.cloudflare.com/sandbox/sdk/concepts/sessions/index.md) · [Sessions API](https://developers.cloudflare.com/sandbox/sdk/api/sessions/index.md) |
70| `getSandbox` options, sleep, destroy | [Lifecycle API](https://developers.cloudflare.com/sandbox/sdk/api/lifecycle/index.md) · [Sandbox options](https://developers.cloudflare.com/sandbox/sdk/configuration/sandbox-options/index.md) |
71| Env vars | [Environment variables](https://developers.cloudflare.com/sandbox/sdk/configuration/environment-variables/index.md) |
72| Files | [Files API](https://developers.cloudflare.com/sandbox/sdk/api/files/index.md) · [Manage files](https://developers.cloudflare.com/sandbox/sdk/guides/manage-files/index.md) · [File watching](https://developers.cloudflare.com/sandbox/sdk/api/file-watching/index.md) |
73| Buckets / mounts | [Storage API](https://developers.cloudflare.com/sandbox/sdk/api/storage/index.md) · [Mount buckets](https://developers.cloudflare.com/sandbox/sdk/guides/mount-buckets/index.md) |
74| Backups | [Backups API](https://developers.cloudflare.com/sandbox/sdk/api/backups/index.md) · [Backup and restore](https://developers.cloudflare.com/sandbox/sdk/guides/backup-restore/index.md) |
75| Ports, preview URLs, expose | [Ports API](https://developers.cloudflare.com/sandbox/sdk/api/ports/index.md) · [Expose services](https://developers.cloudflare.com/sandbox/sdk/guides/expose-services/index.md) |
76| Tunnels | [Tunnels API](https://developers.cloudflare.com/sandbox/sdk/api/tunnels/index.md) |
77| Proxy / Workers connections | [Proxy requests](https://developers.cloudflare.com/sandbox/sdk/guides/proxy-requests/index.md) · [Workers connections](https://developers.cloudflare.com/sandbox/sdk/guides/workers-connections/index.md) |
78| Browser / PTY terminal | [Terminal API](https://developers.cloudflare.com/sandbox/sdk/api/terminal/index.md) · [Terminal concept](https://developers.cloudflare.com/sandbox/sdk/concepts/terminal/index.md) · [Browser terminals](https://developers.cloudflare.com/sandbox/sdk/guides/browser-terminals/index.md) |
79| Code interpreter | [Interpreter API](https://developers.cloudflare.com/sandbox/sdk/api/interpreter/index.md) · [Code execution](https://developers.cloudflare.com/sandbox/sdk/guides/code-execution/index.md) |
80| Git in the sandbox | [Git workflows](https://developers.cloudflare.com/sandbox/sdk/guides/git-workflows/index.md) |
81| Secrets / egress | [Outbound traffic](https://developers.cloudflare.com/sandbox/sdk/guides/outbound-traffic/index.md) |
82| WebSockets | [WebSocket connections](https://developers.cloudflare.com/sandbox/sdk/guides/websocket-connections/index.md) |
83| Docker-in-Docker | [Docker in Docker](https://developers.cloudflare.com/sandbox/sdk/guides/docker-in-docker/index.md) |
84| Production deploy | [Production deployment](https://developers.cloudflare.com/sandbox/sdk/guides/preview-urls-custom-domain/index.md) |
85| Containers concept | [Containers](https://developers.cloudflare.com/sandbox/sdk/concepts/containers/index.md) |
86| How-to index | [Guides](https://developers.cloudflare.com/sandbox/sdk/guides/index.md) |
87| API index | [API reference](https://developers.cloudflare.com/sandbox/sdk/api/index.md) |
88| Deprecated APIs **while staying on stable** | [2026 deprecation guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) |
89| Self-deployed bridge | [Bridge](https://developers.cloudflare.com/sandbox/sdk/bridge/index.md) · [Bridge HTTP API](https://developers.cloudflare.com/sandbox/sdk/bridge/http-api/index.md) |
90| Examples (stable/`main`) | [examples on GitHub](https://github.com/cloudflare/sandbox-sdk/tree/main/examples) |
91| New work on 1.0 preview | **`sandbox-next`** · [1.0 preview](https://developers.cloudflare.com/sandbox/index.md) |
92| Port existing app to `@next` | **`sandbox-migrate-to-next`** · [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) |
93 
94### Deprecated-API cleanup (stay on stable)
95 
96Update package + matching image first, then follow the guide. Typical search:
97 
98```sh
99rg 'SANDBOX_TRANSPORT|transport:|exposePort\(|enableDefaultSession|execStream\(|readFileStream|writeFileStream'
100```
101 
102This path does **not** switch you to `@next`.
103 
104## 4. Before you ship
105 
106- Worker package and container image on the **same stable** line
107- Typecheck against installed stable types
108- No live secrets in sandbox env
109- If using deprecated transports/helpers, finish or track [2026 deprecation](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) cleanup
110- When the team is ready for 1.0, use **`sandbox-migrate-to-next`**—do not force cutover unprompted
111 
View all files on GitHub →

Details

License
Apache-2.0
Stars on the repo
★ 2,976
Checked
Source
cloudflare/skills ↗
Creator
cloudflare · 17 listings
View creator

Similar skills

See all →
SkillAPI Interface Designaddyosmani/agent-skills · by addyosmaniGuides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.★ 98.7k GitHub starsAgentVersion-Specific Docs Lookupupstash/context7 · by upstashPulls up-to-date, version-specific library docs and code examples into the prompt so the AI stops inventing old APIs.★ 62.3k GitHub starsSkillAdaptyv Bio Foundry APIK-Dense-AI/scientific-agent-skills · by K-Dense-AIHow to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.★ 46k GitHub starsSkill.NET Backend Developerwshobson/agents · by wshobsonMaster C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.★ 39.9k GitHub starsSkillGemini Agent API Guidegoogle/skills · by googleGuides the usage of Gemini Interactions API on Gemini Enterprise Agent Platform. Use when the user wants to use the stateful, server-managed Interactions API for multi-turn conversations, background execution, streaming, structured output, and function calling on the Agent Platform.★ 20.9k GitHub starsSkillGemini Notebook Automationteng-lin/notebooklm-py · by teng-linInstall, authenticate, troubleshoot, and operate Gemini Notebook through the notebooklm-py CLI or typed async Python API. Use for notebook and source management, grounded chat and research, and artifact generation or download when the user mentions Gemini Notebook, notebooklm-py, the notebooklm CLI, or its Python API. Do not use for the generic Gemini API or unrelated content creation.★ 19.6k GitHub stars

More from cloudflare

SkillSecurity Audit Reviewercloudflare/security-audit-skill · by cloudflareSecurity guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full/comprehensive/end-to-end reviews, or requested report artifacts.★ 26.1k GitHub starsAgentCloudflare MCP Hubcloudflare/mcp-server-cloudflare · by cloudflareCloudflare's hosted servers for Workers, docs, observability, logs and browser rendering.★ 4.3k GitHub starsSkillCloudflare Agents SDK Buildercloudflare/skills · by cloudflareBuild, debug, or review Cloudflare Agents SDK applications using the agents package.★ 3k GitHub starsSkillBasin Analytics Workflowcloudflare/skills · by cloudflareBuild and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL. Use for streaming data into R2 Iceberg tables, managing catalogs, or querying those tables; also use for requests using the former Data Platform, Pipelines, R2 Data Catalog, or R2 SQL names.★ 3k GitHub starsSkillCloudflare Email Configcloudflare/skills · by cloudflareImplement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.★ 3k GitHub starsSkillCloudflare K2 Stream Buildercloudflare/skills · by cloudflareBuild and troubleshoot Cloudflare K2 or K2 Streams durable logs. Use for stream setup, producing from Workers or HTTP, configuring retention and inputs, and consuming through subscriptions.★ 3k GitHub stars