@athola/vhs-recording
skillGenerate terminal recordings using VHS tape files, produces GIF outputs.
apm::install
apm install @athola/vhs-recordingapm::skill.md
---
name: vhs-recording
description: Generate terminal recordings using VHS tape files, produces GIF outputs.
category: media-generation
tags:
- vhs
- terminal
- recording
- gif
- demo
- tutorial
tools:
- Read
- Write
- Bash
complexity: medium
estimated_tokens: 600
progressive_loading: true
modules:
- tape-syntax
- execution
---
# VHS Recording Skill
Generate professional terminal recordings from VHS tape files.
## When To Use
- Recording terminal sessions with VHS tape scripts
- Creating terminal demo recordings for documentation
## When NOT To Use
- Browser-based workflows - use scry:browser-recording instead
- Non-terminal demos or GUI applications
## Overview
VHS converts declarative tape files into animated GIFs of terminal sessions. Tape files define commands, timing, and terminal appearance.
## Required TodoWrite Items
```
- Locate and validate tape file
- Check VHS installation status
- Execute VHS recording
- Verify output GIF creation
```
## Module Reference
- See `modules/tape-syntax.md` for VHS tape file directives
- See `modules/execution.md` for recording workflow details
## Workflow
### Phase 1: Validate Tape File
1. Confirm tape file exists at specified path
2. Read tape file contents
3. Verify required directives:
- `Output` directive specifies GIF destination
- At least one action command (Type, Enter, etc.)
### Phase 2: Check VHS Installation
```bash
which vhs && vhs --version
```
If not installed:
```bash
# Linux/WSL
go install github.com/charmbracelet/vhs@latest
# macOS
brew install charmbracelet/tap/vhs
# Also requires ttyd and ffmpeg
```
### Phase 3: Execute Recording
```bash
vhs <tape-file.tape>
```
VHS will:
1. Parse tape file directives
2. Launch virtual terminal (ttyd)
3. Execute commands with timing
4. Capture frames
5. Encode to GIF using ffmpeg
### Phase 4: Verify Output
1. Check GIF file exists at Output path
2. Verify file size is non-zero
3. Report success with output location
## Exit Criteria
- GIF file created at specified Output path
- File size indicates successful recording (typically >50KB)
- No error messages from VHS execution
## Troubleshooting
### Common Issues
If `vhs` is not found, verify that your Go bin directory is in your `PATH` (typically `~/go/bin`). If the recording fails to start, ensure `ttyd` and `ffmpeg` are installed, as VHS depends on them for terminal emulation and video encoding. For "permission denied" errors when writing the GIF, check that the output directory exists and is writable.