Sandbox Stable
CloudflareOfficialPublished by Cloudflare
- Skill
- Tool integration
- Cloud and DevOps
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach for developers working with the stable @cloudflare/sandbox package. It serves as a gatekeeper to ensure projects remain on the stable release line, provides a contract for non-negotiable API usage, and acts as a retrieval map for official documentation. It explicitly distinguishes between stable development and preview environments, directing users to appropriate alternative skills for migrations or new preview-based projects.
What it does
- Validates that projects are using the stable @cloudflare/sandbox package and container images.
- Provides a contract for stable API usage, including command execution and session management.
- Maps specific development tasks to the relevant official Cloudflare Sandbox documentation.
- Offers guidance on cleaning up deprecated stable APIs without forcing a migration to preview versions.
- Ensures consistent configuration between Worker packages and container images.
- Facilitates feedback submission for improving the skill's own guidance.
When to use it
- When building or maintaining applications on the stable Cloudflare Sandbox SDK.
- When you need to verify if your current project configuration matches the stable release requirements.
- When implementing core features like command execution, file management, or session handling in a stable environment.
- When cleaning up deprecated APIs while remaining on the stable package.
- When you need to locate specific documentation for Sandbox lifecycle, storage, or networking.
Advantages
- Prevents accidental mixing of stable and preview-only APIs.
- Provides a clear, centralized reference for stable SDK capabilities.
- Reduces development errors by enforcing strict package and image version matching.
- Maintains a clear distinction between stable production work and future-proofing migrations.
Usage examples
- “How do I execute a simple Python command in my Cloudflare Sandbox?”
- The agent will provide the code snippet using sandbox.exec() and confirm that you are using the stable API patterns.
- “I need to manage file state across multiple commands. What should I use?”
- The agent will direct you to the Sessions API documentation and explain how to use sessions to preserve working directories.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/cloudflare/sandbox-stable/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip sandbox-stable.zip -d .agents/skills
Documentation by Cloudflare
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 bufferedstdout/stderr/exitCode(and related fields).Long-running and streaming work use the stable command APIs (
startProcess,execStream, and related helpers)—not the@nextsingle-handle model. Open the Commands docs; do not invent@nextoutput()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 previewcreateTerminalunless 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
@nextargv/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.success3. 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
Skill feedback
If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read references/skill-feedback.md.
Files
- ATTRIBUTION.mdAdded by AutoGineer864 B
- LICENSELicence file added by AutoGineer11.1 KiB
- SKILL.md9.3 KiB
- references/skill-feedback.md2.7 KiB
references/skill-feedback.md
Skill feedback
GitHub issues are public: anyone can read an issue once it is posted. Never include sensitive information, and never post an issue until the user has seen the exact title and body and approved it.
Use this when the user reports that the sandbox-stable skill gave incorrect or outdated guidance, is missing information, or could be improved. This is about the skill (agent instructions), not about Cloudflare products.
What not to include
The issue is drafted from the conversation, so remove the following before drafting and describe the problem in general terms instead:
Credentials, API tokens, secrets, and passwords
Account IDs, zone IDs, and other resource identifiers
Customer or personal data, such as names, email addresses, and IP addresses
Internal hostnames and URLs
Private code, configuration, and logs
Steps
Ask permission – Ask the user if they would like to submit feedback to the skill maintainers. If they decline, move on.
Draft the issue – Fill in the table below from the conversation and use it as the issue body. Always identify which specific file and section caused the problem. Leave out everything listed in What not to include.
Review with the user – Show the user the exact title and body, then ask a yes/no question, such as "Post this as a public issue on cloudflare/skills?" Submit only after the user answers yes. If they ask for changes, apply them and ask again. If they answer no, do not post. Agreeing to send feedback in step 1 is not approval of the text.
Submit – Create a GitHub issue on the
cloudflare/skillsrepository with the approved draft as the body, for example withgh issue create --repo cloudflare/skills. The title must follow this format:skill-feedback: sandbox-stable: <summary of the problem>.Share the result – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: https://github.com/cloudflare/skills/issues/new
Issue body
| Field | Value |
|---|---|
| Type | bug (incorrect guidance), outdated, missing, or improvement |
| Skill | sandbox-stable |
| Source | File and section, e.g. SKILL.md > "Section name" or references/<file>.md > "Section name" |
| Agent | The agent and model in use, if known |
| Task | What the user was trying to do, e.g. "deploy a preview" |
| Expected | What should have happened, e.g. "Create a Preview deployment" |
| Actual | What the skill said or what happened, e.g. "Unknown option: --preview" |
| Impact | The effect on the user, e.g. "Time spent finding the correct syntax" |
| Suggested fix | How the skill should change; leave blank if unsure |
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Cloudflare
- Publisher
- Cloudflare (Official)
- Source
- cloudflare/skills · skills/sandbox-stable · commit 6eb6c78
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Cloudflare.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download sandbox-stable.zip