← CloudflareCONTENT HISTORY

Update to Cloudflare

Snapshot Oct 1, 2026 · 00:02 UTC · version 1.0.1

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "sandbox-stable",
  "description": "Use when building or changing Cloudflare Sandbox apps on the current stable @cloudflare/sandbox package (default npm tag)—commands, sessions, files, ports, tunnels, terminals, bridge, production, or deprecated-API cleanup while staying on stable. Not for @cloudflare/sandbox@next (use sandbox-next) or for porting to 1.0 (use sandbox-migrate-to-next).",
  "included_files": [],
  "skill_md_contents": "---\nname: sandbox-stable\ndescription: Use when building or changing Cloudflare Sandbox apps on the current stable @cloudflare/sandbox package (default npm tag)—commands, sessions, files, ports, tunnels, terminals, bridge, production, or deprecated-API cleanup while staying on stable. Not for @cloudflare/sandbox@next (use sandbox-next) or for porting to 1.0 (use sandbox-migrate-to-next).\n---\n\n# Sandbox SDK — stable package\n\nIsolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/), driven from Workers.\n\n**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.\n\nThis line is the **current stable** default npm package. The main [Sandbox documentation](https://developers.cloudflare.com/sandbox/) describes it. Existing apps can stay here and keep shipping.\n\nWe 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.\n\n## 1. Gate — confirm the package line\n\nBefore writing code, inspect the app:\n\n| Check | Must match |\n| ----- | ---------- |\n| npm dependency | Default `@cloudflare/sandbox` (**not** `@next` / preview tags) |\n| Container image | Matching **stable** image (not `cloudflare/sandbox:next`) |\n\n| If you find… | Action |\n| ------------ | ------ |\n| `@cloudflare/sandbox@next` or a `next` image | **Stop.** Load **`sandbox-next`**. |\n| User wants to port to 1.0 / `@next` | **Stop.** Load **`sandbox-migrate-to-next`**. Do not half-apply preview APIs on a stable package. |\n| Only cleaning deprecated stable APIs | Stay here; use the [2026 deprecation guide](https://developers.cloudflare.com/sandbox/guides/2026-deprecation/). That is **not** a move to `@next`. |\n\nNever mix a stable Worker package with an `@next` container image (or the reverse).\n\nSkills install: [Agent setup](https://developers.cloudflare.com/agent-setup/) · [cloudflare/skills](https://github.com/cloudflare/skills)\n\n## 2. Contract — non-negotiables\n\n- `await sandbox.exec(command)` takes a **command string** and resolves when the command **finishes**, with buffered `stdout` / `stderr` / `exitCode` (and related fields).\n- 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.\n- **Sessions** can preserve working directory and environment across commands (default session / `enableDefaultSession`, `createSession`). See Sessions docs when state must carry across calls.\n- Interactive browser terminals often use **`sandbox.terminal(request)`** and session/xterm helpers on stable—not preview `createTerminal` unless the package is `@next`.\n- Prefer **RPC** transport when using tunnels or large/binary streaming. HTTP/WebSocket transports are deprecated (cleanup guide below).\n- Files, mounts, ports, tunnels, backups, lifecycle, and interpreter: use main docs for signatures; trust installed **stable** types.\n- Non-secret config in sandbox env; live credentials in the Worker. Use outbound handlers when processes call external APIs.\n- Production preview hostnames need wildcard DNS on a custom domain when using those URL patterns.\n- Do **not** apply `@next` argv/`process.output()` APIs while the dependency is still stable.\n- Self-deployed **bridge** stays on the stable package and image. [Bridge](https://developers.cloudflare.com/sandbox/bridge/)\n\nMinimal shape:\n\n```ts\nimport { getSandbox, proxyToSandbox, Sandbox } from \"@cloudflare/sandbox\";\n\nexport { Sandbox };\n\nconst sandbox = getSandbox(env.Sandbox, \"user-123\");\nconst result = await sandbox.exec('python3 -c \"print(2 + 2)\"');\n// result.stdout, result.exitCode, result.success\n```\n\n## 3. Retrieve — open the doc for the task\n\nFetch the page before implementing. Installed stable types win over guesses.\n\n| You need to… | Open |\n| ------------ | ---- |\n| Orient | [Sandbox overview](https://developers.cloudflare.com/sandbox/) |\n| First Worker, template, Docker | [Get started](https://developers.cloudflare.com/sandbox/get-started/) |\n| `exec`, streaming, background processes | [Commands API](https://developers.cloudflare.com/sandbox/api/commands/) · [Execute commands](https://developers.cloudflare.com/sandbox/guides/execute-commands/) · [Background processes](https://developers.cloudflare.com/sandbox/guides/background-processes/) · [Streaming output](https://developers.cloudflare.com/sandbox/guides/streaming-output/) |\n| Sessions / shell state across commands | [Sessions concept](https://developers.cloudflare.com/sandbox/concepts/sessions/) · [Sessions API](https://developers.cloudflare.com/sandbox/api/sessions/) |\n| `getSandbox` options, sleep, destroy | [Lifecycle API](https://developers.cloudflare.com/sandbox/api/lifecycle/) · [Sandbox options](https://developers.cloudflare.com/sandbox/configuration/sandbox-options/) |\n| Env vars | [Environment variables](https://developers.cloudflare.com/sandbox/configuration/environment-variables/) |\n| Files | [Files API](https://developers.cloudflare.com/sandbox/api/files/) · [Manage files](https://developers.cloudflare.com/sandbox/guides/manage-files/) · [File watching](https://developers.cloudflare.com/sandbox/api/file-watching/) |\n| Buckets / mounts | [Storage API](https://developers.cloudflare.com/sandbox/api/storage/) · [Mount buckets](https://developers.cloudflare.com/sandbox/guides/mount-buckets/) |\n| Backups | [Backups API](https://developers.cloudflare.com/sandbox/api/backups/) · [Backup and restore](https://developers.cloudflare.com/sandbox/guides/backup-restore/) |\n| Ports, preview URLs, expose | [Ports API](https://developers.cloudflare.com/sandbox/api/ports/) · [Expose services](https://developers.cloudflare.com/sandbox/guides/expose-services/) |\n| Tunnels | [Tunnels API](https://developers.cloudflare.com/sandbox/api/tunnels/) |\n| Proxy / Workers connections | [Proxy requests](https://developers.cloudflare.com/sandbox/guides/proxy-requests/) · [Workers connections](https://developers.cloudflare.com/sandbox/guides/workers-connections/) |\n| Browser / PTY terminal | [Terminal API](https://developers.cloudflare.com/sandbox/api/terminal/) · [Terminal concept](https://developers.cloudflare.com/sandbox/concepts/terminal/) · [Browser terminals](https://developers.cloudflare.com/sandbox/guides/browser-terminals/) |\n| Code interpreter | [Interpreter API](https://developers.cloudflare.com/sandbox/api/interpreter/) · [Code execution](https://developers.cloudflare.com/sandbox/guides/code-execution/) |\n| Git in the sandbox | [Git workflows](https://developers.cloudflare.com/sandbox/guides/git-workflows/) |\n| Secrets / egress | [Outbound traffic](https://developers.cloudflare.com/sandbox/guides/outbound-traffic/) |\n| WebSockets | [WebSocket connections](https://developers.cloudflare.com/sandbox/guides/websocket-connections/) |\n| Docker-in-Docker | [Docker in Docker](https://developers.cloudflare.com/sandbox/guides/docker-in-docker/) |\n| Production deploy | [Production deployment](https://developers.cloudflare.com/sandbox/guides/production-deployment/) |\n| Containers concept | [Containers](https://developers.cloudflare.com/sandbox/concepts/containers/) |\n| How-to index | [Guides](https://developers.cloudflare.com/sandbox/guides/) |\n| API index | [API reference](https://developers.cloudflare.com/sandbox/api/) |\n| Deprecated APIs **while staying on stable** | [2026 deprecation guide](https://developers.cloudflare.com/sandbox/guides/2026-deprecation/) |\n| Self-deployed bridge | [Bridge](https://developers.cloudflare.com/sandbox/bridge/) · [Bridge HTTP API](https://developers.cloudflare.com/sandbox/bridge/http-api/) |\n| Examples (stable/`main`) | [examples on GitHub](https://github.com/cloudflare/sandbox-sdk/tree/main/examples) |\n| New work on 1.0 preview | **`sandbox-next`** · [1.0 preview](https://developers.cloudflare.com/sandbox/1-0-preview/) |\n| Port existing app to `@next` | **`sandbox-migrate-to-next`** · [Migrate](https://developers.cloudflare.com/sandbox/1-0-preview/migrate/) |\n\n### Deprecated-API cleanup (stay on stable)\n\nUpdate package + matching image first, then follow the guide. Typical search:\n\n```sh\nrg 'SANDBOX_TRANSPORT|transport:|exposePort\\(|enableDefaultSession|execStream\\(|readFileStream|writeFileStream'\n```\n\nThis path does **not** switch you to `@next`.\n\n## 4. Before you ship\n\n- Worker package and container image on the **same stable** line  \n- Typecheck against installed stable types  \n- No live secrets in sandbox env  \n- If using deprecated transports/helpers, finish or track [2026 deprecation](https://developers.cloudflare.com/sandbox/guides/2026-deprecation/) cleanup  \n- When the team is ready for 1.0, use **`sandbox-migrate-to-next`**—do not force cutover unprompted  \n"
}

SHA-256: a4c4105f1d4066d8dce26888c64bc8cb0986b0660116ce2d0fa68304ef2e9d68