Quick Start
Betamax currently supports macOS and Linux. Windows is not supported because the upstream
libghostty-vt-sys native build does not support Windows.
Install
Section titled “Install”Install the CLI with Homebrew from joshka/homebrew-tap. If Homebrew requires trusted taps, trust the formula first.
Rust users can install from crates.io with cargo-binstall.
GIF, PNG, screenshot, and state JSON outputs are written in process. MP4 and WebM output require
ffmpeg on PATH.
brew install joshka/tap/betamaxbrew trust --formula joshka/tap/betamaxcargo install cargo-binstallcargo binstall betamax# macOSbrew install ffmpeg
# Debian/Ubuntusudo apt-get updatesudo apt-get install ffmpegRepository Software
Section titled “Repository Software”The checked-in examples and development commands need Rust and Cargo from rustup, mise for the repository toolchain, pnpm for the documentation site, and ffmpeg only when rendering MP4 or WebM outputs.
The important non-Rust tool is Zig 0.15.2. Betamax uses the safe libghostty-vt Rust wrapper; its
libghostty-vt-sys dependency fetches a pinned Ghostty source commit and runs Zig to build the
native VT library. That Zig version is an upstream Ghostty build requirement until Ghostty supports
newer releases such as 0.16.
mise is the documented path because it is small and works across the repository today. Other
toolchain managers can work too, including Nix or a manually installed Zig 0.15.2 on
PATH. PRs that document another reproducible setup are welcome.
mise installpnpm installCreate A Tape
Section titled “Create A Tape”Create a starter tape, render it, and optionally append an extra
Output from the CLI without editing the tape.
The starter tape includes a compact command summary and writes demo.gif by default. The CLI output
path is appended as another Output command. It does
not replace outputs already in the tape.
betamax new demo.tapebetamax run demo.tapebetamax run demo.tape --output target/demo.pngValidate Tapes
Section titled “Validate Tapes”Validate one tape or a group of tapes without rendering.
Validation parses syntax and enforces command ordering. It does not start a shell, load a theme, run
Require checks, or write output files. Use
betamax run for a full execution check.
betamax validate demo.tapebetamax validate "examples/*.tape"List Themes
Section titled “List Themes”List theme names and use the exact value with
Set Theme "...".
See Themes And Styling for lookup behavior, layout settings, and frame decoration.
betamax themesbetamax themes --jsonbetamax themes --markdownRepository Examples
Section titled “Repository Examples”Clone the repository to render the checked-in examples.
Rendered outputs are written under examples/output and copied to target/betamax-examples for
local inspection. The Examples page explains what each tape demonstrates. The
Tape Reference documents every command and setting.
git clone https://github.com/joshka/betamaxcd betamaxmise installpnpm installmise run render-examples