Use when running demo recordings, diagnosing recording failures, or regenerating GIFs from existing MP4s. Covers the Docker + VHS + ffmpeg pipeline. --- # VHS Demo Recording Use this skill to run, debug, or regenerate gh-infra demo GIF recordings. ## When To Use - Running `make demo` or `docs/tapes/vhs.sh` directly - Diagnosing why a recording failed or produced a 0-byte GIF - Regenerating GIFs from existing MP4s without re-recording - Understanding the recording pipeline ## Prerequisites - Docker must be running - Go toolchain (for cross-compiling the Linux binary) ## Pipeline ```text make demo 1. go build -o docs/tapes/.gh-infra (GOOS=linux GOARCH=amd64) 2. docs/tapes/vhs.sh a. docker build → gh-infra-vhs image (VHS + vim) b. For each *.tape in parallel: docker run --memory=1g --cpus=2 → produces .mp4 c. For each .mp4 sequentially: docker run jrottenberg/ffmpeg:7-alpine → produces .gif 3. Copy GIFs to docs/public/ 4. Clean up .gh-infra binary ``` ## Why MP4 → GIF Instead of Direct GIF VHS's built-in GIF output is unreliable when multiple containers run in parallel on macOS. The workaround is to output MP4 only from VHS, then convert to GIF via ffmpeg with high-quality settings (lanczos scaling, sierra2_4a dithering, 256 colors). ## Key Files | File | Role | |------|------| | `docs/tapes/vhs.sh` | Orchestrator: parallel recording + sequential GIF conversion | | `docs/tapes/Dockerfile` | `ghcr.io/charmbracelet/vhs` + vim | | `docs/tapes/*.tape` | VHS scenario files | | `docs/tapes/setup*.sh` | Per-demo setup scripts (mock data, gh wrapper) | | `docs/tapes/mock-gh` | Generic mock for `gh` CLI | | `docs/tapes/.gh-infra` | Cross-compiled Linux binary (ephemeral) | ## Output Locations - Raw recordings: `docs/tapes/*.mp4` and `docs/tapes/*.gif` - Published assets: `docs/public/demo*.gif` (copied by Makefile) ## Environment Variables `make demo` forwards `DEMO_ENV` variables into Docker via `-e` flags. Use this to pass environment overrides (e.g. `GH_INFRA_OUTPUT`) into
Skill files are scattered across GitHub and communities, difficult to search, and hard to evaluate. SkillWink organizes open-source skills into a searchable, filterable library you can directly download and use.
We provide keyword search, version updates, multi-metric ranking (downloads / likes / comments / updates), and open SKILL.md standards. You can also discuss usage and improvements on skill detail pages.
Sort by downloads/likes/comments/updated to find higher-quality skills.
4. Which import methods are supported?
Upload archive: .zip / .skill (recommended)
Upload skills folder
Import from GitHub repository
Note: file size for all methods should be within 10MB.
5. How to use in Claude / Codex?
Typical paths (may vary by local setup):
Claude Code:~/.claude/skills/
Codex CLI:~/.codex/skills/
One SKILL.md can usually be reused across tools.
6. Can one skill be shared across tools?
Yes. Most skills are standardized docs + assets, so they can be reused where format is supported.
Example: retrieval + writing + automation scripts as one workflow.
7. Are these skills safe to use?
Some skills come from public GitHub repositories and some are uploaded by SkillWink creators. Always review code before installing and own your security decisions.
8. Why does it not work after import?
Most common reasons:
Wrong folder path or nested one level too deep
Invalid/incomplete SKILL.md fields or format
Dependencies missing (Python/Node/CLI)
Tool has not reloaded skills yet
9. Does SkillWink include duplicates/low-quality skills?
We try to avoid that. Use ranking + comments to surface better skills: