universelab SCI · CLI · BIO

EXP-007 · active

DemoStage

// the demo is the source

DemoStage records a session as events, normalizes human imperfections into a clean demo.toml score, and compiles it to gif or mp4 — version-controlled, re-runnable and diffable.

Install
curl -fsSL https://get.univerlab.org/demostage | sh
Genesis · TERRA 2026 · Sol 169

Born building this very page.

Building this landing, every experiment needed a demo — and every tool (asciinema, vhs, OBS, recording by hand) came out brittle or ugly, with a fresh re-record for each typo. So the demo stopped being a video and became a file: events you can prune, pace and replay. DemoStage records the rest of the lab — including the page you are reading.

demo.cast
$ demo capture
  → demo.toml (8 steps) + demo.rec
$ demo focus main docs --scroll
  → terminal | docs — browser source composited in
$ demo record
  → demo.rec (clean humanized take)
$ demo export gif,mp4
  → dist/demo.gif  dist/demo.mp4
0:06
5 commands
  • 01capture — live capture: record the session, auto-normalize into a clean score and faithful .rec.
  • 02focus — switch the live view to one or two sources (terminal, repo page, docs, localhost) — full screen, split or stacked, composited into the demo.
  • 03record — re-execute demo.toml cleanly, producing a humanized recording.
  • 04export — pure playback: render to gif or mp4 (no re-execution, ffmpeg/chromium auto-provisioned).
  • 05edit — edit the timeline interactively; mark several steps and apply bulk changes.
FAQ

FAQ

What is DemoStage?
A tool for planning and recording multi-source demos — terminal, browser, and files in one scene. Not just screen recording: you configure typography, aspect ratio, fps, and terminal style. Output is optimized for web.
Can I re-record a demo if something changes?
Yes. `demostage capture` records events, not video. If the UX changes, re-capture and the demo updates deterministically — no need to manually re-record the whole thing.
How is DemoStage different from asciinema?
asciinema records raw terminal output. DemoStage records events, supports multiple sources (terminal + browser + files), normalizes imperfections, and compiles to gif/mp4. The source is a versionable TOML file.