Към всички skills
demo-video
Generate demo assets (GIF/MP4) from real tmux E2E runs and viewer screenshots using asciinema and Playwright
Оригинален текст · няма потвърден превод на българскиПърво прочетете инструкцията.
Файлът се зарежда от посочения източник само по ваше действие. Можете да го прочетете тук, да го копирате или да го запазите като .md.
GitHub хранилище- Звезди на репото
- 3235
- Лиценз
- MIT
- Последна проверка на записа
- 22.09.2026 г.
Добавете в своя инструмент.
Командата отваря избора на skills от репозитория. Прочетете файла и условията на автора преди изпълнение.
npx skills add liaohch3/claude-tapСтраницата копира текст. Не инсталира и не изпълнява нищо на устройството ви.
Откъс от SKILL.md
Началото на файла на автора, без превод.
Skill: Demo Video Generation
Generate demo assets from a real tmux E2E run and viewer screenshots.
Proven Workflow
1) Record terminal session in tmux with asciinema
tmux new-session -d -s demo -x 160 -y 46
tmux send-keys -t demo "asciinema rec /tmp/claude-tap-recordings/demo.cast" Enter
tmux send-keys -t demo "cd /path/to/claude-tap && scripts/run_real_e2e_tmux.sh" Enter
# ... wait until run finishes ...
tmux send-keys -t demo "exit" Enter
Notes:
Enteris the submit key for Claude Code TUI in tmux.- Use tool-triggering first prompt text so trace includes
tool_use.
2) Convert .cast to GIF with agg
agg /tmp/claude-tap-recordings/demo.cast /tmp/claude-tap-recordings/demo.gif
3) Convert GIF to MP4 with ffmpeg
ffmpeg -y -i /tmp/claude-tap-recordings/demo.gif -movflags +faststart -pix_fmt yuv420p .agents/recordings/demo.mp4
Browser Screenshots (HTML Viewer)
Use Playwright CDP to attach to a running Chrome/Chromium instance on port 9222.
browser = playwright.chromium.connect_over_cdp("http://127.0.0.1:9222")
page = browser.contexts[0].pages[0]
Reliable UI interactions
- Click entries by visible text content, for example:
page.query_selector('text="轮次 22"').click()
- Open diff view by clicking button text:
page.query_selector('text="对比上次"').click()
- For SPA/overflow layouts, scroll actual scrollable containers (not
window):
page.evaluate("""
() => {
for (const el of document.querySelectorAll('*')) {
if (el.scrollHeight > el.clientHeight) {
el.scrollTop += 300;
}
}
}
""")
Output Targets
docs/demo.gif.agents/recordings/demo.mp4- Optional localized variants (
docs/demo_zh.gif,.agents/recordings/demo_zh.mp4)
Avoid
- Do not reference non-existent scripts such as
cast_to_gif_ultra.pyormake_final_demo_v2.py. - Do not hardcode selectors like
.detailunless verified in the current viewer build.