核心用法
VHS Recorder 是 Charm 团队开发的终端录制工具,采用声明式配置:用户编写 .tape 文件定义整个录制流程,包括输入命令、按键、等待时机、样式设置等,然后执行 vhs demo.tape 生成 GIF、MP4 或 WebM 等格式输出。
典型工作流:
1. 编写 Tape 文件(设置输出格式→终端尺寸→主题→依赖检查→隐藏准备→核心演示→收尾)
2. 使用 Hide/Show 隔离初始化与正式内容
3. 通过 Type + Enter + Wait + Sleep 控制节奏
4. 执行 vhs demo.tape 自动生成动画
关键特性:
- 50+ 内置终端主题(Catppuccin、Dracula、Gruvbox 等)
- 精确时序控制(
Type@50ms内联覆盖、Wait /pattern/正则匹配) - 多格式输出(.gif/.mp4/.webm/.ascii/PNG序列)
- 环境变量注入、剪贴板操作、截图单帧
显著优点
- 可复现性:Tape 文件即代码,版本可控、团队协作、CI 集成友好
- 专业输出:像素级控制终端尺寸、字体、边距,告别手动录屏的抖动与不一致
- 效率极高:修改文字后秒级重新生成,无需重新操作终端
- 社区生态:Charm 品牌背书,GitHub 星标 15k+,持续维护
潜在局限
- 依赖较重:需安装
ttyd(Web 终端)和ffmpeg(视频编码),Docker/CI 环境配置略复杂 - 交互限制:不支持需要真实用户输入的程序(如密码输入、交互式 TUI 的复杂导航)
- 学习曲线:Tape 语法需记忆,调试需反复生成预览
- 性能开销:
ffmpeg编码大分辨率/长时长视频时资源占用高
适合人群
- 开源项目维护者(制作 README 演示动画)
- CLI 开发者(产品发布、文档视频)
- 技术布道者(Twitter/X、博客、会议演讲素材)
- DevRel 与产品市场团队
常规风险
- 输出体积:未优化的 GIF 可能数十 MB,建议配合
gifsicle或转 MP4 - 时序漂移:
Wait依赖终端输出匹配,复杂动画需手动微调Sleep - 敏感信息泄露:Tape 文件中的
Type命令若含密钥,会明文记录并输出到动画 - 跨平台差异:字体渲染、终端颜色在不同系统生成结果可能有细微差异