Repolode
charmbracelet

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. 1

    安装 VHS 所需的 ttyd 和 ffmpeg 并加入 PATH

  2. 2

    在 macOS 或 Linux 上用 Homebrew 安装 VHS

    brew install vhs
  3. 3

    创建一个新的 tape 文件

    vhs new demo.tape
  4. 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 数据每日更新。

相关项目