安装
Hover 通过它的 MCP server(@hover-dev/mcp)编写测试。你把它加到已经在用的编码 agent——没有 bundler 插件、无需往项目里加任何东西,也没有 Hover 自己的模型或 key(BYO-CLI)。agent 通过 CDP 驱动你现有的 dev server,不限框架。
把 MCP 加到你的 agent
全局安装 MCP,然后注册这个 bin(下面以 Claude Code 为例——任何支持 MCP 的 agent 都一样):
npm i -g @hover-dev/mcp
claude mcp add hover -- hover-mcp
建议用全局安装——npx -y @hover-dev/mcp 那种一行写法会在首次启动时重新下载,可能超过 agent 的 30 秒 MCP 连接超时。
想用别的语言?
默认情况下,Hover 的工作流会让你的 agent 用英文和你交流。想让它用你的语言对话——它问的问题、它的总结与解释——在注册 server 时设置 HOVER_LANG:
claude mcp add hover -e HOVER_LANG=zh -- hover-mcp
HOVER_LANG 接受一个代码(zh、zh-TW、ja、es…)或一个语言名。只有面向人的文字会被翻译——代码、spec/测试名、标识符都保持英文。
这就是全部安装。MCP server 跑在你的 agent 之下,暴露 Hover 的接地浏览器工具 + /mcp__hover__test_app。它不打包任何 LLM、不收任何 API key——它搭载你已经付费的 agent 与订阅。
更新
MCP——已经装了想要最新版?重装全局包:
npm i -g @hover-dev/mcp@latest
不需要重跑 claude mcp add——那个注册指向 hover-mcp 这个 bin,现在会解析到新版本。只要重载你的 agent(重启会话,或重连它的 MCP server),让它重新拉起更新后的 server。用 npm ls -g @hover-dev/mcp 看你装的是哪个版本。
VS Code 驾驶舱——应用市场会自动更新它。想立刻强制到最新:Extensions 视图 → Hover → 更新按钮,或 code --install-extension hyperyond.hover-dev --force。
用 Cursor 或其它 agent?
任何支持 MCP 的编码 agent 都能用 Hover。用 npm i -g @hover-dev/mcp 全局安装,然后在你 agent 的配置里把它加为一个 MCP server(Claude Code 用上面的命令;其它 agent 把 server 命令指向 hover-mcp)。各 agent 上的工具和 /mcp__hover__test_app 流程完全一致。
开始前
你需要两样东西:
- 一个会说 MCP 的编码 agent——Claude Code、Cursor 或类似的,已安装并登录。Hover 搭载该 agent 运行的模型。
- 一个你已经在跑的 dev server——任何 Hover 能通过 CDP 触达的框架(Vite、Next.js、Nuxt、Astro、webpack)。Hover 驱动它;不替换、不包裹、不重启它。
首次运行时,Hover 会提示在 9222 端口启动一个隔离的调试版 Chrome(<tmpdir>/hover-chrome 下的干净临时 profile——绝不是你日常的浏览器)。之后的运行会复用它。
可选的 VS Code 驾驶舱
想要一个可视化界面,就装 Hover VS Code 扩展(hyperyond.hover-dev)——Extensions 视图(⇧⌘X / Ctrl+Shift+X),搜 hover-dev,Install(或 code --install-extension hyperyond.hover-dev)。
这个扩展是审阅驾驶舱,不是引擎:它提供一张你应用流程 + 覆盖的 Business Map 图,以及一块 Dashboard(通过 / 失败 / flaky + CI 结果)。它不驱动任何 agent——编写仍在你自己 agent 里的 MCP 中进行。
用起来
打开你的项目,用你平时的方式启动 dev server(pnpm dev / npm run dev / …),然后在 agent 里运行:
/mcp__hover__test_app # 探索应用并结晶出一整套 spec
/mcp__hover__test_app login # …或只针对某一条流程
spec 落在 __vibe_tests__/。完整走一遍见 第一次会话。
排障
EADDRINUSE: address already in use :::5173(或 5183 等)
端口被别的东西占了。最常见的是:一个没干净退出的 next dev / vite。杀掉它:
lsof -i :5173 -t | xargs kill # 把 5173 换成你的 dev 端口
agent 连不上调试版 Chrome
首次使用时 Hover 会提议在 9222 端口启动一个隔离的调试版 Chrome(<tmpdir>/hover-chrome 下的干净临时 profile——不是你日常的浏览器)。如果调试版 Chrome 已在跑但你不在其中,Hover 会把正确的窗口带到前台。如果 9222 被别的东西占了,释放它:lsof -i :9222 -t | xargs kill。