First five minutes

// GUIDE · FIRST 5 MINUTES

Open the site, run a recipe, read the verdict.

The shortest path through Vivarium for someone arriving cold. No install, no account, no terminal — one browser tab.

// 0 · WHAT YOU'LL DO

Three steps.

01
Open the gallery.

Click "Reproductions" in the top nav, or jump straight to /repro/. Layer 1 (in-browser WebAssembly) recipes are listed there.

02
Pick a recipe and hit "Open".

A real upstream bug opens in a dedicated page. Pandas, NumPy, CPython, Ruby, PHP, or Rust regex — any one works.

03
Read the verdict.

The badge at the top settles from pending to either reproduced or unreproduced. "Reproduced = the bug still reproduces". That single sentence is enough to start.

The verdict literals point in a counter-intuitive direction; the verdict glossary entry explains why. A useful mental model: "reproduced is red, unreproduced is green."

// 1 · OPEN THE GALLERY

Every recipe satisfies the same Contract v1.

The reproduction gallery lists every recipe. Each card maps to one upstream bug and shows the project, issue number, layer, current verdict, and when that verdict was captured.

Facets filter the list: language (python / ruby / php / rust), symptom, severity, tag. To find a recipe by a concrete error message, use match an error to a recipe — it scores recipes by lexical overlap and returns ranked candidates.

// 2 · RUN A RECIPE

One click. The browser does the rest.

Walk through it once with cpython-137205 as the running example. Hitting "Open" on the card pops a new tab at the recipe's page.

On load the page fetches Pyodide (CPython compiled to WebAssembly) and pandas from the jsDelivr CDN. The verdict badge sits at pending with "Loading runtime…" while that happens.

Once loaded, the embedded reproduction script runs and the verdict settles. First load takes a few to a few-tens of seconds depending on connection and cache state; subsequent visits hit the CDN cache and open in milliseconds to a second.

Layer 1 means everything happens inside the browser — you don't need Python or pandas locally. The three-layer model is in architecture.

// 3 · READ THE VERDICT

Three values. reproduced / unreproduced / pending.

reproduced means the upstream bug still reproduces. unreproduced means it does not — typically because a newer runtime build resolved the issue, or because the conditions shifted. pending is the in-flight state while the script is running or the runtime is still loading.

Open the recipe and the verdict will settle to reproduced or unreproduced depending on what version of the upstream library the bundled WASM runtime currently ships. Underneath the badge you'll see the data the verdict was decided from — the recipe-specific values whose comparison is the verdict.

Why "reproduced / unreproduced" instead of "pass / fail": pass and fail flip meaning between teams. Vivarium pins the verb to one thing — did the bug reproduce. Spec: contract v1 verdict semantics.

// 4 · READ THE EVIDENCE

Not just the badge — the basis is on the same page.

Below the verdict badge sits an "Evidence" section bundling the reproduction script's run: stdout, stderr, exit code, duration in milliseconds. Contract v1 revision 2 makes the basis for a verdict readable on-page rather than buried in a separate file.

For a typical Python recipe, that includes the literal values whose mismatch is the bug, the boolean for whether they match, and the running library / interpreter versions — all serialised as JSON. That bundle is the evidence.

// 5 · WHERE TO GO NEXT

Entry points by intent.

01
Get the vocabulary straight.

The glossary (/guide/glossary) pins down every word Vivarium uses with a fixed meaning — recipe, verdict, evidence, Layer 1/2/3, manifest, contract.

02
Verify a branch fix.

The compare page (/repro/compare) accepts before/after verdict bundles and shows whether reproduced flipped to unreproduced. Built for verifying AI-agent-authored patches.

03
Declare a Vivarium reproduction in your repo.

The "Integrate with your own repo" guide (/guide/integrate-with-your-repo) walks through it end-to-end. Authoritative spec: Manifest v1 (/spec/manifest-v1).

04
Drive Vivarium from an AI agent.

The "Use Vivarium from your AI agent" guide (/guide/use-from-ai-agent) walks through Claude Code / Cursor / Cline / Continue setup with sample prompts for each MCP tool.

05
Understand why this project exists.

Read overview (/overview), architecture (/architecture), and roadmap (/roadmap) in that order to fix the skeleton in your head.

If any step on this page didn't work, that's a bug in getting-started — not a stylistic preference. Please file an issue.

// NEXT

Read the glossary

With something running in your head, five minutes on the glossary lets every other doc on this site read faster.

VIVARIUM is part of ALETHEIA-WORKS · See the source on GitHub →