Token导航 LogoToken导航TokenDH.com
前端设计执行命令github未标认证来源可访问许可证需确认审计提醒

record-tui记录推

Agent Skill

record-tui 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

380

周安装

16

GitHub Stars

2

下载量

133
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:record-tui(记录推)
来源仓库:https://github.com/antjanus/skillbox
仓库路径:skills/record-tui
安装命令:
npx skills add https://github.com/antjanus/skillbox --skill record-tui
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/antjanus/skillbox --skill record-tui

简介

record-tui 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态和协作事项进行整理。
  • 通过 npx skills add 命令从指定仓库安装并使用该技能。
  • 安装前需确认权限范围、维护状态,以及是否会触发联网或文件读写。
  • 建议结合来源仓库和原始 README 核验具体功能和使用方式。

SKILL.md

Record TUI - Terminal Demo Recording with VHS

Overview

Record polished terminal demos using Charmbracelet VHS. VHS turns .tape scripts into GIFs, MP4s, and WebMs — reproducible, version-controlled, and CI-friendly.

Core principle: Write tape files as code, not as screen captures. Every demo should be reproducible from a single .tape file.

When to Use

Use this skill when:

  • Recording a demo GIF for a README or docs
  • Creating video walkthroughs of CLI/TUI applications
  • Setting up automated demo recording in CI/CD
  • Writing .tape files for VHS
  • Troubleshooting VHS output quality (choppy GIFs, wrong dimensions, timing issues)

Avoid when:

  • Recording non-terminal content (use screen capture tools instead)
  • One-off manual recordings where reproducibility doesn't matter (use asciinema)
  • The app has no terminal interface

Prerequisites

VHS requires two dependencies:

# macOS
brew install charmbracelet/tap/vhs ffmpeg ttyd

# Debian/Ubuntu
sudo apt install ffmpeg && sudo snap install ttyd --classic
go install github.com/charmbracelet/vhs@latest

Verify: vhs --version && ffmpeg -version && ttyd --version

Phase 1: Plan the Recording

Before writing a tape file, answer these questions:

  1. What are you recording? — The exact command to launch the app
  2. What interactions to show? — Key presses, navigation, typing sequences
  3. What's the target format? — GIF (README), MP4 (docs site), WebM (web)
  4. What dimensions? — Match your app's ideal viewport

Recommended dimensions by use case:

Use CaseWidthHeightFontSize
README GIF120060020
Docs/tutorial140080018
Social media120063022
Full TUI app160090016
Compact CLI demo80040020

Phase 2: Write the Tape File

Tape File Structure

Every tape file follows this order:

# 1. Output declaration
Output demo.gif

# 2. Requirements (optional)
Require my-app

# 3. Settings (MUST come before commands)
Set Shell "bash"
Set FontSize 20
Set Width 1200
Set Height 600
Set Theme "Catppuccin Frappe"
Set WindowBar Colorful
Set Padding 20
Set TypingSpeed 75ms

# 4. Hidden setup (optional)
Hide
Type "export TERM=xterm-256color"
Enter
Sleep 500ms
Ctrl+L
Show

# 5. Visible interactions
Type "my-app --demo"
Sleep 500ms
Enter
Sleep 2s

# 6. App interactions
Down Down Down
Enter
Sleep 1s
Type "hello world"
Enter
Sleep 3s

# 7. Hidden cleanup (optional)
Hide
Ctrl+c
Sleep 500ms

Essential Commands

CommandExamplePurpose
OutputOutput demo.gifSet output (gif/mp4/webm/ascii)
SetSet FontSize 20Configure settings
TypeType "hello"Emulate typing
Type@NmsType@100ms "slow"Type at specific speed
Enter/Tab/SpaceEnterKey presses
Up/Down/Left/RightDown 3Navigation (with repeat)
Ctrl+keyCtrl+cModifier combos
SleepSleep 2sPause (ms or s)
Wait+ScreenWait+Screen /ready/Wait for screen content
Hide/ShowHideControl recording visibility
ScreenshotScreenshot step1.pngCapture current frame
EnvEnv TERM "xterm-256color"Set env variable
SourceSource setup.tapeInclude another tape
RequireRequire nodeFail if not in PATH

For complete command details, settings, and timing guidelines, see Command Reference.

Phase 3: Smart Tape Generation

When asked to generate a tape file for a specific app, follow this process:

Step 1: Analyze the App

Read the app's code or help output to understand:

  • How it launches (command, flags, arguments)
  • Key interactions (what keys it responds to)
  • Visual states worth showing (menus, forms, results)

Step 2: Generate the Tape

Build the tape file showing the app's key features:

# Generate and preview
vhs validate demo.tape    # Check syntax
vhs demo.tape             # Record

Step 3: Iterate

Run the tape, review the output, adjust timing and interactions.

Useful iteration commands:

# Quick preview without saving
vhs demo.tape --output /dev/null

# Test specific section — use Source to split tapes
vhs section-test.tape

Available Templates

Use these as starting points — copy and customize:

  • Basic CLI Demo — Simple command + output recording
  • Interactive TUI Demo — Navigation, forms, keyboard interaction
  • Build-and-Run Demo — Hidden compilation, visible app usage
  • Multi-Panel TUI — Complex apps like lazygit, k9s
  • CI Golden File — ASCII output for regression testing
  • Composable Tapes — DRY settings with Source

For complete copy-paste templates, see Templates.

Phase 4: Optimize Output

Tune framerate, dimensions, and pacing so GIFs stay under 5 MB for README use. Quick summary:

  • Lower framerate to 15 and reduce dimensions if file too large
  • Sleep 500ms after typing, Sleep 2-3s after Enter, Sleep 3-5s on final frame
  • Post-process with gifsicle -O3 --lossy=80 if still over target

See Optimization Guide for target sizes, timing rules, and format decision tree.

Phase 5: CI/CD Integration

Automate recording with GitHub Actions so README demos stay current. ASCII output enables golden-file regression testing.

See CI Integration Guide for the GitHub Actions workflow, golden-file setup, and cost control tips.

Examples

Good: Well-Structured Tape File

# Clear output declaration
Output demo.gif

# Explicit dependency
Require gum

# All settings grouped at top
Set Shell "bash"
Set FontSize 20
Set Width 1200
Set Height 600
Set Theme "Catppuccin Frappe"
Set WindowBar Colorful
Set TypingSpeed 75ms
Set Padding 20

# Hidden setup — always Ctrl+L before Show to clear the screen
Hide
Type "export GLAMOUR_STYLE=dark"
Enter
Sleep 500ms
Ctrl+L
Show

# Deliberate pacing — viewer can follow
Type "gum choose 'Option A' 'Option B' 'Option C'"
Sleep 500ms
Enter
Sleep 1s

# Navigate with visible pauses
Down
Sleep 300ms
Down
Sleep 300ms
Enter
Sleep 2s

# Generous final pause for loop
Sleep 3s

Bad: Common Mistakes

# Missing Output declaration — VHS won't know where to save

# Settings scattered throughout (will error or be ignored)
Type "my-app"
Set FontSize 20
Enter
Set Theme "Dracula"

# No Sleep after Enter — output flashes by
Type "my-app run"
Enter
Type "my-app status"
Enter

# No final Sleep — GIF loops abruptly

# No Require — silently fails if app missing

Bad: TUI Recording Anti-Patterns

Output demo.gif
Set Width 600
Set Height 300
# Too small — TUI elements will be cramped and unreadable

Type "lazygit"
Enter
# No Sleep — app hasn't loaded yet, next keys arrive too early

Tab Tab Tab Tab Tab
# Rapid-fire navigation — viewer can't follow what's happening

Type "c"
Type "feat: add feature"
Enter
# No pauses between actions — looks like a blur

For a complete well-structured TUI example (lazygit, k9s), see Templates.

Quality Signals

A well-written tape file has these properties:

  • Output declared first, settings grouped before commands — structure follows the required order
  • Require checks for dependencies — fails fast instead of producing broken output
  • Hidden setup with Ctrl+L before Show — clean screen, no shell noise visible
  • Deliberate pacingSleep 500ms after typing, Sleep 2-3s after Enter, Sleep 3-5s on final frame
  • GIF under 5MB for README use — reduced via framerate, dimensions, or gifsicle post-processing
  • Reproducible from the tape file alone — no manual steps required

Troubleshooting

Problem: GIF is choppy or laggy

Cause: Framerate too high for GIF format, or file too large for viewer.

Solution:

Set Framerate 15            # Lower from default 30
Set PlaybackSpeed 1.0       # Don't speed up

If still choppy, reduce dimensions or switch to MP4.

Problem: TUI doesn't render correctly

Cause: Missing TERM variable, wrong shell, or app needs specific setup.

Solution:

Hide
Env TERM "xterm-256color"
Type "stty rows 50 cols 120"
Enter
Sleep 500ms
Ctrl+L
Show

Problem: Keys arrive before app is ready

Cause: No Sleep after launching the app — VHS sends keystrokes immediately.

Solution: Always add Sleep 1-3s after launching a TUI app:

Type "my-tui"
Enter
Sleep 2s          # Wait for app to initialize
Down              # Now safe to interact

For apps with variable startup time, use Wait:

Type "my-tui"
Enter
Wait+Screen /ready/    # Wait until "ready" appears on screen
Down

Problem: VHS command not found

Cause: Missing VHS, ffmpeg, or ttyd.

Solution:

# macOS
brew install charmbracelet/tap/vhs ffmpeg ttyd

# Verify all three
vhs --version && ffmpeg -version && ttyd --version

Problem: GIF too large for GitHub

Cause: High resolution, long recording, or high framerate.

Solution:

  1. Reduce dimensions: Set Width 800 / Set Height 400
  2. Lower framerate: Set Framerate 15
  3. Speed up slow sections: Set PlaybackSpeed 1.5
  4. Post-process: gifsicle -O3 --lossy=80 demo.gif -o demo-small.gif
  5. If still too large, use MP4 and embed with <video> tag

Integration

This skill pairs with:

  • build-tui — Record demos of TUIs you build
  • git-worktree — Test recordings across branches
  • track-session — Track recording iteration progress

Useful alongside:

Quick Reference

vhs validate demo.tape            # Check syntax
vhs demo.tape                     # Record
vhs demo.tape --output custom.gif # Custom output path
vhs themes                        # List available themes
vhs new demo.tape                 # Create tape from template

Key commands cheat sheet:

CommandPurpose
Output file.gifSet output file and format
Require appFail if dependency missing
Set Key ValueConfigure terminal settings
Type "text"Emulate typing
Type@100ms "text"Type at specific speed
Enter / Tab / SpaceKey presses
Up / Down / Left / RightNavigation
Ctrl+cModifier key combos
Sleep 2sPause execution
Wait+Screen /regex/Wait for screen content
Hide / ShowControl recording visibility
Screenshot file.pngCapture current frame
Env VAR "val"Set environment variable
Source other.tapeInclude another tape file

Deep Reference

For detailed guides, load these files when needed:

*Only load these when specifically needed to save context.*

References

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.88%
按下载量换算48

Claude

28.95%
按下载量换算39

Cursor

18.75%
按下载量换算25

Gemini CLI

10.29%
按下载量换算14

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/antjanus/skillbox --skill record-tui 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills