termotion
A declarative terminal animation generator — describe a terminal scene in YAML, render deterministic WebM, MP4 or PNG sequences for stream overlays.
Why
“Be right back”, “starting soon” and “ending” scenes for a stream, as fake terminal sessions — written as code, versioned, and rendered identically every time.
How
- A six-crate workspace: schema, timeline, core, render, encode, CLI.
- A scene declares canvas, prompt, theme, font and cursor, then a timeline of typed actions —
write,command,pause,pause_random(seeded),backspace,clear, colored spans. Unknown fields are rejected; includes and variables are supported. - The timeline compiles into a timestamped program (
termotion inspectprints it). Rendering is CPU-only withcosmic-textfor shaping andtiny-skiafor rasterizing, checked by golden-frame tests. - Raw RGBA frames are piped into FFmpeg for VP9 WebM or H.264 MP4; PNG sequences need no external tools.
- It never executes the commands it draws.
termotion render brb.yaml --output brb.webm
$ git clone https://github.com/zombocoder/termotion← all projects