ProofShot:给AI编程代理装上眼睛,自动验证UI开发结果

6 阅读1分钟

什么是ProofShot

ProofShot是一款开源、与代理无关的CLI工具,专门解决AI编程代理"盲写代码"的问题。AI编程代理会写UI功能,但无法验证结果是否正确显示、功能是否正常、有没有报错。ProofShot可以给它们装上"眼睛",在真实浏览器中测试、录制视频证明、收集错误,把所有结果打包供人工审核。

支持所有能运行shell命令的AI编码代理:Claude Code、Cursor、Codex、Gemini CLI、Windsurf、GitHub Copilot等。

核心能力

当AI代理完成功能开发后,ProofShot可以:

  1. 录制整个浏览器会话的视频,证明功能正常工作
  2. 捕获关键节点的截图
  3. 收集控制台错误和服务端错误
  4. 生成交互式查看器,支持进度条拖动、动作标记、时间线同步
  5. 自动上传所有产物到GitHub PR,作为内嵌评论展示
  6. 无厂商锁定,无需云依赖

安装方法

npm install -g proofshot
proofshot install

第一条命令安装CLI和agent-browser(带无头Chromium),第二条命令检测你的AI编码工具,并在用户级别安装ProofShot技能,自动在所有项目中生效。

工作流程

三步即可完成验证:

# 1. 启动:打开浏览器,开始录制,捕获服务端日志
proofshot start --run "npm run dev" --port 3000 --description "登录表单验证"

# 2. 测试:AI代理驱动浏览器执行操作
agent-browser snapshot -i # 查看可交互元素
agent-browser open http://localhost:3000/login # 导航到页面
agent-browser fill @e2 "test@example.com" # 填写表单
agent-browser click @e5 # 点击提交
agent-browser screenshot ./proofshot-artifacts/step-login.png # 截图留证

# 3. 停止:打包视频+截图+错误为验证产物
proofshot stop

技能文件会自动教AI代理这个工作流,用户只需要说"用proofshot验证这个",代理就会自动处理剩下的工作。

生成的产物

每个会话会在./proofshot-artifacts/目录下生成带时间戳的文件夹,包含:

文件名说明
session.webm整个会话的视频录制
viewer.html独立交互式查看器,支持进度条、时间线、控制台/服务端日志标签
SUMMARY.mdMarkdown报告,包含错误、截图、视频链接
step-*.png关键节点的截图
session-log.json带时间戳和元素数据的操作时间线
server.log开发服务端的标准输出/错误(使用--run时)
console-output.log浏览器控制台输出

查看器还支持浏览控制台和服务端日志,错误高亮,时间戳与视频同步。

常用命令

安装相关

proofshot install # 交互式选择工具
proofshot install --only claude # 仅为特定工具安装
proofshot install --skip cursor # 跳过特定工具
proofshot install --force # 覆盖已有的安装

会话管理

proofshot start # 服务端已运行时使用
proofshot start --run "npm run dev" --port 3000 # 启动并捕获服务端日志
proofshot start --description "验证结账流程" # 添加报告描述
proofshot start --url http://localhost:3000/login # 打开特定URL
proofshot start --headed # 显示浏览器(调试用)

proofshot stop # 停止会话并关闭浏览器
proofshot stop --no-close # 停止但保持浏览器打开

扩展功能

# 执行agent-browser命令,自动记录时间戳和元素数据
proofshot exec click @e3
proofshot exec screenshot step-checkout.png

# 视觉回归测试,对比当前截图与基线
proofshot diff --baseline ./previous-artifacts

# 上传产物到GitHub PR,发布验证评论
proofshot pr # 自动检测当前分支的PR
proofshot pr 42 # 指定PR编号
proofshot pr --dry-run # 预览Markdown内容不发布

# 清理产物目录
proofshot clean

支持的AI工具

proofshot install可以自动检测并配置以下工具的技能:

代理安装位置
Claude Code~/.claude/skills/proofshot/SKILL.md
Cursor~/.cursor/rules/proofshot.mdc
Codex(OpenAI)~/.codex/skills/proofshot/SKILL.md
Gemini CLI追加到~/.gemini/GEMINI.md
Windsurf追加到~/.codeium/windsurf/memories/global_rules.md

所有技能都安装在用户级别,无需每个项目单独配置。

试用示例

仓库包含示例应用,可以快速体验效果:

git clone https://github.com/AmElmo/proofshot.git
cd proofshot
npm install && npm run build && npm link

# 设置示例应用
cd test/fixtures/sample-app
npm install

用AI代理打开test/fixtures/sample-app/目录,输入提示词:

用proofshot验证示例应用。从主页开始,检查hero部分,导航到Dashboard检查指标,然后到Settings更新个人资料名称。每个页面都截图。

或者不用AI代理,直接运行自动化测试脚本:

bash test-proofshot.sh

然后查看proofshot-artifacts/目录下的视频、截图和报告。

技术特点

  • 自动检测10+语言的服务端错误:JavaScript/Node.js、Python、Ruby/Rails、Go、Java/Kotlin、Rust、PHP、C#/.NET、Elixir/Phoenix等
  • 基于Vercel的agent-browser构建
  • MIT开源协议