vhs - Man Page
Run a given tape file and generates its outputs.
Examples (TL;DR)
- Create a tape file (add commands to the tape file using an editor):
vhs new path/to/file.tape
- Record inputs to a tape file (once done, exit the shell to create the tape):
vhs record > path/to/file.tape
- Record inputs to a tape file using a specific shell:
vhs record --shell shell > path/to/file.tape
- Validate the syntax of a tape file:
vhs validate path/to/file.tape
- Create a gif from a tape file:
vhs < path/to/file.tape
- Publish a gif to https://vhs.charm.sh and get a shareable URL:
vhs publish path/to/file.gif
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]
- 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 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.