v0.14 · latest release

AI authors the test.
CI runs plain Playwright.

Describe a flow in plain English; AI drives your realChrome once to explore it. When the run’s clean, Hover crystallises it into a standard @playwright/test spec that runs in CI with zero AI, forever.

Read the docs →

No per-token resale — Hover spawns the claude / codex CLI already on your PATH, on your subscription or your own API key.

Not a flat dump — page objects, test.step stages, a community seed library, and an optional AI polish pass you accept via diff. See what shipped.

Defaultclick to switch
claude connecting…

Describe a flow in plain English. Hover drives your real Chrome.

Type a flow to test…
hover · examples
You type

export the sales report as CSV

Opening reports
Clicking Export CSV
Capturing download
Optimize pass
Done · 8 steps · $0.05
Hover saves __vibe_tests__/export-csv.spec.ts
import { test, expect } from '@playwright/test';
 
test('export sales report', async ({ page }) => {
await page.goto("/reports");
 
const [ download ] =
await Promise.all([
page.waitForEvent('download'),
page.getByRole('button',
{ name: "Export CSV" }).click(),
]);
 
expect(download.suggestedFilename())
.toContain(".csv");
});
runs with npx playwright test — no agent, no AI
See it run

Watch Hover author a Playwright test in 90 seconds

Works where you already build. One npx @hover-dev/cli setup detects your bundler and wires it up — no config.

bundler framework
ViteNext.jsNuxtAstrowebpack 5RspackRsbuildTurbopackReactVueSvelte 5SolidPreactAstro componentsReact Native WebViteNext.jsNuxtAstrowebpack 5RspackRsbuildTurbopackReactVueSvelte 5SolidPreactAstro componentsReact Native Web
Why Hover

Optimised for one axis nobody else picks: artifact portability.

01

Explore once → deterministic spec

AI drives the browser to figure out the flow. What lands in your repo is plain @playwright/test code with semantic getByRole / getByLabel selectors — the agent's job ends at "save".

02

Zero AI at runtime, zero tokens in CI

Other AI-testing tools keep a model in the loop when the test runs — every PR, every nightly pays for LLM calls. Hover spends the model once, at authoring time. Green builds never pay a recurring tax.

03

BYO-CLI — your subscription or your API key

Hover bundles no AI runtime. It spawns whatever coding-agent CLI is on your PATH — claude, codex, cursor-agent, aider — on the Pro / Max / ChatGPT plan you already pay for, or your own model API key dropped into the widget (kept in your browser, injected into the CLI env, never uploaded).

04

Five bundlers, two artifacts

Vite, Astro, Nuxt, Next.js (Turbopack), webpack 5 — plus React Native Web. Every verified session crystallises two ways: a Playwright spec for CI and a Jira-importable test case.

One exploration, two audiences

A single Save as ▾ menu, two files that check into git.

Nothing lives in a vendor database. A spec written on a laptop on Monday is reviewed by QA on Tuesday and runs in CI from Wednesday — same file, no export step.

<slug>.spec.ts

Playwright spec

Read by
Node + Playwright (CI)
Audience
CI · devs writing code
<slug>.case.csv

Jira test case

Read by
Xray · Zephyr · Jira
Audience
QA reviewing · PM tracking
Optional plugin · @hover-dev/security

The same widget, a security mode.

Add @hover-dev/security and the panel grows a Security mode. Hover routes your debug Chrome through a local HTTPS MITM, the agent inspects the captured API calls and replays them with mutations, and confirmed findings crystallise into .security.spec.ts regression tests that run in CI — no proxy, no agent. Today’s IDOR becomes a gate on every PR.

Zero external deps — no mitmproxy, no Python, no system CA. Probes run on your own dev server; authorised testing only.

What the agent probes for
  • IDOR — replay a captured URL with another user’s resource id
  • Auth bypass — drop or swap the auth header
  • Parameter tampering — mutate user_id / role / price / isAdmin
  • Missing headers — CSP / X-Frame-Options / HSTS / SameSite
  • PII leakage — user data in query strings or pre-consent requests
How Hover compares

The only tool that pairs AI exploration with a portable, agent-free artifact.

We checked every cell against each vendor’s own docs. Where a tool publishes no public pricing, we say so instead of guessing a number.

Hover
  • AI authors the test from intent
    Agent explores the flow from one English sentence
  • Output is plain Playwright that runs in CI with NO AI
    Standard @playwright/test .spec.ts, agent-free forever
  • Generated spec guards every step
    Each interaction prefaced with an explicit expect(el).toBeVisible()
  • Structured output — Page Objects, test.step, fixtures
    Lifts repeated flows into Page Objects + fixtures; wraps each step in test.step
  • Optional AI polish pass (diff-reviewed, original kept)
    Deterministic draft first, then an opt-in AI pass you accept via diff
  • Community-extensible translation (drop-in seed library)
    Add a worked example to .hover/rules/ to teach a new pattern — no fork, no plugin code
  • Open source / self-hosted
    Apache-2.0, runs entirely on your machine
  • Bring-your-own AI (your CLI / model key)
    Spawns the claude / codex CLI already on your PATH
  • Drives your real local dev server
    Injects into your dev server, drives your debug Chrome over CDP
  • Pricing
    Free / OSS — you pay only the CLI plan you already have
Momentic
  • AI authors the test from intent
    Natural-language prompts; AI turns them into steps
  • Output is plain Playwright that runs in CI with NO AI
    YAML in your repo, but AI interprets it at runtime
  • Generated spec guards every step
    No code artifact — YAML interpreted by AI at runtime
  • Structured output — Page Objects, test.step, fixtures
    No code artifact — runtime YAML
  • Optional AI polish pass (diff-reviewed, original kept)
    Runtime-AI YAML — nothing deterministic to polish
  • Community-extensible translation (drop-in seed library)
    Closed platform; no user-extensible translation layer
  • Open source / self-hosted
    Closed SaaS; local CLI still needs a Momentic account
  • Bring-your-own AI (your CLI / model key)
    Vendor-hosted AI; you supply a Momentic API key
  • Drives your real local dev server
    CLI runs locally / in CI, but tied to the hosted account
  • Pricing
    Quote-based; no public pricing, free trial only

yes · partial · no · not applicable. QA Wolf and Momentic do not publish public pricing; figures elsewhere online come from third-party aggregators, so we describe their model rather than quote a number.

On “Generated spec guards every step”, means the tool leans on Playwright’s runtime auto-wait instead of writing an explicit per-step visibility assertion into the saved code. It still waits at run time; the artifact just carries no guard of its own.

Fact-checked against each vendor’s own docs (2026): Momentic · QA Wolf · Playwright codegen · Stagehand · Midscene.

Structured output

Hover grows the output into a maintainable suite.

Hover saves a clean, portable spec, then grows it into an architecture: page objects and fixtures lifted from flows repeated across specs, named test.step stages, popup / new-tab pairing, a community-extensible seed library, and an optional AI pass that polishes a spec while always keeping the deterministic original. All shipped, all still plain Playwright with no agent in CI. Next: a Chrome extension and Hover Cloud. Follow along on GitHub.

Shipped

Page objects from repeated flows

When a login or setup flow recurs across saved specs, Hover lifts it into a shared Page Object plus a fixture, so the selectors live in one file instead of five.

Shipped

Structured test.step reports

Saved flows wrap their actions in named test.step(...) stages, so the Playwright HTML report reads as logical steps instead of a flat action list.

Shipped

Multi-tab & popup flows

A click that opens a payment popup or OAuth tab crystallises with the Promise.all listener pairing Playwright needs, so the saved spec drives the new tab without a race.

Shipped

Project conventions file

A .hover/conventions.md in your repo (which flows matter, where login lives, your preferred selectors) feeds the agent at exploration time, so generated specs follow your house style.

Shipped

Community translation seeds

The optimization pass learns from a library of worked examples — built-in for common patterns like downloads, and extensible: you or the community add a seed in .hover/rules/ to teach a new pattern, no fork, no plugin code.

Shipped

Optional AI optimization pass

AI reads a generated spec and proposes a polished version you accept via a diff — observed assertions added, buggy behaviour flagged // KNOWN BUG. The deterministic original is always kept and the pass is off by default.

Planned

Chrome extension

Drop the bundler-plugin dependency so Hover can drive any tab — staging URLs, third-party sites, multi-origin flows. Likely a separate repo; loses source attribution, gains universal page coverage.

Planned

Hover Cloud

A hosted layer over the specs you author locally: intent-driven self-heal, test-rot detection, AI failure diagnosis. Authoring stays local and free; CI still runs plain Playwright.

Pricing

The tool is free, forever. You only pay the AI plan you already have.

Hover bundles no AI runtime and resells no tokens. It rides on the Claude Pro / Max or ChatGPT plan already on your machine — so authoring costs nothing beyond what you pay today, and CI never pays at all.

Open Source

Available now
$0/ forever · self-hosted
  • The full widget — explore any flow in plain English
  • Save as Playwright spec or Jira case
  • Five bundlers + React Native Web
  • Optional @hover-dev/security mode
  • BYO local CLI — claude / codex / cursor-agent / aider
  • Self-hosted, Apache-2.0, no telemetry
Get started in one command →

Hover Cloud

Coming soon
Pricing at launch

A hosted layer that keeps the specs you author locally alive — re-recording the ones UI drift breaks, flagging the ones gone stale. Authoring stays free and local; CI still runs plain Playwright.

  • Self-healing re-record — a selector-only PR when a spec drifts
  • Test-rot detection — which specs no longer match your UI
  • AI failure diagnosis on every red run
  • Runs, monitoring & dashboards — layered on later
Join the waitlist →
Hover Cloud

Free and open-source today.
Cloud is coming.

Everything on this page works right now with npx @hover-dev/cli setup. Cloud keeps the specs you author locally alive with AI — it re-records the ones UI drift breaks and flags the ones that have gone stale:

  • Self-healing re-recordAIwhen UI drift reds a spec in CI, the agent re-records it from the spec's original intent and opens a selector-only PR for you to review
  • Test-rot detectionAIflags specs whose intent no longer matches your live UI — coverage that exists on paper but verifies the wrong thing
  • Failure diagnosisAIeach red run gets an AI read of the trace — real bug, or just a moved selector?
  • Runs, monitoring & dashboardsparallel runs, scheduled checks, and trend / flakiness views — layered on later

CI still runs plain Playwright — the AI works on what already ran (a broken spec, a flaky one), never on a green build. Authoring stays local and free. Leave your email and we’ll tell you when it’s ready; no spam, just the launch.

Email only · no spam · just the launch

FAQ

Questions, answered straight.

Most UI churn doesn’t break the spec — Hover writes semantic getByRole / getByLabel selectors, never CSS or XPath. When the semantics shift, click ⟳ Re-record (or hover re-record <spec>) — the agent replays the original prompt against the current UI and rewrites the spec in ~30 s for ~$0.10. You can also hand-edit the plain Playwright file, or treat a real flow break as a regression the test correctly caught.

Stop hand-writing the tests AI could explore for you.

Add Hover to your dev server in one command. Keep the deterministic Playwright files forever.

Star on GitHub