# Skill Demonstrations This directory contains automated demonstrations of each skill using [VHS (Video Home System)](https://github.com/charmbracelet/vhs) by Charmbracelet. VHS allows you to write terminal recordings as code, making demos reproducible, version-controllable, and typo-free. ## 📁 Demo Structure ``` demos/ ├── skill-creator/ │ ├── init-skill.tape # Initialize a new skill │ ├── validate-skill.tape # Validate skill quality │ └── package-skill.tape # Package for distribution ├── github-ops/ │ └── create-pr.tape # Create pull requests ├── markdown-tools/ │ └── convert-docs.tape # Convert documents └── generate_all_demos.sh # Generate all GIFs ``` ## 🎬 Generating Demos ### Prerequisites Install VHS: **macOS:** ```bash brew install vhs ``` **Linux (with Go):** ```bash go install github.com/charmbracelet/vhs@latest ``` **Or download from:** https://github.com/charmbracelet/vhs/releases ### Generate All Demos ```bash ./generate_all_demos.sh ``` This will: 1. Find all `.tape` files 2. Generate corresponding `.gif` files 3. Report success/failure for each demo ### Generate a Specific Demo ```bash vhs < skill-creator/init-skill.tape ``` This creates `demos/skill-creator/init-skill.gif`. ## 📝 Creating New Demos ### VHS Tape File Format A `.tape` file consists of commands that VHS executes in a virtual terminal: ```tape # Output configuration Output demos/my-skill/my-demo.gif # Terminal settings Set FontSize 16 Set Width 1400 Set Height 700 Set Theme "Dracula" Set Padding 20 # Demo script Type "echo Hello World" Sleep 500ms Enter Sleep 2s ``` ### Common VHS Commands | Command | Description | Example | |---------|-------------|---------| | `Output` | Set output file path | `Output demos/skill/demo.gif` | | `Set FontSize` | Set terminal font size | `Set FontSize 18` | | `Set Width/Height` | Set terminal dimensions | `Set Width 1400` | | `Set Theme` | Set color theme | `Set Theme "Dracula"` | | `Type` | Type text | `Type "ls -la"` | | `Type@` | Type with custom speed | `Type@500ms "slow typing"` | | `Enter` | Press Enter key | `Enter` | | `Sleep` | Pause execution | `Sleep 2s` | | `Ctrl+C` | Send Ctrl+C | `Ctrl+C` | ### Demo Guidelines When creating new demos: 1. **Keep demos short** - Under 30 seconds ideally 2. **Use readable font size** - 16-18pt minimum 3. **Show realistic usage** - Practical, real-world examples 4. **Add brief comments** - Explain what's happening 5. **Use consistent theme** - Dracula theme recommended 6. **Test before committing** - Generate and review the GIF ### Example: Creating a New Demo 1. **Create the tape file:** ```bash touch demos/my-skill/my-workflow.tape ``` 2. **Write the demo script:** ```tape Output demos/my-skill/my-workflow.gif Set FontSize 16 Set Width 1400 Set Height 700 Set Theme "Dracula" Set Padding 20 Type "# My Skill Demo" Sleep 500ms Enter Sleep 1s Type "echo 'Step 1: Setup'" Sleep 500ms Enter Sleep 2s Type "echo 'Step 2: Execute'" Sleep 500ms Enter Sleep 2s ``` 3. **Generate the GIF:** ```bash vhs < demos/my-skill/my-workflow.tape ``` 4. **Review the output:** ```bash open demos/my-skill/my-workflow.gif # macOS xdg-open demos/my-skill/my-workflow.gif # Linux ``` ## 🎨 Themes VHS supports various themes. We use "Dracula" for consistency, but you can try: - `Dracula` (default) - `Nord` - `Monokai` - `Solarized Dark` - `Tokyo Night` ## 📚 Resources - **VHS Documentation**: https://github.com/charmbracelet/vhs - **VHS Examples**: https://github.com/charmbracelet/vhs/tree/main/examples - **Tape File Syntax**: https://github.com/charmbracelet/vhs/blob/main/syntax.md ## 🔧 Troubleshooting ### VHS not found Ensure VHS is in your PATH: ```bash which vhs ``` ### Permission denied Make the generation script executable: ```bash chmod +x generate_all_demos.sh ``` ### Demo generation fails Check the tape file syntax: ```bash vhs validate < demos/my-skill/my-demo.tape ``` ### GIF file too large Reduce dimensions or duration: ```tape Set Width 1200 # Smaller width Set Height 600 # Smaller height Sleep 1s # Shorter pauses ``` ## 📝 Adding Demos to README After generating demos, add them to the main README.md: ```markdown ### skill-creator - Skill Development Toolkit
Initialize Skill Demo
Guide for creating effective Claude Code skills... ``` --- **Pro Tip**: Demos are automatically regenerated by CI/CD when tape files change (coming soon!).