vhs
VHS
Terminal recorder from Charm that creates GIFs/PNGs from scripted interactions.
Run
nix run nixpkgs#vhs -- <file>.tape
Tape File Syntax
Output output.gif # or .png, .mp4, .webm
Set Shell "bash"
Set FontSize 14
Set Width 1200
Set Height 600
Set Theme "Catppuccin Mocha"
Hide # Hide commands from output
Type "echo hello"
Enter
Sleep 1s
Show # Show commands again
Screenshot output.png # Capture current frame
Commands
| Command | Description |
|---|---|
Type "text" |
Type text |
Enter, Tab, Escape, Space |
Press key |
Ctrl+x, Alt+x |
Key combo |
Up, Down, Left, Right |
Arrow keys |
Sleep 1s |
Wait (ms, s) |
Screenshot file.png |
Capture frame |
Hide / Show |
Toggle visibility |
Settings
| Setting | Example |
|---|---|
Set Shell "bash" |
Shell to use |
Set FontSize 14 |
Font size |
Set Width 1200 |
Terminal width |
Set Height 600 |
Terminal height |
Set Theme "Catppuccin Mocha" |
Color theme |
Set Padding 20 |
Window padding |
Set WindowBar Colorful |
Window decorations |
Example: TUI Screenshot
Output screenshots/demo.png
Set Shell "bash"
Set FontSize 14
Set Width 1400
Set Height 800
Set Theme "Catppuccin Mocha"
Hide
Type "cd /path/to/project && my-tui-app"
Enter
Sleep 2s
Show
Ctrl+p
Sleep 1s
Screenshot screenshots/demo.png
Escape
Type "q"
Enter
List Themes
nix run nixpkgs#vhs -- themes
More from knoopx/pi
jujutsu
Manages version control with Jujutsu (jj), including rebasing, conflict resolution, and Git interop. Use when tracking changes, navigating history, squashing/splitting commits, or pushing to Git remotes.
117nix-flakes
Creates reproducible builds, manages flake inputs, defines devShells, and builds packages with flake.nix. Use when initializing Nix projects, locking dependencies, or running nix build/develop commands.
54scraping
Fetches web pages, parses HTML with CSS selectors, calls REST APIs, and scrapes dynamic content. Use when extracting data from websites, querying JSON APIs, or automating browser interactions.
48yt-dlp
Downloads videos from YouTube and other sites using yt-dlp. Use when downloading videos, extracting metadata, or batch downloading multiple files.
42nix
Runs packages temporarily, creates isolated shell environments, and evaluates Nix expressions. Use when executing tools without installing, debugging derivations, or working with nixpkgs.
42nh
Switches NixOS/Home Manager configurations, cleans old generations, and performs system maintenance. Use when running os/home switch, pruning the Nix store, or managing system generations.
35