SuperAPI AI 工具集

record-tui

测试与质量

查看项目

更新于 10-15 19:56

技能介绍

用途:把终端或 TUI 演示写成 .tape 脚本,用 Charmbracelet VHS 渲染为 GIF / MP4 / WebM / ASCII。相比直接录屏,.tape 在应用变化后可无人值守重新渲染,并在 CI 中行为一致;一次性、不会重跑的录制用 asciinema 更轻。

安装(三件套缺一不可):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。用 vhs --version、ffmpeg -version、ttyd --version 确认。

主要能力:Output 指定输出文件与格式(可重复以输出多种格式);Require 在程序不在 PATH 时快速失败;Set 配置终端(FontSize、Width、Height、Theme、Framerate 等);Type 模拟输入,Enter/Tab/Space/Escape 及方向键(如 Down 3)模拟按键;Sleep 固定暂停;Wait+Screen@30s /regex/ 等待屏幕内容匹配;Hide/Show 控制录制可见性(执行照常);Screenshot 截取当前帧;Env 与 Source 设置变量或引入其他 tape。

用法:先读应用的 --help 或源码,了解启动方式、响应按键与值得展示的状态,再起草 tape,执行 vhs validate demo.tape 做解析检查,vhs demo.tape 录制,观看渲染结果并调整。常用命令还有 vhs themes 列出主题、vhs new demo.tape 生成模板。

限制与注意:所有 Set 必须放在第一条交互命令之前,放在下方会被静默丢弃,且 vhs validate 仍返回 0;validate 只解析语法,不启动应用,缺二进制、按键错误或演示跑得比应用快都能通过,建议加 Require。Type 不会自动回车,需显式 Enter,并在其间加 Sleep 500ms。Hide 只隐藏输出不阻止执行,块结束前用 Ctrl+L 清屏。Wait 会超时,可用 Wait+Screen@30s 或 Set WaitTimeout 30s 调整。VHS 在新 shell 中录制,提示符自定义会缺失,可固定 Set Shell "bash"。颜色或换行异常通常是终端设置问题,可在 Hide 块中固定 Env TERM "xterm-256color" 并执行 stty rows 50 cols 120。GIF 易超 5 MB,可先降 Set Framerate 15,再用 gifsicle -O3 --lossy=80,必要时改用 MP4。演示建议控制在 10–30 秒、三到五个状态。