record == replay
The agent acts through grounded browser tools (role+name → testId → text), so the saved selector is the one that drove the click — and crystallization is deterministic. Codegen and rival agents can’t guarantee this.
§ The regression-test suite for vibe coding
from breaking.
Vibe-coding ships fast and breaks quietly. Describe the behavior once; an agent turns it into tests you own that run in your CI with zero AI. Hover Cloud judges every run (drift vs bug) and routes the fix back to your editor — so the next AI change never breaks what already worked.
hover-hook install wires Hover into Claude Code’s hooks (optional).
record == replay — the selector that drove the click is the one that's saved. Cloud runs no browsers and never edits a spec without your review.
The AI drives the browser once. The test it leaves behind is a plain Playwright file — and it's yours, forever.
Vibe-coded apps ship fast and break quietly. Hover makes the tests durable without making them a black box: the agent explores a flow through grounded browser tools, so the selector that drove a click is the exact one written to the spec. Crystallization is deterministic — no model writes the code.
The saved file runs in your CI as ordinary @playwright/test: no agent, no tokens, no runtime dependency on us. You could delete Hover tomorrow and every test keeps running.
You define what should be true. The agent authors the regression, CI runs it, Cloud judges what broke, and the fix loops back to your editor. Read the thesis →
Heal loops back to Define — the suite guards what you already shipped.
Point the coding agent you already run at Hover’s MCP and call /mcp__hover__test_app. It logs in, browses, and checks out — acting through grounded tools — and each flow lands as plain @playwright/test under __vibe_tests__/.
The crystallized suite runs as a standard GitHub Actions check: no agent, no tokens, no key. Hover can generate the workflow for you. The green path is completely AI-free — that’s the moat.
Hover Cloud judges each CI run in two layers: a deterministic call on every failure (drift vs bug vs unclear, plus merge-confidence from cross-branch history) and an LLM judge for the calls with no single right answer. Drift heals in your editor; a real bug stays flagged. It runs no browsers.
getByRole('button', { name: 'Pay now' }) renamed to 'Place order' — heal the test.
A hosted layer over the specs you already own and the CI you already run. Sign in with GitHub, connect a repo, and Hover starts watching every run. Authoring stays local and free; CI still runs plain Playwright; the spec stays entirely yours.
free early access · reads results, never runs your tests
Works where you already build. Hover drives your real dev server over CDP — any framework, no bundler plugin, nothing to add to your app.
The agent acts through grounded browser tools (role+name → testId → text), so the saved selector is the one that drove the click — and crystallization is deterministic. Codegen and rival agents can’t guarantee this.
Plain @playwright/test in your repo, running in your CI with zero AI. No proprietary format, no runtime dependency, no lock-in. The AI authors it once; the file is yours.
Hover bundles no model and holds no key. It rides the coding agent and subscription you already pay for. We manage how to test, never which model.
A Business Map of your flows plus the rules Hover learns, committed with your code — so the suite stays self-aware and gets sharper as your app grows.
Hover bundles no AI runtime and resells no tokens — authoring rides the Claude or ChatGPT plan already on your machine, and CI never pays at all. Cloud is a data layer over the runs you already have; during early access it costs nothing.
@playwright/test that any Playwright user can read.