examples
$
npx mdskill add cloudflare/sandbox-sdk/examplesManages examples directory and Docker dev workflows for SDK projects
- Runs and tests SDK examples using wrangler dev and Docker
- Relies on Docker, Wrangler CLI, and project SDK components
- Analyzes example requirements and Dockerfile configurations
- Provides build instructions and runtime guidance for developers
SKILL.md
.github/skills/examplesView on GitHub ↗
--- name: examples description: Use when working in the examples/ directory, running an example with wrangler dev, adding a new example, or answering questions about EXPOSE directives and the local Docker dev loop. (project) --- # Examples The `examples/` directory contains working sample apps that exercise the SDK end-to-end. They double as integration smoke tests and as reference material for users. ## Running an Example From inside an example directory (e.g. `examples/minimal/`): ```bash npm run dev # Start wrangler dev (builds Docker on first run) ``` The first run builds the container image, so it's slow. Subsequent runs reuse the image unless the SDK or Dockerfile changes. If you've changed the container runtime or SDK, run `npm run docker:rebuild` from the repo root before `npm run dev`. ## Available Examples | Example | Demonstrates | | ---------------------------- | -------------------------------------------- | | `minimal` | Smallest possible Sandbox SDK setup | | `authentication` | Auth-protected sandbox access | | `claude-code` | Running Claude Code inside a sandbox | | `code-interpreter` | `CodeInterpreter` API + Workers AI | | `codex` / `codex-app-server` | OpenAI Codex integration patterns | | `collaborative-terminal` | Multi-user terminal sharing | | `openai-agents` | OpenAI Agents SDK + Sandbox | | `opencode` | OpenCode integration | | `time-machine` | Snapshot/restore patterns | | `typescript-validator` | Running `tsc` against user code | | `vite-sandbox` | Vite dev server proxied through preview URLs | | `websocket-tunnel` | WebSocket transport / port exposure | | `alpine` | Alpine-based container variant | ## `EXPOSE` Directives The Cloudflare containers primitive does **not** require `EXPOSE` directives — all ports are accessible in both local dev and production without them. Including `EXPOSE` is still recommended in example Dockerfiles because it documents which ports the app uses (standard Docker convention). Don't add it expecting it to gate access; add it as documentation. ## Adding a New Example 1. Copy `examples/minimal/` as a starting point. 2. Update `package.json` `name` and any wrangler config (`wrangler.jsonc`) — class names, DO bindings, container image tag. 3. Add a `README.md` with an `# H1` title (the README scanner uses it) and a short description of what the example demonstrates. 4. Make sure the example builds and `npm run dev` works from a clean checkout. 5. If the example demonstrates a new SDK capability, link to it from `packages/sandbox/README.md`. ## Local Development Tips - Examples link to `@cloudflare/sandbox` via the workspace, so SDK changes are picked up after a build (`npm run build` from repo root). - Container changes require `npm run docker:rebuild` to take effect. - If you hit stale-image issues, delete the container image (`docker images | grep sandbox`) and re-run `npm run dev`.