面向 Unix 命令与编程语言的速查服务,可通过 curl、命令行客户端和编辑器插件直接访问。
charmbracelet/vhs
一款 Go 命令行工具,用脚本化的 .tape 文件把终端操作录制成 GIF、视频或 ASCII 输出,用于演示和集成测试。
- Star
- 21,270
- Fork
- 493
- 未关闭 Issue
- 177
- 最近提交
- 22小时前
这是什么?
VHS 把终端录屏当作代码来管理。你编写一个 .tape 文件,列出 Type、Enter、Sleep、Wait 等命令,VHS 会在虚拟终端中重放这些操作,并输出为 GIF、MP4、WebM、PNG 序列,或用于对比的文本/ASCII 文件。
配置项涵盖字体与字号、窗口宽高或列数行数、主题、内边距、外边距、窗口标题栏和播放速度。由于录制过程由文本脚本驱动,CLI 更新后只需重新运行同一个 tape 即可保持演示内容最新。文本格式的输出可以提交到 git 中做差异比较,用作集成测试的基准文件。
此外,VHS 提供 record 子命令,可从实际终端会话生成 tape 文件;publish 命令可将 GIF 分享到服务器;还内置可选的 SSH 服务模式,便于在远程主机上运行 tape。使用前需要在 PATH 中安装 ttyd 和 ffmpeg,可通过 Homebrew、Scoop、Nix、Docker、Go 或 Linux 软件包安装。
核心功能
- 01使用简洁的 .tape 命令语言编写终端操作脚本。
- 02可输出 GIF、MP4、WebM、PNG 序列以及文本/ASCII 文件。
- 03支持自定义字体、窗口尺寸、主题、内边距、外边距和窗口标题栏。
- 04可从实际终端会话录制生成 tape 文件。
- 05生成 ASCII 基准文件,便于在集成测试中做差异比较。
- 06内置 SSH 服务模式,可在远程主机上执行 tape。
适用场景
- 在 CI 中重新生成 README 演示 GIF,保持内容与代码同步。
- 通过比对文本输出与基准文件,对 CLI 做集成测试。
- 为文档或教程制作可复现的终端操作录屏。
快速上手
- 1
安装 VHS 所需的 ttyd 和 ffmpeg 并加入 PATH
- 2
在 macOS 或 Linux 上用 Homebrew 安装 VHS
brew install vhs - 3
创建一个新的 tape 文件
vhs new demo.tape - 4
从 tape 文件生成 GIF
vhs demo.tape
使用前须知
- 需要单独安装 ttyd 和 ffmpeg 并确保它们在 PATH 中可用。
收录于专题
标签
常见问题
- vhs 是什么?
- 一款 Go 命令行工具,用脚本化的 .tape 文件把终端操作录制成 GIF、视频或 ASCII 输出,用于演示和集成测试。 VHS 把终端录屏当作代码来管理。你编写一个 .tape 文件,列出 Type、Enter、Sleep、Wait 等命令,VHS 会在虚拟终端中重放这些操作,并输出为 GIF、MP4、WebM、PNG 序列,或用于对比的文本/ASCII 文件。
- vhs 可以免费使用吗?用的什么许可证?
- vhs 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- vhs 还在维护吗?
- 活跃维护中。vhs 最近一次提交是在 2026年11月6日。
- vhs 适合用来做什么?
- 在 CI 中重新生成 README 演示 GIF,保持内容与代码同步。 通过比对文本输出与基准文件,对 CLI 做集成测试。 为文档或教程制作可复现的终端操作录屏。
- vhs 怎么安装和运行?
- 安装 VHS 所需的 ttyd 和 ffmpeg 并加入 PATH 在 macOS 或 Linux 上用 Homebrew 安装 VHS: brew install vhs 创建一个新的 tape 文件: vhs new demo.tape 从 tape 文件生成 GIF: vhs demo.tape
- 在哪里获取 vhs?
- 源代码和安装说明在 GitHub 上:https://github.com/charmbracelet/vhs
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
用 C 语言编写的终端星图,以 ASCII 字符渲染恒星、行星、星座和月相,无需望远镜。
命令行工具,可录制、实时直播和回放终端会话,输出轻量的 asciicast 文件而非视频。
一个基于函数式风格的 C++ 终端用户界面库,无外部依赖,支持键盘和鼠标交互。
用 Go 编写的终端屏保,shell 空闲时自动启动,提供星座、代码雨、粒子等动画场景。