vhs-mcp
概述
vhs-mcp使AI助手能够以编程方式创建终端会话记录并捕获TUI(文本用户界面)应用程序屏幕截图。通过将VHS与模型上下文协议连接起来,它允许自动化终端文档和测试工作流程。
特性
- 终端录音自动化:执行VHS磁带文件或磁带文本以生成终端录音
- TUI截图:当出现特定模式时,自动捕获终端应用程序的屏幕截图
- 多种输出格式:支持PNG、GIF、MP4、WebM、JSON、ASCII和TXT输出
- 灵活的配置:可定制的超时、终端尺寸、打字速度等
- MCP集成:与Claude Desktop和其他MCP兼容客户端无缝协作
安装
使用Nix(推荐)
如果您有启用薄片的Nix:
# Run directly
nix run github:Warashi/vhs-mcp
# Build and install
nix build github:Warashi/vhs-mcp来源
要求:
- 转到1.25.2或更高版本
- 家用录像系统 已安装并在PATH中可用
# Clone the repository
git clone https://github.com/Warashi/vhs-mcp.git
cd vhs-mcp
# Build
go build -o vhs-mcp main.go
# Run
./vhs-mcp工具
vhs_run_tape
运行VHS磁带并返回生成的文件URI。
参数:
tape_text(字符串,可选):VHS磁带内容为文本tape_path(字符串,可选):.tape文件的路径timeout_sec(整数,可选):超时秒数(默认值:120)
备注:正是其中之一 tape_text 或 tape_path 必须提供。
例子:
{
"tape_text": "Output demo.gif\n\nSet FontSize 32\nSet Width 1200\nSet Height 600\n\nType \"echo 'Hello, World!'\" Enter\nSleep 500ms\n",
"timeout_sec": 60
}退货:生成的工件的文件URI列表(PNG、GIF、MP4、WebM、JSON、ASCII、TXT)。
tui_snap_after
通过VHS运行命令,等待正则表达式模式出现在屏幕上,然后拍摄PNG屏幕截图。
参数:
command(string,必填):要运行的命令(例如“htop”)wait_regex(string,必填):屏幕上等待的正则表达式keys(字符串数组,可选):要发送的其他按键(例如,\[“Down”,“Enter”\])screenshot_name(字符串,可选):输出PNG文件名(默认:“screencast.PNG”)width(整数,可选):终端宽度(像素)(默认值:1000)height(整数,可选):终端高度(像素)(默认值:600)typing_ms(整数,可选):键入速度(毫秒)(默认值:0)timeout_sec(整数,可选):超时秒数(默认值:120)
支持的密钥:向上、向下、向左、向右、Enter、Tab、空格、Backspace、PageUp、PageDown、Escape(其他字符串将以文本形式键入)
例子:
{
"command": "htop",
"wait_regex": "Load average",
"keys": ["Down", "Down"],
"screenshot_name": "htop-screenshot.png",
"width": 1200,
"height": 800,
"timeout_sec": 30
}退货:生成的PNG屏幕截图的文件URI。
发展
使用Nix
使用所有必需的工具进入开发shell:
nix develop这提供了:
- Go工具链
- 预提交钩子(actionlint、treefmt)
- 代码格式化程序(gofmt、gofumpt、goimport、golines、nixfmt)
- 其他工具(保持排序、拼写错误、拼写错误)
手动设置
要求:
- 转到1.25.2+
- 家用录像系统
# Install dependencies
go mod download
# Run locally
go run main.go
# Build
go build -o vhs-mcp main.go
# Format code
go fmt ./...项目结构
.
├── main.go # Single-file MCP server implementation
├── go.mod # Go module definition
├── go.sum # Go dependencies
├── flake.nix # Nix flake configuration
├── flake.lock # Nix flake lock file
└── nixpkgs/ # Custom Nix packages
├── default.nix # Package exports
├── vhs-mcp/ # Wrapped MCP server
├── vhs-mcp-unwrapped/ # Unwrapped Go binary
├── vhs/ # VHS package
└── vhs-unwrapped/ # VHS unwrapped variant依赖项
- -官方MCP Go SDK
- 家用录像系统 -Charm终端录音工具
运作原理
- 服务器使用官方的Go SDK实现模型上下文协议规范
- 注册了两个工具:
vhs_run_tape和tui_snap_after - 每次工具执行:
- 为VHS输出创建临时目录 - 根据输入参数生成VHS磁带文件 - 执行具有超时保护的VHS - 收集生成的工件并返回文件URI
许可证
麻省理工学院
