Hover — 专为 vibe coding 打造的回归测试套件Cloud · 公测

§ 专为 vibe coding 打造的回归测试套件

让 vibe coding 出来的应用

不崩

Vibe coding 上线飞快,坏起来却悄无声息。把行为描述一次,agent 就把它变成你拥有的测试,在你的 CI 里 零 AI 运行。Hover Cloud 裁定每一次运行(drift 还是 bug),并把修复回传到你的编辑器——让下一次 AI 改动,不再弄坏已经跑通的东西。

用 GitHub 登录
或者完全本地、免费开始——把 MCP 加到你自己的 agent:
agent 用哪种语言和你对话

hover-hook install 把 Hover 接入 Claude Code 的 hooks(可选)。

record == replay——驱动点击的那个 selector,就是被存下来的那个。Cloud 不跑任何浏览器,也绝不会未经你审阅就改动一条 spec。

cloud.gethover.dev
fernfield/storefront
fitting
spec · fixedcodeΣ residual 1.24
loginbrowsecartcheckoutsearch
fitting the code to the spec…pass 0/5
reads results · runs no browsersthe spec stays yours
开源Apache-2.0BYO-CLIrecord == replay无锁定
§ 01理念

AI 只驱动浏览器 一次。它留下的测试是一个普通的 Playwright 文件——而且 永远属于你

Vibe 编码的应用上线飞快,坏起来却悄无声息。Hover 让测试变得耐久,却不把它变成黑盒:agent 通过接地的浏览器工具探索流程,所以驱动点击的那个 selector,正是写进 spec 的那个。结晶(crystallize)是确定性的——没有任何模型在写代码。

存下来的文件在你的 CI 里就是普通的 @playwright/test:没有 agent、没有 token、对我们没有运行时依赖。哪怕你明天删掉 Hover,每一条测试照常运行。

log-in.spec.tsadd-to-cart.spec.tscheckout.spec.ts
§ 02工作方式

定义 → 编写 → 运行 → 裁定 → 自愈。一条闭环,一份你拥有的产物。

你定义什么应该为真。agent 编写回归、CI 运行、Cloud 裁定哪里坏了,修复再回到你的编辑器。 读这篇思路 →

定义
编写
运行
裁定
自愈

Heal 回到 Define——套件守护你已经上线的东西。

01编写· MCP · 本地

agent 探索你的应用,并把流程结晶成 spec

把你已经在用的编码 agent 指向 Hover 的 MCP,调用 /mcp__hover__test_app。它会登录、浏览、下单——全程通过接地工具操作——每条流程都落成 __vibe_tests__/ 下普通的 @playwright/test。

agent session
$/mcp__hover__test_app
browser_navigate shop.fernfield.dev
click_control getByRole('link', { name: 'Cart' })
fill_control getByLabel('Card number')
crystallize_spec checkout.spec.ts
3 flows → __vibe_tests__/ · deterministic, no LLM writing code
02运行· CI · 你的

这些 spec 在每个 PR 上运行——零 AI

结晶出来的套件作为一个标准 GitHub Actions 检查运行:没有 agent、没有 token、没有 key。Hover 能替你生成这个 workflow。绿色路径完全无 AI——这正是护城河。

Actions · pull request #128✓ passing
log-in.spec.tsbrowse.spec.tsadd-to-cart.spec.tscheckout.spec.ts
npx playwright test · 24 passed · no agent, no tokens
03裁定与自愈· Cloud · 公测

Cloud 裁定每次运行,并把修复送回

Hover Cloud 分两层裁定每次 CI 运行:对每个失败的确定性判定(drift / bug / unclear,外加来自跨分支历史的 merge-confidence),以及一个处理没有标准答案情况的 LLM 裁判。drift 在你的编辑器里自愈;真 bug 保持标记。它不跑任何浏览器。

fernfield/storefront
Connected
DashboardCI AnalyticsHeal QueueBusiness MapKnowledge
Pass rate · 30d
97.2%
Flaky specs
2
Open heals
1
Heal Queue
checkout.spec.tsneeds your verdict
88AI verdictdrift · heal test

getByRole('button', { name: 'Pay now' }) renamed to 'Place order' — heal the test.

Heal in editor →It's a bug
reads results · runs no browsersthe spec stays yours
§ 03Hover Cloud · 公测

Cloud 已上线。而且 在我们打磨它期间,免费。

一层架在你已经拥有的 spec 和你已经在跑的 CI 之上的托管服务。用 GitHub 登录、连上一个 repo,Hover 就开始盯住每一次运行。编写始终本地且免费;CI 依然跑纯 Playwright;spec 完全归你。

  • 连接 repo一次 GitHub 登录——Hover 装好 App、写好 CI workflow 与上报 secrets。
  • 趋势与 flakiness摄入每次 CI 运行:通过率、运行历史,以及给最不稳定的 spec 排序的 flakiness 打分。
  • Heal Queue每个失败都被分类——drift(改测试)还是 bug(改应用)——并回传到你的编辑器本地修复。
  • 业务图与知识库一张你流程覆盖的图,以及一条 Hover 学到的规则时间线,直接读自你的 repo。
  • 告警、PR 与环境回归告警(邮件 / Slack)、PR 覆盖 + 失败摘要,以及 staging / production 目标环境。
用 GitHub 登录

公测免费 · 只读结果,绝不替你跑测试

fernfield/storefront
Define
DefineAuthorRunJudgeHealDefine
declare the behavior as a guard
reads results · runs no browsersthe spec stays yours

你在哪儿开发,它就在哪儿工作。 Hover 通过 CDP 驱动你真实的开发服务器——任何框架、无需 bundler 插件、无需往应用里加任何东西。

bundler framework
ViteNext.jsNuxtAstrowebpack 5RspackRsbuildTurbopackReactVueSvelte 5SolidPreactAstro componentsReact Native WebViteNext.jsNuxtAstrowebpack 5RspackRsbuildTurbopackReactVueSvelte 5SolidPreactAstro componentsReact Native Web
§ 04为什么选 Hover

AI 只驱动浏览器一次。它留下的测试,归你所有

01

record == replay

agent 通过接地的浏览器工具操作(role+name → testId → text),所以存下的 selector 就是驱动点击的那一个——而且结晶是确定性的。codegen 和其它 agent 无法保证这一点。

02

产物归你所有

你 repo 里普通的 @playwright/test,在你的 CI 里零 AI 运行。没有私有格式、没有运行时依赖、没有锁定。AI 只编写一次;文件永远是你的。

03

BYO-CLI

Hover 不打包任何模型、不持有任何 key。它搭载你已经在付费的编码 agent 与订阅。我们管"怎么测",从不管"用哪个模型"。

04

会复利的知识

一张你业务流程的 Business Map,加上 Hover 学到的规则,随你的代码一起提交——套件因此保持自知,并随应用成长越来越犀利。

§ 05价格

工具 永久免费。Cloud 在公测期间免费。

Hover 不打包任何 AI 运行时、不转售任何 token——编写搭载你机器上已有的 Claude 或 ChatGPT 订阅,CI 则完全不花钱。Cloud 是架在你已有运行之上的数据层;公测期间分文不取。

Hover Cloud

公测
¥0/ 公测期免费
  • 连接 repo——Hover 替你写好 CI workflow 与 secrets
  • 摄入每次 CI 运行——spec 结果、通过率、历史
  • Heal 提示——提取并解释失效的 locator
  • 不跑浏览器——只读结果;spec 归你所有
用 GitHub 登录 →

开源版

永久免费
¥0/ 自托管,Apache-2.0
  • @hover-dev/mcp server——加到你自己的编码 agent
  • agent 探索你的应用 → 你拥有的普通 @playwright/test spec
  • record == replay——接地操作、确定性结晶
  • 可选的 VS Code 驾驶舱——单面板:Overview · Heal · Env · Map
  • 在你的 CI 里作为纯 Playwright 运行——零 AI、零 token
  • BYO-CLI——你的模型、你的订阅;Apache-2.0、无遥测
添加 MCP →
§ 06常见问题

把问题讲清楚

不需要。Hover 是一个 MCP server,用一条命令加到你已经在用的编码 agent(Claude Code、Cursor…)里——你继续用你熟悉的 agent 工作。你的应用、bundler 配置、依赖都不用改,拿到的文件是标准的 @playwright/test,任何 Playwright 用户都能读。