vhs-recording
Generates terminal recordings using VHS tape scripts and produces GIF outputs Skill: vhs-recording Owner: athola Summary: Generates terminal recordings using VHS tape scripts and produces GIF outputs Tags: latest:1.9.19 Version history: v1.9.19 | 2026-08-26T13:23:01.870Z | user Release v1.9.19 v1.9.17 | 2026-07-30T05:42:50.861Z | user Release v1.9.17 v1.9.16 | 2026-07-14T19:59:40.011Z | user Release v1.9.16 v1.9.14 | 2026-06-30T18:07:05.693Z | user Release v1.9.14 v1.9.13 | 2026-06-27T16:24:55
Rank
62
Safety
84
Downloads
1.6k
Updated
Oct 10, 2026
Version
1.9.19
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.6K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.9.19release · observed Aug 26, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17emme0e2m3cpf7k2jvp3a84984b8z9:nm-scry-vhs-recording- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scry-vhs-recording/snapshot"
Documentation
CLAWHUB
105,983 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: vhs-recording
description: Generates terminal recordings using VHS tape scripts and produces GIF outputs
version: 1.9.8
triggers:
- vhs
- terminal
- recording
- gif
- demo
- tutorial
- creating demo GIFs or documenting CLI workflows for tutorials
metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/scry", "emoji": "\ud83e\udd9e"}}
source: claude-night-market
source_plugin: scry
---
> **Night Market Skill** — ported from [claude-night-market/scry](https://github.com/athola/claude-night-market/tree/master/plugins/scry). For the full experience with agents, hooks, and commands, install the Claude Code plugin.
# 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._meta.json
{
"ownerId": "kn7d107jg9jv602h9ytsegydq184a42s",
"slug": "nm-scry-vhs-recording",
"version": "1.9.19",
"publishedAt": 1787750581870
}modules/execution.md
# VHS Execution Guide ## Pre-flight Checks ### VHS Installation ```bash # Check if installed which vhs # Check version vhs --version ``` ### Dependencies VHS requires: - **ttyd**: Terminal emulator for web - **ffmpeg**: Video/image encoding ```bash # Verify dependencies which ttyd ffmpeg ``` ### Installation ```bash # Go (recommended) go install github.com/charmbracelet/vhs@latest # macOS brew install charmbracelet/tap/vhs # Arch Linux yay -S vhs # Nix nix-env -iA nixpkgs.vhs ``` ### Tape File Validation Check tape file before execution: ```bash # Verify file exists test -f tape-file.tape && echo "Found" || echo "Missing" # Check for Output directive rg -q "^Output" tape-file.tape && echo "Has output" || echo "No output directive" # fallback: grep -q "^Output" tape-file.tape # Validate syntax (dry run) vhs validate tape-file.tape ``` ## Environment Setup ### Terminal Environment VHS creates an isolated terminal. Set environment variables in the tape: ```tape Set Env "HOME" "/home/user" Set Env "PATH" "/usr/local/bin:/usr/bin:/bin" Set Env "TERM" "xterm-256color" ``` ### Working Directory VHS runs from the directory containing the tape file. For different directories: ```tape Hide Type "cd /path/to/project" Enter Sleep 500ms Show ``` ## Running VHS ### Basic Execution ```bash vhs tape-file.tape ``` ### With Options ```bash # Publish to vhs.charm.sh (public) vhs tape-file.tape --publish # Output to specific location vhs tape-file.tape -o custom-output.gif ``` ### Batch Recording ```bash # Record all tape files for tape in *.tape; do vhs "$tape" done ``` ## Error Handling ### Common Issues **ttyd not found** ```bash # Install ttyd go install github.com/aspect-build/aspect-cli/pkg/ttyd@latest # Or via package manager ``` **ffmpeg errors** ```bash # validate ffmpeg is installed with required codecs ffmpeg -version ``` **Permission denied** ```bash # Check write permissions for output directory ls -la "$(dirname output.gif)" ``` **Empty output** - Verify commands produce visible output - Increase Sleep times after commands - Check terminal dimensions fit content ### Debug Mode ```bash # Verbose output VHS_DEBUG=1 vhs tape-file.tape ``` ## WSL2 Considerations ### Graphics Support VHS in WSL2 may require: - WSLg enabled (Windows 11+) - X server for older Windows 10 ### Path Handling Use Linux-style paths in tape files: ```tape # Correct Output /home/user/output.gif # Avoid Windows paths # Output C:\Users\... ``` ### Performance WSL2 disk I/O to Windows filesystem is slow. Keep tapes and outputs on Linux filesystem: ```bash # Good: Linux filesystem /home/user/recordings/ # Slow: Windows mount /mnt/c/Users/... ``` ### Font Availability Install fonts in WSL2: ```bash sudo apt install fonts-jetbrains-mono fc-cache -fv ``` ## Output Verification After recording: ```bash # Check file exists and has content ls -la output.gif # Verify file type file output.gif # Check dimensions (requires ImageMagick) id
modules/tape-syntax.md
# VHS Tape Syntax Reference ## Metadata Comments Custom metadata annotations for documentation integration: ```tape # @title: Command Demo # @description: Demonstrates the CLI workflow # @step: 1 # @docs-brief: Quick overview for documentation # @book-detail: Extended explanation for book chapters ``` ## Output Directive Specifies the output file path (required): ```tape Output demo.gif ``` Supported formats: `.gif`, `.mp4`, `.webm` ## Set Directives Configure terminal appearance and behavior: ```tape # Typography Set FontSize 14 Set FontFamily "JetBrains Mono" # Dimensions Set Width 1200 Set Height 600 # Appearance Set Theme "Dracula" Set Padding 20 Set Margin 10 Set MarginFill "#674EFF" Set BorderRadius 8 # Timing Set TypingSpeed 50ms Set Framerate 60 # Environment Set Env "TERM" "xterm-256color" Set Env "PS1" "$ " # Window Set Shell "bash" Set WindowBar Colorful Set WindowBarSize 40 ``` ## Action Commands ### Type Types text into the terminal: ```tape Type "echo 'Hello World'" Type@50ms "slower typing" ``` ### Enter Sends Enter key (execute command): ```tape Enter ``` ### Sleep Pause for duration: ```tape Sleep 500ms Sleep 2s ``` ### Key Combinations ```tape Ctrl+C Ctrl+D Ctrl+L Escape Tab Backspace Up Down Left Right Space ``` ### Screenshot Capture a still frame: ```tape Screenshot output.png ``` ### Hide/Show Control visibility of actions: ```tape Hide Type "secret setup commands" Enter Show ``` ## Best Practices ### Echo vs Commands **NEVER use `echo` to simulate or replace real command output.** Echo should only be used for: - Printing explanatory messages or headers - Simple text output demonstrations - Comments that need to appear in the terminal **ALWAYS prefer actual commands** that demonstrate functionality: ```tape # BAD: Simulating output with echo Type "echo 'tool-a, tool-b, tool-c'" Enter # GOOD: Using the actual command Type "my-cli --list-tools" Enter ``` If a command doesn't exist to show what you need, consider: 1. Adding a flag or subcommand to the CLI being demonstrated 2. Using the actual data source (file, API, etc.) 3. Rethinking what the demo should show **Rationale**: Tutorials should demonstrate real functionality. Echoing data teaches users nothing about the actual tool and may become stale as the tool evolves. ### MCP Tool Demonstrations When demonstrating MCP (Model Context Protocol) functionality, show how tools are used within the host environment (e.g., Claude Code) rather than calling CLI equivalents: ```tape # POOR: Using CLI instead of MCP Type "skrills metrics" # BETTER: Explain MCP tool usage Type "# In Claude Code, ask: 'Show me skill statistics'" Type "# Claude calls the skill-metrics MCP tool automatically" ``` ## Advanced Features ### Split Panes Create multi-pane layouts: ```tape Split Type@left "echo 'Left pane'" Enter@left Type@right "echo 'Right pane'" Enter@right ``` ### Source Include other tape files: ```tape Source common-setup.tape ``` ### R
skill-card.md
## Description: Generates terminal recordings using VHS tape scripts and produces GIF outputs. This skill is ready for commercial/non-commercial use. ## Publisher: [athola](https://clawhub.ai/user/athola) ### License/Terms of Use: MIT-0 ## Use Case: Developers and documentation authors use this skill to validate VHS tape files, run terminal recording workflows, and produce GIF demos for CLI documentation and tutorials. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: VHS tape files can execute terminal commands and include other Source files. Mitigation: Review each tape and included Source file before running it, and avoid untrusted tapes. Risk: Terminal recordings can expose secrets, environment values, or sensitive command output. Mitigation: Use disposable demo projects where practical and sanitize terminal output before sharing recordings. Risk: Using the publish option can make recordings public. Mitigation: Use --publish only for recordings that are intended to be publicly accessible. Risk: Mutable install examples can change the installed tool behavior over time. Mitigation: Review the toolchain before use and prefer pinned dependency versions for repeatable production workflows. ## Reference(s): - [ClawHub skill page](https://clawhub.ai/athola/skills/nm-scry-vhs-recording) - [Project homepage](https://github.com/athola/claude-night-market/tree/master/plugins/scry) - [VHS execution guide](modules/execution.md) - [VHS tape syntax reference](modules/tape-syntax.md) ## Skill Output: **Output Type(s):** [shell commands, guidance, files] **Output Format:** [Markdown guidance with bash and tape code blocks] **Output Parameters:** [1D] **Other Properties Related to Output:** [Produces or verifies GIF outputs from VHS tape execution when the required local tools are installed.] ## Skill Version(s): 1.9.19 (source: server release evidence; artifact frontmatter says 1.9.8) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/athola/skills/nm-scry-vhs-recording",
"sourceUrl": "https://clawhub.ai/athola/skills/nm-scry-vhs-recording",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T05:50:51.303Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scry-vhs-recording/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scry-vhs-recording/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T05:50:51.303Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.6K downloads",
"href": "https://clawhub.ai/athola/nm-scry-vhs-recording",
"sourceUrl": "https://clawhub.ai/athola/nm-scry-vhs-recording",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T05:50:51.303Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.9.19",
"href": "https://clawhub.ai/athola/nm-scry-vhs-recording",
"sourceUrl": "https://clawhub.ai/athola/nm-scry-vhs-recording",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-26T13:23:01.870Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scry-vhs-recording/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-athola-nm-scry-vhs-recording/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.9.19",
"description": "Release v1.9.19",
"href": "https://clawhub.ai/athola/nm-scry-vhs-recording",
"sourceUrl": "https://clawhub.ai/athola/nm-scry-vhs-recording",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-08-26T13:23:01.870Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
