sandbox-next

โดย cloudflare

ใช้เมื่อสร้างหรือแก้ไขแอป Cloudflare Sandbox บน @cloudflare/sandbox@next (Sandbox SDK 1.0 preview)—การรันโค้ด, AI runners, interpreters, CI-like…

npx skills add https://github.com/cloudflare/skills --skill sandbox-next

Sandbox 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:

CheckMust match
npm dependency@cloudflare/sandbox@next (or another preview tag)
Container imageSame 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 → @nextStop. Load sandbox-migrate-to-next.
Self-deployed bridge onlyBridge 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 / export in one exec is not visible to the next. Pass cwd and env per launch, or one shell script.
  • Process handles have no stdin. Interactive use → terminals (createTerminal + connect).
  • Local wait timeout / AbortSignal cancel the wait only. They do not kill the process. Use kill or exec’s remote timeout.
  • getProcess / listProcesses / getTerminal / listTerminals do not start a container; they return null / [] 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 / launch env. Live credentials stay in the Worker; use outbound handlers when the sandbox calls external APIs.
  • Do not invent removed stable APIs (gitCheckout on core, string-exec completion, 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

Task-specific API documentation: 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 preview1.0 preview overview
First Worker, wrangler, DockerfileGet started
exec, handles, readiness, durabilityProcess execution
Process API signaturesProcesses API
Sandbox ID vs container vs sleep/destroyLifecycle
cwd / env / setEnvVarsEnvironment
Interactive PTY / browser terminalTerminals · Terminals API
Python/JS code interpreterInterpreter · Interpreter API
Extensions modelExtensions
Error classes and recoveryErrors · Errors API
Common failuresTroubleshooting
API hubAPI reference
Files, mounts, backups, ports, tunnels, proxyToSandboxMain docs for shared surfaces (ignore stable-only session/transport/sandbox.terminal): Files · Storage / mounts · Ports · Tunnels · Backups · Outbound traffic · Expose services · Production
Example appsexamples on next
Still on stable packagesandbox-stable · Main Sandbox docs
Porting an existing stable appsandbox-migrate-to-next · Migrate

4. Before you ship

  • Lockfile and Dockerfile on the same @next line
  • Typecheck against installed @next types
  • No live secrets in sandbox env
  • Production preview hostnames need wildcard DNS on a custom domain when using those URL patterns

Skills เพิ่มเติมจาก cloudflare

dependabot-review
cloudflare
วิเคราะห์ Pull Request ของ Dependabot เพื่อตรวจสอบว่ามีการเปลี่ยนแปลงอะไรเกิดขึ้นจริงในแต่ละแพ็กเกจที่ถูกอัปเดต และการเปลี่ยนแปลงเหล่านั้นส่งผลกระทบต่อ repo นี้หรือไม่ รายงาน API/เมธอดที่เปลี่ยนแปลง…
module-registry
cloudflare
โหลดเมื่อทำงานกับ module registry ใน workerd — การอ่าน, แก้ไข, ดีบัก, หรือตรวจสอบการแก้ไขโมดูล, การคอมไพล์, การประเมินผล, หรือการลงทะเบียน…
reproduce
cloudflare
ทำซ้ำปัญหา GitHub ของ cloudflare/agents โดยการสร้างโปรเจกต์ Agents/Worker ขั้นต่ำและปรับใช้กับบัญชี Cloudflare ชั่วคราว จากนั้นรายงาน…
local-explorer
cloudflare
วิธีการเพิ่มผลิตภัณฑ์/ทรัพยากรไปยัง local explorer หรือ local API ใช้เมื่อกำลังใช้งาน local API ใหม่ หรือเส้นทาง UI ภายใต้…
open-pr
cloudflare
นำ issue จาก GitHub ของ cloudflare/agents และผลการจำลองซ้ำข้อบกพร่อง มาสร้าง PR แก้ไขในครั้งเดียว — สร้าง branch, แก้ไข, ทดสอบ, push, และเปิด PR ที่เชื่อมโยงกับ issue
write-endpoints
cloudflare
คู่มือฉบับสมบูรณ์สำหรับการสร้าง OpenAPI endpoints ด้วย chanfana - การกำหนด schema, การตรวจสอบคำขอ, การดำเนินการ CRUD, การรวมฐานข้อมูล D1 และ…
agents-sdk
cloudflare
สร้าง AI agent บน Cloudflare Workers โดยใช้ Agents SDK โหลดเมื่อสร้าง stateful agent, durable workflow, แอป WebSocket แบบเรียลไทม์, งานตามกำหนดเวลา,…
changelog
cloudflare
สร้าง อัปเดต และตรวจสอบรายการบันทึกการเปลี่ยนแปลงผลิตภัณฑ์สำหรับเว็บไซต์เอกสารของ Cloudflare โหลดเมื่อสร้างไฟล์ MDX บันทึกการเปลี่ยนแปลง แก้ไขไฟล์ที่มีอยู่…