GIFs And Screenshots
Generate README demos, release-note animations, final-frame PNGs, and checkpoint screenshots.
Rust-first terminal capture
VHS-style GIFs, screenshots, videos, and terminal snapshots without a browser, terminal server, xterm.js, or ttyd process.

Betamax reads tape files, runs commands in a real PTY, feeds terminal output through
libghostty-vt, rasterizes frames in process with cosmic-text and swash, and writes artifacts
for documentation or tests.
GIFs And Screenshots
Generate README demos, release-note animations, final-frame PNGs, and checkpoint screenshots.
Terminal Testing
Wait for text, capture terminal state, and compare viewport, scrollback, and style spans in snapshot tests.
Ghostty-Based Parsing
Terminal output is interpreted by libghostty-vt, with copied Ghostty themes available by name.
Small Architecture
No xterm.js, no browser, no terminal server, no ttyd process. MP4 and WebM use ffmpeg only
for video encoding.
Betamax is intentionally small because it relies on focused upstream projects for terminal parsing, text shaping, PTY execution, and documentation.
The tape authoring model that Betamax follows for demos and examples.
GhosttyThe terminal project behind the parser and theme vocabulary Betamax uses.
libghostty-vtInterprets terminal output in process, without launching a browser terminal.
cosmic-textShapes text before Betamax rasterizes terminal frames.
swashRasterizes glyphs for the current Rust renderer path.
portable-ptyRuns real shells and interactive CLIs in a cross-platform PTY.
FFmpegEncodes MP4 and WebM while GIF, PNG, and JSON stay in process.
Astro StarlightPowers this documentation site.
Output examples/output/basic.gifOutput examples/output/basic.state.json
Set Theme "Aardvark Blue"Set FontSize 28Set Width 900Set Height 480Set WindowBar Colorful
HideType "cargo build --quiet"EnterWaitShow
Type "printf 'hello from betamax\n'"EnterWait+Screen "hello from betamax"Screenshot examples/output/checkpoint.pngHide and Show keep setup work out of the rendered output, while waits make tapes stable when
programs do real work.
betamax new, betamax run, validation, and
theme listing.