Skip to content

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 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.

Terminal window
brew install joshka/tap/betamax
brew trust --formula joshka/tap/betamax
Terminal window
cargo install cargo-binstall
cargo binstall betamax
Terminal window
# macOS
brew install ffmpeg
# Debian/Ubuntu
sudo apt-get update
sudo apt-get install ffmpeg

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.

Terminal window
mise install
pnpm install

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.

Terminal window
betamax new demo.tape
betamax run demo.tape
betamax run demo.tape --output target/demo.png

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.

Terminal window
betamax validate demo.tape
betamax validate "examples/*.tape"

List theme names and use the exact value with Set Theme "...".

See Themes And Styling for lookup behavior, layout settings, and frame decoration.

Terminal window
betamax themes
betamax themes --json
betamax themes --markdown

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.

Terminal window
git clone https://github.com/joshka/betamax
cd betamax
mise install
pnpm install
mise run render-examples