There's a fundamental asymmetry in developer tooling: building something cool in the terminal is easy, but showing it to someone else is surprisingly hard. You can't just screenshot a terminal, the magic is in the motion, the typing, the output streaming in. Screen recordings are clunky, require manual setup, and the result is usually a 40MB MP4 that looks terrible on GitHub.
termreel closes this gap. You describe what you want to demo in plain English, "show me installing the package, running the help command, then executing a query", and AI generates a VHS tape file that scripts the entire recording. VHS (by Charmbracelet) is the actual recording engine; termreel wraps it with an AI layer that handles the tedious part: writing the tape syntax, picking themes, naming files.
The key insight is the refinement loop. The first AI-generated tape is rarely perfect, maybe the typing speed is wrong, or it's missing a pause before the output. So termreel drops you into an iterative cycle: describe what to change, AI updates the tape, re-records, repeat. If VHS fails to render (which happens), termreel automatically sends the error back to the AI for self-repair, up to 3 attempts. It's the kind of tight feedback loop that makes the difference between "neat prototype" and "tool I actually use."
The architecture is intentionally simple: TypeScript, Commander.js for the CLI, and a clean abstraction over Anthropic/OpenAI APIs. No framework overhead, no build complexity. Just a tool that does one thing well.
Built with
Links
Features
- Plain English to terminal demo, describe what you want, AI generates the VHS tape file
- Multi-format output, GIF, MP4, and WebM from a single recording session
- AI refinement loop, iteratively tweak the demo by describing changes in natural language
- Auto-error recovery, if VHS fails to render, the error is fed back to AI for self-repair (up to 3 attempts)
- 200+ built-in themes with live color previews and fuzzy search
- Dual AI provider support, Anthropic (Claude) and OpenAI (GPT) with persistent config
- Concurrent filename generation, AI names your file while you pick output options
Challenges
The hardest part was making the AI generate syntactically valid VHS tape files consistently. VHS has a specific DSL with commands like Type, Sleep, Enter, and Set, and LLMs love to hallucinate syntax. The solution was a combination of few-shot prompting with real tape examples, a theme placeholder system (so the AI never tries to generate theme values), and the auto-repair loop that catches rendering failures and feeds them back for correction.
What I learned
Building termreel taught me that the best developer tools are the ones that eliminate friction in workflows people didn't realize were painful. Nobody wakes up thinking "I need a better terminal recorder", but once you've used termreel, going back to manual screen recording feels like writing assembly. The AI refinement loop pattern (generate → test → describe fix → regenerate) is broadly applicable and something I'll use in future tools.