Generate terminal GIFs from scripted tape files for CLI tool documentation and testing
VHS is a terminal recording tool that generates GIFs and videos from scripted "tape" files written in a domain-specific language. Instead of manually recording terminal sessions, developers write commands in .tape files that specify terminal dimensions, typing actions, key presses, and timing. VHS executes these scripts in a virtual terminal to produce reproducible demonstrations of CLI tools.
The tool supports multiple output formats including GIF, MP4, WebM, and PNG frame sequences. Tape files use commands like Type, Sleep, Enter, and Set to control terminal behavior, font settings, and recording parameters. VHS can record live terminal sessions with vhs record, generate tape files from user actions, and publish results to a sharing service.
VHS includes an SSH server mode that allows remote tape execution on a host machine, enabling teams to generate recordings without installing dependencies locally. The tool requires ttyd and ffmpeg as dependencies and supports various installation methods including Homebrew, system package managers, Docker, and Go installation. It targets developers creating documentation, integration tests, and demonstrations for CLI applications.
# via Homebrew
brew install vhs
# via Go
go install github.com/charmbracelet/vhs@latest
# via Docker
docker run --rm -v $PWD:/vhs ghcr.io/charmbracelet/vhs <cassette>.tape

