Roadmap
Betamax is useful today for GIFs, screenshots, video files, and terminal state snapshots. The main follow-up work is about fidelity, API shape, and long-term renderer direction.
Near-Term Areas
Section titled “Near-Term Areas”- Improve renderer fidelity around wide glyphs, combining marks, emoji, and fallback fonts. The current renderer is good enough for ordinary CLI output, but terminal UI tests will become more valuable as glyph edge cases get closer to real terminal behavior.
- Feed live terminal mode state into
libghostty-vt::key::Encoder. Key encoding works for common keys today, but richer mode-aware encoding would reduce fallback logic for applications that switch keypad or cursor modes. - Decide whether the library API should expose structured artifacts without writing files. The CLI naturally writes files. Library users may want final frames, state, and media bytes returned directly for tests or custom pipelines.
- Introduce mockable runtime boundaries if library-first testing becomes a core use case. The current public traits are enough for focused tests. A larger API should make PTY, capture, and output writing explicit without making normal CLI code harder to read.
- Add targeted benchmarks after renderer and state formats settle. Performance tests are useful once the format and renderer behavior stop moving quickly.
- Keep MP4/WebM on optional
ffmpegunless native encoding becomes worth the packaging cost. Native video encoding would remove a tool dependency but add platform and codec complexity. - Track upstream libghostty APIs for renderer frame capture. If Ghostty exposes an off-screen renderer path, Betamax should prefer that over maintaining a parallel Rust rasterizer long term.