Agent skill

Vhs Tape

by straubt1 in straubt1/tfx

Create a VHS .tape file for recording terminal GIF/MP4/WebM demos.

MITAuto-check passed

Install Vhs Tape

skills CLI
$ npx skills add straubt1/tfx --skill vhs-tape -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install straubt1/tfx vhs-tape --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/straubt1/tfx.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/vhs-tape .claude/skills/vhs-tape && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
vhs-tape
GitHub stars
110
Token cost
~2.1k tokens
SKILL.md length
357 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Create a VHS .tape file for recording terminal GIF/MP4/WebM demos.

  • Works in 10 steps: Put all Set commands first — they must… → Use Hide/Show for setup — hide shell… → Add Sleep after commands — give the… → …
  • The user wants to create a .tape file for VHS terminal recordings
  • SKILL.md covers File Structure Rule, Output & Require, Set Commands and Sleep, plus 14 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Vhs Tape is an agent skill from straubt1/tfx. Create a VHS .tape file for recording terminal GIF/MP4/WebM demos. Use when the user wants to create a .tape file for VHS terminal recordings.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: TFx is a standalone CLI for HCP Terraform and Terraform Enterprise. The licence is MIT.

When your agent uses it

  • The user wants to create a .tape file for VHS terminal recordings

Example prompts

  • “/vhs-tape”

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Put all Set commands first — they must precede any interaction commands.
  2. Use Hide/Show for setup — hide shell prompt changes, cd commands, env exports that clutter the demo.
  3. Add Sleep after commands — give the terminal time to render output before the next keystroke or the recording ends.
  4. Use Wait instead of long Sleep for commands with variable duration — Wait /\$\s/ waits for the prompt to return rather than guessing.
  5. Use Require to fail fast with a clear error if a dependency is missing.
  6. Multiple Output lines — produce GIF + MP4 in one run.
  7. Set LoopOffset — set to the percentage where the action starts so the loop feels natural, not jumping to a blank terminal.
  8. Set WindowBar "Colorful" — adds macOS window chrome; makes demos look polished in documentation.
  9. Type@speed modifiers — use slow typing for emphasis, fast for showing speed.
  10. Source for shared setup — put common Set blocks and Hide/Show setup in a shared tape for reuse.

What it can do on your machine

Read from SKILL.md and the folder at commit f7494e5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Vhs Tape loads about 2.1k tokens when it runs. Until then it costs about 38 tokens; SKILL.md has 357 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~38
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from straubt1/tfx at commit f7494e5, republished under its MIT licence (© straubt1). 357 words, ~2,055 tokens.

Download SKILL.mdSave it as .claude/skills/vhs-tape/SKILL.md (or your agent's skills folder).
name
vhs-tape
description
Create a VHS .tape file for recording terminal GIF/MP4/WebM demos. Use when the user wants to create a .tape file for VHS terminal recordings.

VHS .tape File Reference

VHS reads .tape files and renders them into terminal recordings (GIF, MP4, WebM, or PNG sequences). A tape file is a linear sequence of commands — no loops or conditionals.

File Structure Rule

Set commands MUST come before all interaction commands. Order within the Set block does not matter.


Output & Require

Output demo.gif          # GIF (most common)
Output demo.mp4          # MP4 video
Output demo.webm         # WebM video
Output frames/           # Directory for PNG frame sequence
Output demo.txt          # ASCII text (for testing)

Require echo             # Abort with clear error if program not in PATH
Require fzf

Multiple Output lines are allowed — VHS renders to all of them in one run.


Set Commands

Terminal Dimensions
Set Width  1200          # pixels (default: 1200)
Set Height 600           # pixels (default: 600)
Typography
Set FontSize      22                   # pt (default: 22)
Set FontFamily    "RobotoMono Nerd Font"  # must be installed on system
Set LetterSpacing 1                    # multiplier (default: 1.0)
Set LineHeight    1.2                  # multiplier (default: 1.0)
Shell
Set Shell "bash"         # bash, zsh, fish, etc.
Timing & Playback
Set TypingSpeed   50ms       # delay between typed chars (default: 50ms)
Set Framerate     60         # capture framerate (default: 50)
Set PlaybackSpeed 2          # output speed multiplier (0.5 = slow, 2.0 = fast)
Set LoopOffset    60.4       # % into GIF where looping restarts (avoids blank-terminal loop)
Set LoopOffset    20.99%     # same, with explicit %
Wait Behavior
Set WaitTimeout  15s         # how long Wait polls before failing (default: 15s)
Set WaitPattern  /regex/     # default pattern for bare Wait command
Theme
Set Theme "Catppuccin Mocha"    # named theme (350+ available; run `vhs themes` to list)
Set Theme "Dracula"
Set Theme "Nord"
Set Theme "TokyoNight"
Set Theme "One Dark"
Set Theme "Gruvbox Dark"
Set Theme "Rose Pine"

# Inline JSON custom theme:
Set Theme { "name": "Custom", "black": "#535178", "red": "#ef6487", "green": "#5eca89", "yellow": "#fdd877", "blue": "#65aef7", "purple": "#aa7ff0", "cyan": "#43c1be", "white": "#ffffff", "brightBlack": "#535178", "brightRed": "#ef6487", "brightGreen": "#5eca89", "brightYellow": "#fdd877", "brightBlue": "#65aef7", "brightPurple": "#aa7ff0", "brightCyan": "#43c1be", "brightWhite": "#ffffff", "background": "#29283b", "foreground": "#b3b0d6", "selectionBackground": "#3d3c58", "cursorColor": "#b3b0d6" }
Visual / Layout
Set Padding      50          # internal padding in pixels
Set Margin       20          # external border in pixels
Set MarginFill   "#6B50FF"   # margin area color (hex)
Set BorderRadius 10          # corner radius in pixels
Set CursorBlink  false       # cursor animation (default: true)
Window Bar (macOS-style chrome)
Set WindowBar         "Colorful"       # colored traffic-light buttons (recommended for docs)
Set WindowBar         "ColorfulRight"  # buttons on the right
Set WindowBar         "Rings"          # monochrome rings
Set WindowBar         "RingsRight"     # rings on the right
Set WindowBarSize     40               # height in pixels

Sleep

Sleep 1s          # 1 second
Sleep 500ms       # 500 milliseconds
Sleep .5          # 0.5 seconds
Sleep 1m          # 1 minute
Time Format Summary
FormatExampleMeaning
ms suffix500msMilliseconds
s suffix1.5sSeconds
m suffix1mMinutes
Decimal.50.5 seconds

Type

Type "hello world"             # type at global TypingSpeed
Type 'single quotes work'
Type `backticks work`

Type@500ms "slow emphasis"     # override speed for this command only
Type@10ms  "fast burst"

Key Press Commands

Syntax: <Key>[@duration] [count]

Enter                    # press Enter once
Enter 3                  # press Enter 3 times
Enter@100ms 3            # press 3 times with 100ms between each

Backspace
Backspace 2
Backspace@200ms 5

Delete
Delete 2

Insert
Tab
Tab 2

Space
Space 3

Escape

Up
Down
Left
Right
Up 2
Down@50ms 3

PageUp
PageDown
PageUp 2
PageDown@100ms 3

ScrollUp
ScrollDown
ScrollUp 2
ScrollDown@100ms 2

Modifier Key Commands

Ctrl+C
Ctrl+L
Ctrl+R
Ctrl+D
Ctrl+Z
Ctrl+A              # any letter
Ctrl+Left           # ctrl + arrow
Ctrl+Right
Ctrl+Up
Ctrl+Down

Alt+.
Alt+L
Alt+b
Alt+f

Shift+Enter
Shift+Tab

# Multiple modifiers:
Ctrl+Shift+Alt+C
Ctrl+Alt+Down

Wait

Blocks until a regex matches or the timeout expires. More reliable than guessing Sleep durations for commands with variable output time.

Wait                          # wait using WaitPattern setting
Wait /regex/                  # wait until regex matches current line
Wait+Line /regex/             # explicit: match current line
Wait+Screen /regex/           # match anywhere on screen buffer

Wait@5s /pattern/             # 5-second timeout override for this Wait
Wait+Screen@10s /done/

Polls every 10ms. Uses Go regex syntax.


Hide / Show

Hide setup boilerplate (prompt customization, cd, env exports) from the recording:

Hide
Type "export PS1='$ '"
Enter
Sleep 300ms
Type "cd /tmp/demo"
Enter
Sleep 300ms
Show
# Recording content starts here

Screenshot

Capture a single PNG frame at the current moment:

Screenshot examples/output.png

Clipboard

Copy "text to copy"    # copy to clipboard
Paste                  # paste clipboard contents into terminal

Environment Variables

Env HOME "/tmp/demo"
Env FOO  "bar"

Source

Include another tape file's commands inline:

Source setup.tape
Source common/header.tape

Comments

# This is a comment

Show full SKILL.md (176 more words)Show less

Best Practices

  1. Put all Set commands first — they must precede any interaction commands.
  2. Use Hide/Show for setup — hide shell prompt changes, cd commands, env exports that clutter the demo.
  3. Add Sleep after commands — give the terminal time to render output before the next keystroke or the recording ends.
  4. Use Wait instead of long Sleep for commands with variable duration — Wait /\$\s/ waits for the prompt to return rather than guessing.
  5. Use Require to fail fast with a clear error if a dependency is missing.
  6. Multiple Output lines — produce GIF + MP4 in one run.
  7. Set LoopOffset — set to the percentage where the action starts so the loop feels natural, not jumping to a blank terminal.
  8. Set WindowBar "Colorful" — adds macOS window chrome; makes demos look polished in documentation.
  9. Type@speed modifiers — use slow typing for emphasis, fast for showing speed.
  10. Source for shared setup — put common Set blocks and Hide/Show setup in a shared tape for reuse.

Complete Example

# tfx demo recording
Output demo/tfx-demo.gif
Output demo/tfx-demo.mp4

Require tfx

Set Shell        "zsh"
Set Width        1200
Set Height       600
Set FontSize     14
Set FontFamily   "RobotoMono Nerd Font"
Set Theme        "Catppuccin Mocha"
Set Padding      20
Set WindowBar    "Colorful"
Set BorderRadius 8
Set TypingSpeed  100ms
Set Framerate    60
Set WaitTimeout  30s
Sleep 1s
Type "./tfx tui"
Enter
Sleep 2s

# ============================================================
# RECORDING STARTS HERE
# ============================================================

CLI Reference

bash
vhs demo.tape              # execute a tape file
vhs new demo.tape          # create a starter tape file
vhs record > session.tape  # record a live terminal session to tape
vhs themes                 # list all 350+ available theme names
vhs manual                 # view the full manual

Task

Create a .tape file for: $ARGUMENTS

© straubt1, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/vhs-tape of straubt1/tfx.

Open the folder on GitHubat commit f7494e5

Compare with similar skills

Vhs Tape next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Vhs Tape compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vhs Tape this skillstraubt1/tfx110—~2.1kAutomated safety check: PassMIT
Terminal Gif Recordingsgooseworks-ai/goose-skills1.2k1 repos~1.1kAutomated safety check: PassMIT
Vhs Recordingathola/claude-night-market341—~662Automated safety check: PassMIT
Recordingcodewhale-hq/Codewhale41k—~540Automated safety check: PassMIT
Record Vhs Demobruin-data/bruin1.8k—~1.3kAutomated safety check: PassApache-2.0
Terminal Openeraffaan-m/ECC276k—~635Automated safety check: PassMIT

Similar skills

  • Terminal Gif Recordings

    gooseworks-ai/goose-skills

    Create polished terminal GIF recordings using VHS (Video Hardware Software) by Charmbracelet.

    1.2k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Vhs Recording

    athola/claude-night-market

    Generates terminal recordings using VHS tape scripts and produces GIF outputs.

    341 GitHub stars~662 tokensUpdated today
    Media & CreativeAuto-check passed
  • Recording

    codewhale-hq/Codewhale

    Capture screenshots on registered computers, record on macOS or HarmonyOS, and manage saved captures.

    41k GitHub stars~540 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Record Vhs Demo

    bruin-data/bruin

    Create, update, render, and visually verify polished Bruin CLI terminal demos with VHS.

    1.8k GitHub stars~1.3k tokensUpdated today
    DatabasesAuto-check passed
  • Terminal Opener

    affaan-m/ECC

    Open an executable and its argument array in a visible terminal window through a reusable, shell-free launch plan with dry-run, JSON, capability detection, detached fallback, and standalone recovery…

    276k GitHub stars~635 tokensUpdated today
    Marketing & SEOAuto-check passed
  • Gif Search

    NousResearch/hermes-agent

    Search/download GIFs from Tenor via curl + jq. An agent skill from NousResearch/hermes-agent.

    252k GitHub starsUsed in 1 repo~680 tokens
    Auto-check: notes

More from straubt1/tfx

  • Go Upgrade

    straubt1/tfx

    Upgrade macOS Go and all module dependencies in TFx via task go:upgrade, then verify build and tests.

    110 GitHub stars~914 tokensUpdated 1 mo ago
    Auto-check: notes
  • Reflection

    straubt1/tfx

    This skill should be used when the user says "reflection", "reflect on the changes", "reflect on this session", or asks to capture lessons learned from the current conversation.

    110 GitHub stars~793 tokensUpdated 1 mo ago
    Auto-check passed
  • Release

    straubt1/tfx

    Prepare and cut TFx semver releases (CHANGELOG, validation, tagging via Taskfile).

    110 GitHub stars~1.2k tokensUpdated 1 mo ago
    Auto-check passed
  • New Data Function

    straubt1/tfx

    Create a new function in the data/ package following project conventions

    110 GitHub stars~976 tokensUpdated 1 mo ago
    Auto-check passed

Questions about Vhs Tape

What does Vhs Tape do?

Create a VHS .tape file for recording terminal GIF/MP4/WebM demos. Vhs Tape is an agent skill from straubt1/tfx.tape file for recording terminal GIF/MP4/WebM demos.

When should I use Vhs Tape?

Vhs Tape fits situations like: the user wants to create a .tape file for VHS terminal recordings.

How do I install Vhs Tape in Claude Code?

Run `npx skills add straubt1/tfx --skill vhs-tape -a claude-code`. Or copy the skill folder (.claude/skills/vhs-tape in straubt1/tfx) into .claude/skills/vhs-tape in your project. Claude Code loads it when a task matches its description.

How do I install Vhs Tape in Codex?

Run `npx skills add straubt1/tfx --skill vhs-tape -a codex`. Or copy the skill folder (.claude/skills/vhs-tape in straubt1/tfx) into .agents/skills/vhs-tape in your project. Codex loads it when a task matches its description.

Can I use Vhs Tape in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add straubt1/tfx --skill vhs-tape -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vhs-tape, .gemini/skills/vhs-tape, .github/skills/vhs-tape and .opencode/skills/vhs-tape in your project.

What does Vhs Tape need to run?

SKILL.md names no scripts, command-line tools or credentials: Vhs Tape is instructions for the agent only.

Does Vhs Tape access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Vhs Tape safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Vhs Tape use?

Vhs Tape is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Vhs Tape use?

About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Vhs Tape?

Skills that share tags, products or a category with Vhs Tape: Terminal Gif Recordings (gooseworks-ai/goose-skills, 1.2k stars), Vhs Recording (athola/claude-night-market, 341 stars), Recording (codewhale-hq/Codewhale, 41k stars) and Record Vhs Demo (bruin-data/bruin, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vhs Tape?

straubt1 (a GitHub user) maintains it in straubt1/tfx, which has 110 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on August 28, 2026.

Source: straubt1/tfx on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.