Tangle vs Cloudflare Sandbox: which sandbox for coding agents?
Pick Cloudflare Sandbox when you already run on Workers and want microVM containers, in public beta for sandboxes, with the internet off by default and credentials kept in your Worker. Pick Tangle when you want coding agents installed in every sandbox and driven from a TypeScript or Python SDK, with one prompt call that returns the result, usage and cost.
Last checked November 10, 2026: each Cloudflare Sandbox fact links the page it came from, read that day.
Pick Cloudflare Sandbox when
- You already run on Workers: Cloudflare sandbox containers are reached only through your Worker. (developers.cloudflare.com/sandbox)
- You need egress closed by default: a Container starts with the internet off. (developers.cloudflare.com/sandbox/concepts/security)
- You need tokens kept out of the sandbox: your Worker holds them and adds them to requests. (developers.cloudflare.com/sandbox/network)
- You need Claude Code, Codex, OpenCode or Pi per task: Cloudflare documents a runner for each. (developers.cloudflare.com/sandbox/coding-agents)
Pick Tangle when
- You want Hermes, OpenClaw, Kimi Code or Prime Agent next to the agents you already use, installed in every sandbox. (tangle.tools)
- You drive sandboxes from your own app, not a Worker: Tangle has TypeScript and Python SDKs and the tangle CLI. (docs.tangle.tools/sandbox/sdk-python)
- One prompt call gives the agent its task and returns the result, token usage and cost. (docs.tangle.tools/sandbox/cloud-agents)
- A fleet runs many agents under one budget, set in dollars, and the platform refuses any charge past it. (docs.tangle.tools/sandbox/agents-fleet)
Cloudflare Sandbox and Tangle, row by row
| Feature | Cloudflare Sandbox | Tangle |
|---|---|---|
| Coding agents | Documented runners for Claude Code, Codex, OpenCode and Pi, plus Devin, Cursor and Claude Managed Agents templates (developers.cloudflare.com/sandbox/coding-agents) | Claude Code, Codex, OpenCode, Pi, Hermes, OpenClaw, Kimi Code and Prime Agent installed in every sandbox (tangle.tools) |
| Model calls | The Claude Code, Codex, OpenCode and Pi guides route model calls through AI Gateway, with your Worker adding the API token (developers.cloudflare.com/sandbox/coding-agents) | Tangle Router by default, billed to the same Tangle balance as the sandbox (docs.tangle.tools/sandbox/cloud-agents) |
| Isolation | Each Container instance is a microVM with its own kernel and network; Dynamic Workers isolate JavaScript, Python or WebAssembly; sandbox containers use a scheduling policy in public beta (developers.cloudflare.com/sandbox) | A container or a Firecracker microVM, chosen per sandbox (docs.tangle.tools/sandbox/security) |
| Stop and resume | An instance runs until it is stopped; its processes and disk end with it unless your app saves a snapshot (developers.cloudflare.com/sandbox/concepts/lifetime) | Timers you set stop a sandbox; a stopped sandbox keeps its files until you delete it or its delete timer passes (docs.tangle.tools/sandbox/migrate-e2b) |
| Snapshots and forks | Snapshots of the writable root filesystem (public beta); not memory or processes (developers.cloudflare.com/sandbox/concepts/lifetime) | Snapshot, revert, and split a running sandbox into copies (docs.tangle.tools/sandbox/snapshots) |
| Secrets | Credentials stay in your Worker, which adds them to outbound requests (developers.cloudflare.com/sandbox/network) | Stored once; you choose whether the sandbox can read a secret or only the network proxy can (docs.tangle.tools/sandbox/secrets) |
| Network | Internet access is off by default; only requests your Worker intercepts leave the Container (developers.cloudflare.com/sandbox/concepts/security) | Open, a strict allowlist, or blocked, changeable while the sandbox runs (docs.tangle.tools/sandbox/egress) |
| Getting a shell | A browser terminal connected over a WebSocket to a shell in a Linux sandbox (developers.cloudflare.com/sandbox/commands/open-a-terminal-in-the-browser) | SSH, a PTY or a browser terminal (docs.tangle.tools/sandbox/terminals) |
| Regions | Containers deploy to Region:Earth from a single wrangler deploy (developers.cloudflare.com/containers) | eu1 and us1 (tangle.tools/benchmarks) |
| SDKs | Orchestration code is TypeScript or JavaScript in a Worker (developers.cloudflare.com/containers) | TypeScript, Python (tangle-sandbox on PyPI) and the tangle CLI (docs.tangle.tools/sandbox/sdk-python) |
Start times: our measurements, their published claims
| Tangle, measured | p50 | p95 | Runs | Failed |
|---|---|---|---|---|
| New sandbox, ready to use | 1.5s | 12s | 393 | 56 of 425 |
| Create, then run a first command | 1.7s | 8s | 74 | 3 of 77 |
| Claude Code's first reply, from create | 3.4s | 12s | 45 | 3 of 48 |
| Codex's first reply, from create | 3.3s | 18s | 44 | 3 of 47 |
Production runs from 2026-11-02 to 2026-11-09, the same rows tangle.tools/benchmarks draws.
- For Dynamic Workers, Cloudflare lists the use case "Load prototypes, previews, and playgrounds in milliseconds." (developers.cloudflare.com/dynamic-workers)
These are different tests, and we have not run Cloudflare Sandbox through our benchmark.
Prices are on each pricing page
Tangle: plans and the rate card. Cloudflare Sandbox: developers.cloudflare.com/containers/pricing.