open source · apache-2.0

Compute for everything.

Sandboxes, apps, Postgres and functions on one microVM substrate — live in 49 ms.

$pip install pandastack
from pandastack import Sandbox

sb = Sandbox.create(template="code-interpreter")
out = sb.exec("echo 'hello from a microVM'")
print(out.stdout)

sb.kill()

runs every agent

Claude CodeCodexDevinOpenHandsSWE-agentLangChainCrewAIAutoGen
Claude CodeCodexDevinOpenHandsSWE-agentLangChainCrewAIAutoGen
Claude CodeCodexDevinOpenHandsSWE-agentLangChainCrewAIAutoGen
Claude CodeCodexDevinOpenHandsSWE-agentLangChainCrewAIAutoGen
49 msp50 microVM boot
64 msp99 microVM boot
~400 mssame-host fork
9.2 Gbpsguest network
16,384netns slots / host
2 MiBhugepage streaming
~34 spostgres 16, ready
per-secondmetered billing
Apache-2.0self-host anytime
49 msp50 microVM boot
64 msp99 microVM boot
~400 mssame-host fork
9.2 Gbpsguest network
16,384netns slots / host
2 MiBhugepage streaming
~34 spostgres 16, ready
per-secondmetered billing
Apache-2.0self-host anytime
49 msp50 microVM boot
64 msp99 microVM boot
~400 mssame-host fork
9.2 Gbpsguest network
16,384netns slots / host
2 MiBhugepage streaming
~34 spostgres 16, ready
per-secondmetered billing
Apache-2.0self-host anytime
49 msp50 microVM boot
64 msp99 microVM boot
~400 mssame-host fork
9.2 Gbpsguest network
16,384netns slots / host
2 MiBhugepage streaming
~34 spostgres 16, ready
per-secondmetered billing
Apache-2.0self-host anytime

Not just a codebox. Four primitives.

Sandboxes, app hosting, Postgres and functions — one Firecracker substrate, four ways to use it.

Sandboxes

docs

Kernel-isolated VMs. Created in 49 ms, forked into parallel universes.

git pushbuild · vmlive url

App hosting

docs

git push → built in a VM → live behind a stable URL.

postgres://…db.pandastack.ai · ready in ~34 s

Postgres 16

docs

A dedicated VM and durable volume per database. pgvector included.

*/5 * * * * → fn_3a90

Functions

docs

Deploy whole directories. Invoke over HTTP or on a cron.

One snapshot restore. Eight steps.

No warm pool. Every create walks the same hot path — scroll to replay it.

49ms
0 msp50 · production49 ms
01allocate natid slot+1 ms
02patch tap in netns+2 ms
03reflink rootfs.ext4+1 ms
04fork + exec firecracker+7 ms
05load memory snapshot+23 ms
06resume vcpus+2 ms
07probe tcp/22+11 ms
08persist sandbox row+2 ms

source: agent/internal/sandbox/manager.go

How fast is 49 ms?

A full Linux kernel, restored faster than your eyelid.

PandaStack microVM
49 ms
Human blink
300 ms
Container cold start
1.8 s
Serverless cold start
2.5 s
Traditional VM
30.0 s
log scale · measured in production, june 2026
min45 ms
p5049 ms
p9059 ms
p9964 ms

Pick a base. Ship in minutes.

Production-baked snapshots for every common agent stack. Or bring your own Dockerfile.

pandastack

Base

Ubuntu 24.04 + mise: Node 22, Python 3.12, Go, Bun. The apps runtime.

--template basedocs →
Popular

Code Interpreter

Python 3.11 + Node 22: pandas, numpy, jupyter, playwright, openai-agents.

--template code-interpreterdocs →
New

Coding Agent

claude, codex, opencode, amp, grok, gemini + copilot CLIs baked in. Pick one via API key.

--template agentdocs →
New

Claude Managed Agents

Run Anthropic's Claude Managed Agents — the ant worker executes tool calls in your microVMs.

--template claude-agentdocs →

Browser

Headless Chromium + Playwright + crawl4ai. Scrape, automate, extract.

--template browserdocs →

PostgreSQL 16

Managed Postgres 16 + pgvector + pgbouncer on a durable volume.

--template postgres-16docs →
BYOI

Custom build

Bring a Dockerfile or build script. We bake the snapshot.

--template custom

Spin up. Preview. Tear down.

Apps and managed Postgres aren't pets — they're built for the on-the-go, per-PR lifecycle. Open a pull request and PandaStack stands up a preview app and a throwaway database, hands you a live URL, scales to zero when idle, and tears the whole thing down on merge. No leftover infra, no idle bill.

# one PR, one disposable environment
  1. 01
    A PR openspush to a branch · or call the API
  2. 02
    App spins upbuilt in a fresh microVM, per-PR
  3. 03
    A throwaway Postgreson-the-go DB, scoped to this run
  4. 04
    Live preview URLisolated environment, real data
  5. 05
    Idle → scale-to-zerosnapshot + stop · stops billing
  6. 06
    Merge / closeapp + db torn down automatically
# why it works
On-the-go databases

Need a Postgres for one preview, one eval, or one agent run? Create it in seconds, connect over TLS, throw it away. Idle DBs scale to zero — the durable volume is preserved, the bill stops.

Per-PR preview apps

Every pull request gets its own isolated microVM and a stable URL. Reviewers click a link, not a runbook. It rebuilds on push and disappears on merge.

Nothing to clean up

Teardown is automatic on merge / close. Scale-to-zero handles the in-between. You never pay for an environment nobody is looking at.

spin up
seconds
idle
scale-to-0
teardown
automatic

Your host is a cache, not a hotel.

Committed memory is a ceiling, not a room held empty in your name. Each microVM's resident set breathes with real use — it grows while code runs, and the reclaim cycle hands the rest back to the host. Billing follows residency, so idle costs almost nothing.

idle reclaim

One idle VM's resident set dropped 3258 MB → 897 MB in 12.9 s — zswap compresses the cold tail ~50× on sparse pages.

memory storm

Under a 17.4 GiB burst, the host recovered 3.9 GB → 21.3 GB available in ~70 s. Zero VMs killed.

pay for the seconds you touch

A busy VM was billed 160 active CPU-seconds — not the 1240 a committed-basis meter would charge. Its idle neighbor: 2 CPU-seconds across 306 s. RAM bills on working set, never above commitment.

# one host · residency follows use
agent
build
zswap squeeze · ~50×
idle
woke on first request
app
cron
committedresidentzswap squeezeasleep · wakes on touch
host free
reclaim returns it

Ship on the millisecond cloud.

Free tier with $5.40/mo usage credit. No card. Apache-2.0.