h5i runs a team of AI agents such as Claude and Codex on the same task, sealed in their own sandboxes, then peer-reviews and verifies them and merges the one that passes. h5i-studio is the viewer that turns one of those runs into a live starship bridge: each agent is a crew member who reports in, seals a candidate, and speaks its actual reviews.
Your agent team isn't a table of rows. It's a crew with a story.
No install, no h5i, no repo — explore a bundled demo fleet (with replay):
npx @h5i/studio --demoThen point it at a real h5i repository:
npx @h5i/studio # the repo in the current directory
npx @h5i/studio -r ../project # another repoOr install it for repeated use:
npm i -g @h5i/studio
h5i-studio # opens the console in your browserRequirements: Node ≥ 18, and the h5i binary on PATH (not needed for --demo).
Every team carries a timestamped, append-only event log, so any operation can be replayed. Hit ◉ REPLAY and the room performs the run beat by beat — looping continuously — while a scrubber lets you play / pause, change speed (1–8×), or jump to any moment. Reconstruction is pure and client-side, so it works on live and demo data.
Render that replay to a shareable animated GIF from the CLI (in-process, no ffmpeg):
h5i-studio export <team> -o run.gif # in an h5i repo
h5i-studio export --demo nebula-auth # from the bundled fleet
h5i-studio export my-run --width 1200 --frame-ms 1800GIF export needs Playwright + Chromium once (npm i -D playwright && npx playwright install chromium) — kept out of the package's runtime deps so a normal install stays lean.
Fleet Command is a read-only lens over the real h5i CLI — no mock data, and it never advances a run's state:
| Shows | From |
|---|---|
| fleet, roster, phase, submissions, verifications | h5i team list / status / compare --json |
| diffs, summaries, test evidence | h5i team artifact show |
| the GO / NO-GO verdict | folded from the verdict / no_verdict events |
| reviews, grants, discussion, crew radio | events + h5i msg history |
A small Express server shells out to h5i and serves JSON; the React app renders it. The same API powers the dev server and the standalone h5i-studio binary, so live and demo data run identical code paths.
npm install
npm run dev # Vite HMR + live API in one process
npm run build && npm run serve # build the SPA, serve it + the API
npm test # parsers + event-fold + live API (no browser)
npm run test:e2e # Playwright DOM e2e + GIF export (optional)The bundled --demo fleet is what the end-to-end tests run against, so the demo stays correct.
