Let an AI agent verify its web page changes match a reference design by comparing pixel-diff scores.
Take over an invisible browser session to solve a CAPTCHA or approve an OAuth consent, then hand control back to the agent.
Measure and debug animation timing by reading structured numeric data from a rendered page.
Integrate with AI coding tools like Claude Code or Cursor to add visual verification to an automated workflow.
| hongnoul/hwatu | anthropics/cargo-nix-plugin | brassworks-smp/brassworkslauncher | |
|---|---|---|---|
| Stars | 13 | 13 | 13 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | hard | — |
| Complexity | 4/5 | 4/5 | 3/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Linux-only, runs as a static binary paired with the system's WebKit library, and requires an MCP-compatible client or manual Unix socket scripting.
Hwatu is a browser built specifically for AI coding agents that need to verify whether a web page looks correct. Instead of an agent guessing whether its changes rendered properly, hwatu gives it concrete numbers: pixel-diff scores, animation timing as data, and screenshots taken at precise moments during animations. When an agent hits a problem it cannot solve alone, like a CAPTCHA or a judgment call, a single command brings that invisible session onto your screen as a real window. You step in for a few seconds, solve it, and the agent resumes. The core workflow is a tight loop. An agent opens a page it built and a reference page it is trying to match, both invisibly. It runs a diff command and gets back a match percentage plus a heatmap showing exactly where the two renders diverge. It reads animation properties as structured numbers, edits its code, and diffs again. The README reports that an agent used this loop to take a Stripe landing page clone from 85.1 percent to 98.8 percent pixel match. A full verification pass takes about 87 milliseconds, and spawning a new window from the running daemon takes 13 milliseconds. Hwatu runs as a small static binary paired with your system's WebKit library. There is no large browser download and no Node.js dependency. It integrates with MCP-compatible clients like Claude Code and Cursor through a single configuration entry, and any script can also drive it by sending newline-delimited JSON over a Unix socket. The standout capability is human handoff. Every invisible agent session is actually a real window that the system has simply not displayed yet. When the agent calls focus on a session ID, that session appears in your window manager with all its cookies, scroll position, and form state intact. The same mechanism handles OAuth consents, two-factor prompts, and payment confirmations. Hwatu detects known agent environments automatically so it never accidentally puts a window on your desktop. The README is honest about limitations. It renders WebKit, not Chromium, so it is the wrong tool for catching engine-specific bugs. It is Linux-only today, and its memory usage is higher than headless Chromium alternatives because every window is a real GPU-composited surface. The full README is longer than what was shown.
A browser built for AI coding agents to verify web page rendering. Agents get pixel-diff scores and screenshots invisibly, and can hand off tricky screens to a human who solves them and hands control back.
Mainly Rust. The stack also includes Rust, WebKit, Unix sockets.
The explanation does not mention a license for this repository.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
double-check against the repo, no cap.