VHS

VHS (Charm VHS) is a tool for generating terminal GIFs and videos from a series of commands.

vhs executes terminal commands from the script, which is a security risk. For this reason, vhs diagram generation is only allowed when Asciidoctor is running in UNSAFE mode (safe mode 0). Attempts to use vhs in SAFE, SERVER, or SECURE modes will result in an error.

Example

[tape, format="gif"]
....
Set FontSize 14
Set Width 600
Set Height 400

Type "echo Hello World"
Enter
Sleep 500ms
....
vhs

Installation

  • Install the Go runtime

  • For standard vhs (GIF/MP4/WebM support): Run go install github.com/charmbracelet/vhs@latest

  • For SVG support: Run go install github.com/agentstation/vhs@latest

The SVG format requires the fork from agentstation/vhs, which adds SVG output support.

Supported Image Formats

  • GIF (default)

  • SVG (requires agentstation/vhs fork)

Attributes

Name Default value Description

vhs

vhs

The path to the vhs executable