VHS is a CLI tool that records terminal sessions and converts them into GIFs by executing commands defined in a declarative tape file format.
The tool solves the problem of creating terminal recordings for documentation, demos, and integration testing without manual screen recording. It works by reading a `.tape` file containing a series of commands that describe interactions with a virtual terminal—such as typing, waiting, and executing shell commands—then renders those interactions as an animated GIF. VHS can also record tape files directly from live terminal sessions, allowing users to capture their actions and then refine the generated tape file before rendering.
Teams building CLI tools should consider VHS when they need reproducible, version-controlled terminal recordings for showcasing features or testing command-line interfaces. The approach of defining recordings as code makes them easy to maintain, review, and integrate into documentation workflows. The tool requires ttyd and ffmpeg as dependencies. VHS also offers a publishing feature to host generated GIFs on its servers for sharing, and includes an SSH server mode for self-hosted deployments where the server can access commands and applications on the host machine.
The project maintains active development with regular updates to its codebase. The maintainers respond to issues and pull requests, indicating ongoing engagement with the user community. The tool is written in Go and distributed across multiple platforms through various installation methods including package managers, Docker, and direct binary downloads.