用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/juspay/skills --skill vhs命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use this when building a Bun (bun.lock) project with Nix. Covers bun2nix, the bun.nix dependency workflow, the bun --compile top-level-await pitfall, and a CI drift check.
Use this when setting up CI for a GitHub repository — offers GitHub Actions or Vira depending on the project
Use this when a flake's `nix develop` / `direnv allow` / `nix flake archive` is slow on a fresh checkout (the "first time takes 10 minutes" complaint). Diagnoses where the time actually lives and how to shrink the flake.lock input graph without changing build outputs.
基于 SOC 职业分类
正在显示 SKILL.md
| name | vhs |
| description | Techniques for creating deterministic terminal demo screencasts with VHS |
VHS records terminal sessions by scripting keystrokes in .tape files and rendering them as GIFs. Use Wait+Screen /regex/ to synchronize with interactive TUI elements instead of fragile fixed Sleep durations. VHS can only detect text appearing on screen, not disappearing — keep this constraint in mind when designing wait conditions.
When recording an LLM-powered TUI, detecting when a response is complete requires special care. Naive approaches all fail:
| Approach | Why it fails |
|---|---|
Fixed Sleep | Not deterministic |
Unique marker in prompt (XYZENDXYZ) | Appears in the typed prompt on screen — Wait+Screen matches immediately |
Math formula (347+829 → wait for 1176) | LLM computes the answer in its visible thinking trace before the response finishes |
Wait+Line /^MARKER$/ | TUI padding/borders prevent exact line matching |
Hide + type marker | Hide only hides VHS command log, not terminal content |
Ask the LLM to concatenate two words and print the result. The prompt contains both words separately but never the combined string:
Type "briefly explain this repo. Then print ALFA concatenated with BRAVO."
Enter
Wait+Screen /ALFABRAVO/
Why it works:
...ALFA concatenated with BRAVO — no ALFABRAVOALFABRAVOALFABRAVO — the only matchUse uncommon words (ALFA, BRAVO, ZULU) so the combined form can't appear accidentally.
ffmpeg -i demo.gif -vf "select='eq(n\,100)'" -vsync vfr /tmp/frame.png
flake.nix for the demo (e.g., doc/demo/flake.nix) so anyone can reproduce the recording with nix run.vhs "${./.}/demo.tape") — don't cd into the store, as it may contain a flake.nix that confuses nix run inside the recording.