home / media / vhs

VHS

Official · Charm
19k

CLI for scripting terminal recordings into GIF, video, screenshot, or text snapshot outputs with `.tape` files.

$brew install vhs
Language
Go
Stars
18,875
Category
Media & Video
Agent
AI Analysis

VHS is a terminal recording CLI built around .tape scripts that replay typed input and waits into rendered artifacts. It covers demo capture, terminal screenshots and videos, and text snapshot generation for testing.

What It Enables
  • Render scripted terminal demos into GIF, WebM, MP4, PNG frame, or screenshot outputs from a repeatable .tape file.
  • Record a live shell session into a starter tape, then edit or validate it before rerendering for docs, release notes, or tutorials.
  • Capture .txt or .ascii terminal snapshots for golden-file testing, or render remotely over SSH on a host that already has the needed commands installed.
Agent Fit
  • Tape files, stdin input, and validate make render runs deterministic enough for CI, doc-generation pipelines, and retryable agent workflows.
  • The automation surface is file-oriented rather than machine-readable: VHS emits media or text artifacts plus logs, with no JSON mode for downstream parsing.
  • Best fit when an agent needs to package or verify terminal behavior visually; it is much less useful as a live control layer for inspecting or mutating external systems.
Caveats
  • Rendering requires ttyd and ffmpeg on PATH, and the render host also needs the commands being demonstrated.
  • Tapes effectively script shell input, and publish uploads GIFs to vhs.charm.sh, so untrusted cassettes or automatic sharing need care.