---
name: "vhs"
section: "1"
platform: "linux"
package: "vhs"
version: "0.12.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/vhs"
---

# vhs(1)

Run a given tape file and generates its outputs.

## NAME

vhs - Run a given tape file and generates its outputs.

## SYNOPSIS

**vhs** \[*options...*\] \[*argument...*\]

## DESCRIPTION

VHS lets you write terminal GIFs as code.

VHS reads .tape files and renders GIFs (videos).

A tape file is a script made up of commands describing what actions to perform in the render.

The following is a list of all possible commands in VHS:

- •

  Output \<path\>.(gif\|webm\|mp4)

- •

  Require \<program\>

- •

  Set \<setting\> \<value\>

- •

  Sleep \<time\>

- •

  Type "\<string\>"

- •

  Ctrl \[+Alt\]\[+Shift\]+\<char\>

- •

  Backspace \[repeat\]

- •

  Delete \[repeat\]

- •

  Insert \[repeat\]

- •

  Down \[repeat\]

- •

  Enter \[repeat\]

- •

  Left \[repeat\]

- •

  Right \[repeat\]

- •

  Tab \[repeat\]

- •

  Up \[repeat\]

- •

  PageUp \[repeat\]

- •

  PageDown \[repeat\]

- •

  ScrollUp \[repeat\]

- •

  ScrollDown \[repeat\]

- •

  Hide

- •

  Show

- •

  Wait\[+Screen\]\[@\<timeout\>\] /\<regexp\>/

- •

  Escape

- •

  Alt+\<key\>

- •

  Space \[repeat\]

- •

  Source \<path\>.tape

- •

  Screenshot \<path\>.png

- •

  Copy "\<string\>"

- •

  Paste

## OPTIONS

- **-o, --output**

  file name(s) of video output

- **-p, --publish**

  publish your GIF to vhs.charm.sh and get a shareable URL

- **-q, --quiet**

  quiet do not log messages. If publish flag is provided, it will log shareable URL

## COMMANDS

- **help** \[command\]

  Help about any command

- **new** \<name\>

  Create a new tape file with example tape file contents and documentation

- **publish** \<gif\>

  Publish your GIF to vhs.charm.sh and get a shareable URL

- **record**

  Create a new tape file by recording your actions

- **OPTIONS**

  **-s, --shell** shell for recording

- **serve**

  Start the VHS SSH server

- **themes**

  List all the available themes, one per line

- **OPTIONS**

  **--markdown** output as markdown

- **validate** \<file\>...

  Validate a glob file path and parses all the files to ensure they are valid without running them.

## OUTPUT

The Output command instructs VHS where to save the output of the recording.

File names with the extension .gif, .webm, .mp4 will have the respective file types.

## SETTINGS

The Set command allows VHS to adjust settings in the terminal, such as fonts, dimensions, and themes.

The following is a list of all possible setting commands in VHS:

- •

  Set Shell \<string\>

- •

  Set FontSize \<number\>

- •

  Set FontFamily \<string\>

- •

  Set Height \<number\>

- •

  Set Width \<number\>

- •

  Set Rows \<number\>

- •

  Set Columns \<number\>

- •

  Set LetterSpacing \<float\>

- •

  Set LineHeight \<float\>

- •

  Set TypingSpeed \<time\>

- •

  Set Theme \<json\|string\>

- •

  Set Padding \<number\>

- •

  Set Framerate \<number\>

- •

  Set PlaybackSpeed \<float\>

- •

  Set WaitTimeout \<time\>

- •

  Set WaitPattern \<regexp\>

## BUGS

See GitHub Issues: \<https://github.com/charmbracelet/vhs/issues\>

## AUTHOR

Charm \<vt100@charm.sh\>

## COPYRIGHT

(C) 2021-2022 Charmbracelet, Inc.

Released under MIT license.
