CLI Demo Generator
Turn a list of shell commands into polished animated terminal GIFs using VHS, ready to drop into your README.
Image & VideoIntermediate★ 1,323⑂ 212AI score 9/10Last updated: Aug 8, 2026
What it does
- Generates VHS tape files from the commands you supply and records them into animated GIFs.
- Configurable theme, font size, terminal dimensions, and title, with smart timing that gives
install/build/testcommands longer pauses. - Supports self-bootstrapping demos using
Hide/Showso cleanup and setup steps never appear in the final GIF. - Filters noisy progress output with regex, and works around VHS parser limits (no
$, escaped quotes, or backticks) via base64-encoded wrapper scripts. - Speeds up finished GIFs with gifsicle instead of re-recording, and extracts frames with ffmpeg so results can be visually verified.
- Batch mode builds many GIFs from a single YAML config; interactive mode records a live session via asciinema.
Who it's for
- Open-source maintainers who want animated demos in their README.
- Developers who re-record the same demo every release and need reproducible tape files.
- DevRel folks and technical writers documenting internal CLI tools.
- Anyone tired of re-shooting screen recordings because of one typo.
Examples
- Install demo:
-c "npm install my-package" -c "npm run build" -o demo.gifproduces a README-ready GIF in one command. - Always record from a clean state: add
--bootstrap "npm uninstall my-package 2>/dev/null" --speed 2to hide teardown steps and output a 2x-speed demo. - Batch build: define install / usage / advanced demos in
demos.yamland runbatch_generate.py demos.yaml --output-dir ./gifsto render them all at once.
· · · Install guide · · ·
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the cli-demo-generator folder from the GitHub repo daymade/claude-code-skills into my ~/.claude/skills/cli-demo-generator/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/daymade/claude-code-skills.git /tmp/claude-code-skills && cp -r /tmp/claude-code-skills/cli-demo-generator ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and install VHS:
brew install charmbracelet/tap/vhs(on Linux, grab the binary from GitHub Releases or use your package manager). - Install optional tools:
brew install gifsicle ffmpeg asciinemafor speed-ups, frame verification, and live recording. - For YAML batch configs, install PyYAML:
pip3 install pyyaml. - Clone the skill repository:
git clone https://github.com/daymade/claude-code-skills.git - Copy the skill folder into Claude Code:
mkdir -p ~/.claude/skills && cp -r claude-code-skills/cli-demo-generator ~/.claude/skills/ - Restart Claude Code and ask something like "record a GIF demo of my CLI" to trigger the skill.
- Confirm
demo.gifis produced; if text wraps, increase--widthor lower--font-size.
View source on GitHub ↗License: MIT