gitmyhub

vhs

Go ★ 20k updated 1mo ago

Your CLI home video recorder 📼

VHS turns a simple script file into a polished, reproducible animated GIF or video of terminal commands, no manual screen recording needed.

Goffmpegttydsetup: easycomplexity 2/5

VHS is a tool for creating animated GIFs or video recordings of terminal sessions by writing a simple script — called a "tape file" — rather than manually screen-recording while you type. Instead of capturing a video in real time, you write out the sequence of actions you want (type this command, press Enter, wait two seconds) in a plain text file, then run VHS to produce a polished, repeatable GIF or video. This means your terminal demos are reproducible and version-controlled just like code.

A tape file looks like readable instructions: you specify the output filename, configure the terminal size and font, then list actions like typing a command, pressing a key, or pausing for effect. VHS drives a virtual terminal behind the scenes, executes those actions, and records the result using ffmpeg (a widely used video tool) and ttyd (a terminal-over-browser utility). The output can be a GIF, MP4, or WebM video, or even a sequence of PNG frames.

You would reach for VHS when you want to document a command-line tool with a GIF for a GitHub README, create consistent demos for a presentation, or run integration tests that verify what your terminal program actually displays. It can also run as an SSH server so you can use it remotely without installing dependencies locally. VHS is written in Go and installable via Homebrew, package managers, Docker, or a Go install command.

Where it fits