Tools/charmbracelet/vhs

vhs

Your CLI home video recorder ๐Ÿ“ผ

20.3k โ˜…growthGo

The Lens

VHS makes terminal GIFs reproducible. Instead of screen-recording your CLI demo and hoping you nail every keystroke, you write a .tape file that scripts the whole session: what gets typed, how long to pause, font size, theme, window dimensions. Run the tape and get a pixel-identical GIF, MP4, or WebM every time. Built by Charm, the team behind Bubble Tea and Gum, and completely free under MIT.

Setup is a brew install plus two dependencies, ttyd and ffmpeg, on your PATH. Their Docker image bundles everything if you would rather skip that. The real win is CI: the companion vhs-action regenerates your README GIFs on every release, so your demo never shows a three-versions-old interface. Tape files live in git next to your code and get reviewed like everything else.

Anyone shipping a CLI tool should use this. Solo, small team, enterprise: same answer. It is free and there is nothing to pay for.

The catch is scope. VHS renders scripted tapes, it does not capture live sessions. Recording a real working session as it happens is a job for asciinema, not this one.

Free vs Self-Hosted vs Paid

fully free

Free: Everything. VHS is MIT licensed with no commercial product behind it. All output formats (GIF, MP4, WebM, PNG frames), all tape commands, and the vhs-action CI integration are free.

Self-hosted: Nothing to host. It is a local CLI. The only setup cost is installing ttyd and ffmpeg alongside it, or using the Docker image that bundles both.

Paid: Does not exist. Charm sells nothing here.

Completely free. No paid tier, no cloud offering, nothing gated.

Self-hosting ops:trivial

Get tools like this every Wednesday

One featured tool, three on the radar. No fluff.

Score
55/100 ยท C+
Adoption25/30
Maintenance10/25
Community5/20
License5/15
Analysis10/10

A low score is not a verdict on quality. Young and niche tools start low by design. How we calculate scores

About

Owner
charmbracelet (Organization)
Stars
20,343
Forks
443

Explore Further

More tools in the directory