Sandbox templates

Pre-booted microVMs, tailored to the job.

Every Podflare sandbox starts from a warm snapshot — a full Firecracker VM frozen at a known-good state with your dependencies already resident in page cache. Pick the template closest to what your agent is about to do and skip the cold-start tax.

default

Default Python

managed

Minimal Python 3 microVM. The cheapest cold-start on the platform.

A stock Ubuntu 24.04 rootfs with Python 3.12 and the Podflare agent preinstalled. Boots from a warm snapshot in under 80 ms. Use it when your agent is writing short-lived Python and doesn't need any heavy third-party libraries up front — `pip install` still works from inside the sandbox, it just won't be instant the first time.

Code interpreterGeneral-purpose agentQuick scripts
Preinstalled
Python3.12Persistent REPL
Ubuntu24.04 LTSBase rootfs
podflare-agentlatestIn-guest vsock runner
from podflare import Sandbox

with Sandbox(template="default") as sbx:
    r = sbx.run_code("print(2 + 2)")
    print(r.stdout)  # '4'
template="default"Docs →

python-datasci

Python Data Science

specialized

pandas, numpy, scipy, matplotlib preloaded into the persistent REPL. First import is 0 ms.

Everything the default template has, plus the SciPy stack pre-imported into the warm-pool VM's Python interpreter. Because the snapshot captures memory (not just disk), `import pandas` returns instantly instead of spending ~600 ms resolving and loading the module graph. Ideal for LLM-generated data-analysis code that imports pandas on every single call.

Data analysisChartingML notebooksCSV / parquet crunching
Preinstalled
Python3.12Persistent REPL
pandas2.2.xDataFrame API
numpy1.26.xArray math
scipy1.13.xStats + optimization
matplotlib3.9.xPlotting (headless Agg)
from podflare import Sandbox

with Sandbox(template="python-datasci") as sbx:
    # pandas is already imported in the REPL — zero warm-up latency
    sbx.run_code("df = pd.read_csv('/data/sales.csv'); print(df.describe())")
template="python-datasci"Docs →

motion

Motion

specialized

Bun 1.1 + Node 20 + ffmpeg 7 + Remotion 4.0 + React 19, preinstalled with a flat node_modules. Sub-second TypeScript builds.

A TypeScript-first microVM purpose-built for agentic video generation pipelines (Remotion, Motion Canvas, headless ffmpeg). Bun is the package manager and script runner — it installs dramatically faster than npm and produces a flat `node_modules/` tree that plays nicely with microVM reflink rootfs. Node 20 is kept alongside so the runtime matches Remotion Lambda in production. A ready-to-reflink compile template ships at `/opt/qlaud/` with all dependencies already installed.

Agentic video pipelinesRemotion compile + renderffmpeg probe / muxTypeScript REPL
Preinstalled
Bun1.1.xPackage manager + TS runner
Node.js20.18.0Runtime parity with Remotion Lambda
ffmpeg7.xProbe / encode / mux
TypeScript5.6.3Type-check + transpile
esbuild0.24.0Bundle .tsx → ESM
React19.0.0Remotion composition runtime
Remotion4.0.451Renderer, transitions, fonts, player
zod3.23.8Composition prop schemas
/opt/qlaud/preinstalledReflink-source for per-session compiles
# Inside a motion sandbox. The template ships /opt/qlaud/ with Remotion
# and its entire dependency graph already installed — just reflink-copy it.
cd /tmp/session-abc && cp -r /opt/qlaud/. .
bun x tsc --noEmit -p tsconfig.json
bun x esbuild entry.tsx --bundle --format=esm \
  --external:react --external:react-dom --external:remotion \
  --target=es2022 --platform=browser --outfile=out.js
template="motion"Docs →

How templates actually work.

A template is a frozen Firecracker microVM. When you call Sandbox(template="…"), hostd restores from a pool of VMs that were booted, had their dependencies pre-warmed into RAM, and then snapshotted. You pay for no cold start, no pip install, no first-import latency.

Templates are hardware-isolated — each one is a separate KVM-backed VM, not a container. Your pandas heap cannot leak into someone else’s Node event loop.

  1. 1

    Build the rootfs

    scripts/build-rootfs.sh builds a shared ext4 with Python, Bun, Node, ffmpeg, and every preinstalled library.

  2. 2

    Pre-warm the template snapshot

    scripts/build-template-<name>.sh boots a VM from the base, pre-imports the template's hot modules, and snapshots the VM.

  3. 3

    hostd auto-discovers

    At startup, hostd reads /var/lib/podflare/templates/<name>/seed.{snap,mem} and spins up a warm pool for each one.

  4. 4

    Sandbox(template=…) hits the pool

    Your create() pops a pre-booted VM in ~80 ms. First import is 0 ms because the page cache is already warm.

Need a custom template?

Teams on the Scale tier get bespoke templates — Rust toolchains, CUDA-enabled Pythons, Chromium for browser automation, whatever your agent is doing on repeat. We bake it into a snapshot, add it to your org’s pool, and you stop paying cold-start latency forever.

Request a template →
Sandbox templates — Podflare — Podflare