Browser-native, instant.
WebAssembly runtimes inside the visitor’s tab. Algorithms, parsers, in-memory database operations. Startup in milliseconds to seconds.
Vivarium is a three-layer reproduction substrate. WebAssembly for milliseconds, Docker for fidelity, and a third layer for everything else. Problem first, technology second.
PRAGMA foreign_keys silently dropped under autocommit=False.
✕ UNREPRODUCED|fk_off ≠ fk_onConcurrent UPDATEs lose writes when a SELECT-then-UPDATE pattern omits row-level locks.
RUNNING — tx-1 ⨯ tx-2String#unicode_normalize edge case for combining diacritics in NFD form.
✓ REPRODUCED — bug reproduced// SHIPPED · 2026
// THREE-LAYER ARCHITECTURE
You never choose by hand — each recipe declares its own layer. The layers exist because no single runtime fits every bug.
WebAssembly runtimes inside the visitor’s tab. Algorithms, parsers, in-memory database operations. Startup in milliseconds to seconds.
Real filesystem, real processes, real network. Catalogue model: pinned Dockerfile + GHCR image. The visitor reproduces locally with one `docker run`.
Heisenbugs only. Vivarium pre-records the trace; the visitor replays. Burned-in GHCR images run on commodity Linux hosts — no PMU required.
// WHERE TO START
Five minutes, five hours, or five months — the path is different.
No install, no account. Click a recipe, watch the verdict resolve from pending.
OpenDrop a `.vivarium/manifest.toml` and the reusable workflow checks your verdicts on every push.
OpenThe `@aletheia-works/vivarium-mcp` server exposes four tools. List recipes, fetch verdicts, match an error string.
OpenScaffold a Layer 1 recipe directory and watch it appear in the gallery on the next deploy.
Open// SEE IT RUN
pandas, numpy, CPython, Ruby, PHP, Rust regex on Layer 1. PostgreSQL, bash, flock, find/xargs on Layer 2. coreutils sort race on Layer 3.