explaingit

hongnoul/hwatu

Analysis updated 2026-05-18

13RustAudience · developerComplexity · 4/5Setup · moderate

TLDR

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.

Mindmap

mindmap
  root((repo))
    What it does
      Pixel diff scoring
      Animation timing data
      Human handoff
    Tech stack
      Rust
      WebKit
      Unix sockets
    Use cases
      Verify visual changes
      Solve captchas
      Handle OAuth prompts
    Audience
      AI coding agents
      Developers using Claude
    Limitations
      Linux only
      WebKit not Chromium
      Higher memory usage

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Let an AI agent verify its web page changes match a reference design by comparing pixel-diff scores.

USE CASE 2

Take over an invisible browser session to solve a CAPTCHA or approve an OAuth consent, then hand control back to the agent.

USE CASE 3

Measure and debug animation timing by reading structured numeric data from a rendered page.

USE CASE 4

Integrate with AI coding tools like Claude Code or Cursor to add visual verification to an automated workflow.

What is it built with?

RustWebKitUnix sockets

How does it compare?

hongnoul/hwatuanthropics/cargo-nix-pluginbrassworks-smp/brassworkslauncher
Stars131313
LanguageRustRustRust
Setup difficultymoderatehard
Complexity4/54/53/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

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.

The explanation does not mention a license for this repository.

In plain English

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.

Copy-paste prompts

Prompt 1
I want to use hwatu with Claude Code to visually verify my web page changes. Give me the MCP configuration entry and a sample prompt so the agent can diff my page against a reference URL.
Prompt 2
My AI agent hit a CAPTCHA while running in a hwatu invisible session. Write the command the agent should send to hand the session to me so I can solve it on my screen.
Prompt 3
I have two local HTML files: my current render and a target design. Write a script that sends newline-delimited JSON to hwatu's Unix socket to get a pixel-diff match percentage and heatmap.
Prompt 4
My agent is using hwatu to match a landing page. It is stuck at 85 percent pixel match. Suggest an iterative prompt loop the agent can follow using diff results to push past 98 percent.

Frequently asked questions

What is hwatu?

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.

What language is hwatu written in?

Mainly Rust. The stack also includes Rust, WebKit, Unix sockets.

What license does hwatu use?

The explanation does not mention a license for this repository.

How hard is hwatu to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is hwatu for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.