VHS Skill:把终端会话一键转 GIF/MP4 的开源录屏神器
VHS(Video Home System)是一个用代码”写”出终端录像的 CLI 工具——用户编写声明式的 .tape 脚本,运行后即可输出 GIF、MP4 或 WebM 格式的终端演示视频。它的核心价值在于确定性:不依赖录屏,不用担心帧率抖动或光标闪烁,脚本写好之后每次运行都产出一致的输出。在 GitHub 已斩获约 2 万 Stars,是 CLI 文档、README 演示、AI Agent 可视化输出场景里的热门选择,近期同步登录 SkillHub.club 成为可安装 Skill。
功能与原则
VHS 的本质是一个终端回放渲染引擎:读取 .tape 文件(一组结构化的文本命令),在虚拟终端中按指令”演出”,最后将渲染结果编码为目标格式。设计原则是确定性优先、声明式驱动——用户控制每一帧内容,而不是事后剪辑。
核心能力包括:
– 多格式输出:GIF(最适合 README)、MP4(高清场景)、WebM(网页嵌入)
– 声明式脚本:用打字速度、窗口尺寸、字体等参数精确控制视觉效果
– 内置录制模式:在终端中实时操作,VHS 自动记录成 .tape 文件供后续编辑
– 远程渲染服务:vhs serve 启动 SSH 服务器,支持在远端机器上执行并回传视频
– 一键发布:vhs publish 将 GIF 上传至 vhs.charm.sh,输出分享链接
认可度
- GitHub Stars:约 20,578(截至 2026-08-08),项目长期活跃,Actions 累计 737 次工作流运行
- 所属组织 charmbracelet 是 Go 语言 CLI 工具领域的头部维护方,旗下还有 gum、tree、bubble Tea 等明星项目
- 已在 SkillHub.club 上作为 Claude Skill 收录(marcfargas/skills-vhs),支持
npx @skill-hub/cli install vhs一键装入 Claude Code
链接
GitHub:https://github.com/charmbracelet/vhs
原作者
charmbracelet(GitHub Organization)——专注打造优雅的 Go 语言命令行工具生态,成员多为资深 Go 社区贡献者。VHS 目前由 buttercat 等核心维护者持续迭代。
介绍
VHS 由 Go 语言编写,灵感来自经典的 VHS 录像带概念:用户提前写好”剧本”(.tape 文件),工具负责”播放”和”录制”。与传统屏幕录制不同,VHS 生成的 GIF 是由指令精确驱动的,这意味着光标闪烁时机、字体大小、命令输出速度全部可控。
一个典型的 .tape 文件包含以下指令:
Output demo.gif # 输出文件名
Set FontSize 14 # 字体大小
Set Width 1100 # 窗口宽度
Set Height 600 # 窗口高度
Set Theme "Dracula" # 配色主题
Set TypingSpeed 30ms # 打字速度
Type "neofetch"
Enter # 按回车
Sleep 3s # 等待 3 秒
这段脚本运行后即可生成一个展示 neofetch 命令输出的 GIF,可直接嵌入 README。VHS 的命令参考涵盖了键盘输入、方向键、快捷键、隐藏/显示命令、环境变量设置等丰富能力,足以模拟任意终端操作场景。
对于 AI Agent 场景,VHS 解决了”Agent 输出只有文字,缺乏可视化呈现”的痛点——Agent 可以调用 VHS 生成带动画的演示,让用户直观看到命令执行过程。
特点
- 确定性渲染:相同 .tape 文件每次运行输出完全一致,无随机帧差异
- 零截屏依赖:不依赖 GUI 截屏工具,在纯 CLI 环境即可运行(需 ffmpeg)
- 多输出格式:一次脚本可同时生成 GIF + MP4 + WebM
- 脚本可版本控制:.tape 文件是纯文本,适合 git 管理,review 和协作方便
- 远程 SSH 渲染:通过
vhs serve在服务器渲染,本地获取结果,适合 CI/CD 集成 - 发布即分享:
vhs publish自动上传并返回直链,省去图床步骤
使用方法
安装:
# macOS / Linux
brew install vhs
# Windows
scoop install vhs
# Go
go install github.com/charmbracelet/vhs@latest
基本使用:
# 创建示例 tape 文件
vhs new demo.tape
# 编辑 demo.tape(写入上面的脚本内容)
vim demo.tape
# 运行生成 GIF
vhs demo.tape
VHS 依赖 ffmpeg 进行视频编码、依赖 ttyd 提供虚拟终端服务,均通过包管理器或官方指引安装。
作为 Claude Skill 使用(在 Claude Code 中):
/skill install marcfargas/skills-vhs
或在 SkillHub.club 找到 marcfargas-skills-vhs 页面,点击 Install 获取完整安装命令。
使用场景与人群
适用场景:
– 为开源 CLI 项目写 README 演示 GIF(neofetch、ls、curl 等工具的视觉展示)
– 生成技术博客/文档中的终端操作演示
– CI/CD 中自动生成测试过程的视觉报告
– AI Agent 输出结果的可视化呈现(让 Agent 的”思考过程”可视化)
目标用户:
– 开源项目维护者(需要低门槛产出 README 演示)
– 技术博主 / 文档工程师(需要精准控制的终端演示)
– AI Agent 开发者(需要让 Agent 输出视觉化)
– DevRel / 布道师(产品演示、闪电演讲配图)
输入与输出案例
案例 1:展示命令帮助输出
输入 .tape:
Output help-demo.gif
Set FontSize 14
Set Width 900
Set Height 400
Type "my-tool --help"
Enter
Sleep 5s
输出:help-demo.gif——一段自动播放的工具帮助文本动画,可直接放在 README 顶部。
案例 2:多步骤操作演示
输入 .tape:
Output install.gif
Set FontSize 14
Set Width 1100
Set Height 600
Set Theme "Dracula"
Hide
Type "cd my-project"
Enter
Type "npm install"
Enter
Sleep 3s
Show
Type "npm run dev"
Enter
Sleep 5s
输出:install.gif——完整展示了一个项目的安装 + 启动流程,Hide/Show 控制隐藏准备命令,只显示关键步骤。
评论区
登录后可评论。