Hyperyond/Hover

GitHub: Hyperyond/Hover

Hover 是一款开源 Vibe Testing 套件,通过 MCP 让编码 agent 探索应用并自动生成属于你自己的标准 Playwright 测试,CI 运行时零 AI 依赖。

Stars: 11 | Forks: 1

# Hover — 开源 Vibe Testing 套件 **English** · [简体中文](./README.zh-CN.md) [![npm @hover-dev/mcp](https://img.shields.io/npm/v/%40hover-dev%2Fmcp?label=npm%20%40hover-dev%2Fmcp&color=cb3837&logo=npm)](https://www.npmjs.com/package/@hover-dev/mcp) [![VS Marketplace](https://img.shields.io/visual-studio-marketplace/v/hyperyond.hover-dev?label=VS%20Marketplace&color=1f9cf0&logo=visualstudiocode)](https://marketplace.visualstudio.com/items?itemName=hyperyond.hover-dev) [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](./LICENSE) [![Playwright](https://img.shields.io/badge/output-%40playwright%2Ftest-2EAD33?logo=playwright&logoColor=white)](https://playwright.dev/) [![Node](https://img.shields.io/badge/node-%E2%89%A520-339933?logo=node.js&logoColor=white)](https://nodejs.org/) **将你正在使用的 coding agent 指向 Hover,获取属于你自己的真实 Playwright 测试套件。** Hover 是一个开源的 **Vibe Testing** 套件:将它的 MCP server 添加到你自己的 agent(Claude Code、Cursor 等)中,agent 就会探索你的应用,映射其业务流程,并将每一个流程固化为 `__vibe_tests__/` 下的原生 `@playwright/test` spec。保存的测试完全**归你所有**——它们在你的 CI 中运行,整个过程中**零 AI** 介入。 我们的核心优势在于 **record == replay**:agent 通过 Hover *grounded* 的浏览器工具执行操作,因此驱动点击的 selector 与最终保存的完全一致,且固化过程是**确定性的**(无需 LLM 编写代码)。没有虚构的 selector,运行时不依赖 Hover,也没有锁定。 ## 套件 —— 四个表面,一个产物 | 表面 | 角色 | 它是什么 | |---|---|---| | **MCP** — `@hover-dev/mcp` | **创作** | 引擎。将其添加到你自己的 agent 中;`/mcp__hover__test_app` 会自动探索并固化 spec。BYO-CLI —— 使用你的模型和订阅,无需我们的密钥。 | | **VS Code** — `hover-dev` | **审查** | 一个可选的控制台:显示应用流程和覆盖率的 **Business Map** 图表 + Dashboard(通过/失败/flaky + CI 结果),支持一键运行。 | | **CI** | **运行** | 固化后的 spec 将作为原生 Playwright 在每个 PR 上运行 —— 无需 agent,无需消耗 token。Hover 会为你生成 workflow。 | | **Cloud** *(可选,规划中)* | **监控** | 托管的并行运行、定时监控、flaky 测试面板、失败时自动修复 —— 构建在你已拥有的 spec *之上*。绝无创作层面的锁定。 | 贯穿其中的核心是**产物**:在你的 repo 和 CI 中拥有可移植的 Playwright 测试。AI 只负责一次性创作;之后运行的代码没有任何 AI 介入。 ## 快速开始 将 MCP 添加到你的 agent 中(此处以 Claude Code 为例 —— 任何支持 MCP 的 agent 均可): ``` npm i -g @hover-dev/mcp claude mcp add hover -- hover-mcp ``` **已经安装过了?** 使用 `npm i -g @hover-dev/mcp@latest` 更新,然后重新加载你的 agent 以重新启动服务器 —— 无需重新运行 `claude mcp add`。([更新说明 →](https://www.gethover.dev/docs/get-started/install/#updating)) 然后,在你的 agent 中: ``` /mcp__hover__test_app # explore the app and crystallize a suite /mcp__hover__test_app login # …or scope it to one flow ``` Spec 会生成在 `__vibe_tests__/` 目录下。你可以在任何地方运行它们,且无需 AI 介入: ``` npx playwright test __vibe_tests__ ``` 想要可视化界面?安装 **[Hover VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=hyperyond.hover-dev)** (`hyperyond.hover-dev`) 以获取 Business Map 图表和 Dashboard。它只是一个审查控制台 —— 不驱动任何 agent。 ## 为什么选择 Hover - **record == replay** —— grounded 的驱动操作 + 确定性的固化过程:保存的 selector 就是驱动运行的 selector。Playwright codegen / Stagehand / Midscene 无法保证这一点。 - **你拥有该产物** —— 位于你的 repo 中的原生 `@playwright/test`,在 CI 中运行时完全零 AI。没有专有格式,运行时不依赖 Hover,也没有锁定。 - **BYO-CLI** —— Hover 不捆绑任何 AI runtime 和密钥;它依附于你已经在付费的 coding agent 和订阅。我们只管理*如何*测试,从不干涉*使用哪个*模型。 - **不断积累的测试知识** —— Hover 将你的流程 **Business Map** 及其在 `.hover/` 中学到的规则与你的代码一起保存 —— 从而保持套件的自我感知能力,并随着应用的增长变得更加智能。 ## 工作原理 ``` your agent (Claude Code / Cursor) │ MCP tools — grounded actuation ▼ @hover-dev/mcp ──▶ CDP ──▶ your debug Chrome ──▶ your app │ └─ crystallize_spec ──▶ __vibe_tests__/.spec.ts (plain Playwright, no AI) ``` Agent 绝不手动编写 spec:它通过 grounded 工具(`role+name → testId → text`)进行操作,而 Hover 会确定性地将录制的步骤转换为 Playwright 代码 —— 因此你回放的正是你录制的。 ## 常见问题解答 **我需要 VS Code 扩展吗?** 不需要。MCP 就是整个创作闭环。该扩展是一个可选的审查控制台(Business Map + Dashboard)。 **Hover 会上传我的源代码或 DOM 吗?** 不会。你的 agent 直接与它自己的提供商通信;Hover 不捆绑任何模型、密钥或遥测工具,且没有任何上传途径。 **我的 UI 发生变化导致 spec 失效。** 我们的 selector 是语义化的,因此大部分变动不会导致其失效。如果确实失效了,可以手动编辑原生 Playwright 脚本,或者重新运行 `/mcp__hover__test_app ` 进行再次固化。我们刻意没有在 CI 阶段加入自动修复功能 —— 保持 CI 的确定性和免费;失败时的自动修复是 Cloud 版本中规划的功能。 ## 路线图 **Hover Cloud(规划中,可选):**并行运行、定时监控、flaky 面板以及失败时的自我修复 —— 这是一个构建在你已拥有的 spec *之上*的托管层。创作过程依然保持本地和免费;云端只会运行并监控你拥有的测试,绝不进行锁定。[加入等候名单](https://gethover.dev/#cloud)。 ## 构建于 [**Playwright**](https://playwright.dev/) (+ [Codegen](https://playwright.dev/docs/codegen))、[**Model Context Protocol**](https://modelcontextprotocol.io/) 以及 BYO coding-agent CLI ([Claude Code](https://claude.com/claude-code) / [Codex](https://github.com/openai/codex) / …)。[**Stagehand**](https://github.com/browserbase/stagehand) 和 [**Midscene**](https://github.com/web-infra-dev/midscene) 证明了 LLM 可以驱动真实的浏览器;而 Hover 缩短了这个闭环 —— 在创作时驱动一次,然后永久退出。 ## 贡献 请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md):要求 Node 22+ / pnpm 10+,使用规范提交(强制执行),推送前必须运行 `pnpm typecheck && pnpm test`,保持 `main` 分支可运行。 ## 许可证 [Apache-2.0](./LICENSE) © Hyperyond
标签:AI编程助手, MCP, MITM代理, Playwright, 开源框架, 持续集成, 特征检测, 端到端测试, 自动化攻击