agent/skills/tools/vhs/SKILL.md
Creates terminal screenshots and GIFs using VHS tape files. Use when automating terminal recordings, capturing TUI screenshots, or generating demo GIFs.
npx skillsauth add knoopx/pi vhsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Terminal recorder from Charm that creates GIFs, PNGs, MP4s, and WebMs from scripted "tape" files. Run via nix run nixpkgs#vhs -- <file>.tape.
A tape file is a sequence of commands that describe terminal interactions:
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 typed commands from output
Type "echo hello"
Enter
Sleep 1s
Show # Show commands again
Type "text" — type text into the terminalEnter, Tab, Escape, Space — press keysCtrl+x, Alt+x — key combinationsUp, Down, Left, Right — arrow keysSleep 1s — wait (supports ms and s units)Screenshot file.png — capture the current frame| Setting | Example | Purpose |
| ------------------------------ | ----------------- | ----------------------- |
| Set Shell "bash" | Set Shell "zsh" | Which shell to use |
| Set FontSize 14 | Set Width 1200 | Terminal dimensions |
| Set Theme "Catppuccin Mocha" | Set Padding 20 | Color theme and padding |
| Set WindowBar Colorful | — | Window decorations |
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
Hide/Show to control whether typed commands appear in the outputSleep timing is critical — give apps time to render before capturingnix run nixpkgs#vhs -- themestools
Inform the user what is happening — skip passive lookups
development
Renders markdown to self-contained HTML with a custom dark stylesheet and opens in browser. Use when previewing markdown documents, generating styled HTML from README or report files.
testing
Programmatic hunk selection for Jujutsu — split, commit, or squash specific hunks without interactive prompts. Use when making partial commits or selective squashes.
content-media
Manage version control with Jujutsu (jj) — no staging area, immediate changes, smart rebasing. Use when navigating history, squashing, or pushing to Git remotes.