Documentation Index
Fetch the complete documentation index at: https://docs.podflare.ai/llms.txt
Use this file to discover all available pages before exploring further.
TL;DR — One Podflare sandbox is a real Linux box. Root filesystem,
1–16 GB RAM, full internet,
pip install anything, persistent Python
REPL, sub-100 ms fork(), freeze-to-disk for later resume. Not a
container. Not a serverless function. A real VM your agent owns.The shape of one sandbox
| What you get | Per sandbox |
|---|---|
| Hardware isolation | Dedicated Podflare Pod microVM. Own kernel. Own page tables. Can’t see other tenants. |
| CPU | 2 vCPUs (configurable) |
| RAM | 1 GB default, up to 16 GB on Scale tier |
| Rootfs | 4 GB default, up to 64 GB on Scale tier. Writable. Ubuntu 24.04 minimal. |
| Network | Full outbound. DHCP-leased IP, NAT to public internet. No config. |
| Python REPL | Persistent across run_code calls. Variables, imports, open files all survive. |
| Bash | Same sandbox serves language="bash". Run any shell command. |
| Filesystem | Upload bytes in, download artifacts out. Mount tmpfs, write files, run git clone, build Docker images, you name it. |
| Lifecycle | create → unlimited run_code / fork / upload → close. Or freeze with persistent=True and resume later. |
| Latency | Create hits pool in ~187 ms p50 end-to-end (laptop → CF edge → nearest origin → VM → back, SDK 0.0.20). Hot run_code p50 is ~46 ms on the same connection. p95 stays under 210 ms, p99 under 240 ms — see vs E2B/Daytona/Blaxel for the full distribution. |
Real capabilities, real code
Every snippet below runs, end-to-end, today.1. Install any package you want
No allowlist. No proxy. Realpip with real internet.
npm, cargo, apt, whatever the base image has.
2. Call any external API
3. Persistent Python REPL
State carries acrossrun_code calls. This is the feature that
makes agent loops actually cheap — no re-parsing CSVs, no re-loading
models, no re-importing pandas on every tool call.
globals() persists.
4. Full filesystem — write files, run commands, keep artifacts
upload / download go over the control channel (fast, no egress
billing). git clone goes out to the internet directly.
5. fork() — tree-search without state hell
Snapshot the parent sandbox mid-flight, spawn N children each starting
from the parent’s exact state. Copy-on-write memory + reflinked rootfs
means a fork costs ~80 ms end-to-end with near-zero per-child memory
overhead.
6. Persistent Spaces — freeze now, resume later
A sandbox created withpersistent=True is frozen into a Space when
its idle timeout fires — memory, running processes, Python REPL state,
filesystem, all preserved on disk. Resume it later and pick up exactly
where you left off.
persistent=True.
7. Multi-region, automatically routed
api.podflare.ai is a Cloudflare Worker that geo-routes your requests
to the nearest region, with automatic failover on 5xx. SDK 0.0.20
defaults here. Or pin explicitly:
What a sandbox is not
- Not a container. Each sandbox is its own kernel, its own page tables, its own virtualized hardware. Container escapes don’t apply.
- Not a serverless function. No 15-second timeout, no cold-start
penalty per invocation. State persists across
run_codecalls; the VM stays alive for the idle / max-lifetime window you pick. - Not a shared REPL service. Each sandbox belongs to exactly one caller. Cross-tenant visibility at the network, memory, or filesystem layer is not possible by construction.
Tier caps (silent clamps, no errors)
If your API key’s tier doesn’t allow the value you requested, we silently clamp instead of erroring — your code still runs, just with the tier-appropriate ceiling. See pricing.| Capability | Free | Pro | Scale | Enterprise |
|---|---|---|---|---|
| Max RAM per sandbox | 1 GB | 4 GB | 16 GB | 64 GB |
| Max rootfs | 4 GB | 16 GB | 64 GB | 512 GB |
| Max idle timeout | 5 min | 30 min | 2 h | 24 h |
| Max sandbox lifetime | 30 min | 8 h | 24 h | 7 d |
| Concurrent sandboxes | 10 | 50 | 500 | 10 000 |
| Persistent Spaces | — | ✓ | ✓ | ✓ |
The minimum program
If all you want is to prove to yourself that the whole thing works:with block.
Related
Fork
Tree-search branching in ~80 ms
Persistent REPL
Why your variables survive across calls
Warm pool
How create() returns in 7 ms
Pricing
What tier unlocks what

