hwatu MCP

A headless WebKit browser verifies pages in one call, scores pixel diffs and hands the live session to a human.

  • 118 ★ on the repository
  • Last commit
MCP server

Extended access

Why this level

  • The agent opens pages, runs JavaScript in them and types into forms, which exposes sessions and local sites.
  • The installer runs through `curl | bash`.
All reasons and checks

hongnoul/hwatu

Install

Manual install

curl -fsSL https://raw.githubusercontent.com/hongnoul/hwatu/main/scripts/install.sh | bash

The first README install option puts a single static binary in place. The `webkitgtk-6.0` package is also required. Arch has `yay -S hwatu`.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The agent opens pages, runs JavaScript in them and types into forms, which exposes sessions and local sites.
  • The installer runs through `curl | bash`.

This is third-party code. Review the repository files before installing.

What it does

A daemon keeps a warm WebKit engine, and an agent reaches it over MCP, the CLI or one JSON line on a Unix socket. A single `hwatu check` command opens a page, runs an expression, takes a screenshot and returns console output and load time. `hwatu diff` gives a match percentage for two pages with a heatmap, and `motion` expresses animations as numbers: duration, easing, velocity. Windows are invisible by default and never steal focus. When a check needs a human, such as a CAPTCHA, `hwatu focus <id>` turns the same session into a normal window. The `challenge` feature only detects protection and waits; it cannot solve it.

Who it is for. Linux developers whose agent edits a UI and must verify the result in a browser itself, without Chromium or Node.

Good fit when

  • An agent adjusted a layout and compares it to a reference, climbing the match percentage.
  • After a form change, a scenario must run, reload and confirm the data persisted.
  • Several agents run in parallel and browser windows must not interrupt work at the computer.
  • An animation on a reference page must be measured and reproduced.

Not a fit when

  • You need to test in Chromium, because hwatu renders with WebKit; keep a Playwright matrix for engine-specific bugs.
  • You work on macOS or Windows, since only Linux is supported.
  • Widevine or passkeys are required, which WebKitGTK does not support.

Example request

Open localhost:3000 with hwatu, verify the success message after saving a name on /settings, reload the page and report any console errors.

MCP

Transport
stdio
Authentication
not required

Limitations

Linux only, with the distro `webkitgtk-6.0` package required. The installer runs as `curl ... | bash`, so read `scripts/install.sh` first. The author's figures (35 ms per check, about nine times faster than Playwright) come from their own measurements described in `docs/benchmarks.md`.

How to disable. Stop the daemon, remove the `hwatu` entry from the MCP config and run `hwatu setup --undo` to revert agent setup.

FAQ

How do I connect hwatu to Claude Code?

Run `hwatu setup --client claude --scope project`. `--dry-run` previews changes and `--undo` reverts them. Manually, add the entry `{"command": "hwatu", "args": ["mcp"]}`.

How is hwatu different from Playwright?

It returns measurements instead of raw screenshots: match percentage, animation numbers and `expect` results. A page check takes one call instead of five.

Does hwatu solve CAPTCHAs?

No. `challenge` only detects protection and waits. A human solves it in the window that `hwatu focus <id>` opens.

Which systems does hwatu run on?

Linux only, with WebKitGTK 6. On Arch install it with `yay -S hwatu`, or build from source with `cargo build --release`.

What makes an agent actually use hwatu?

Connecting is not enough. Add an instruction to `AGENTS.md`, `CLAUDE.md` or Cursor rules to verify UI changes with `expect`.

Discussion

No questions or reviews yet.

Needs a VPN

An MCP server that spins up several browser agents to test a site for broken links, UI bugs and accessibility issues

MCP serverExtended access835Repository stars

The interactive HTTP client lets you inspect a browser request, change parameters and explore its response in the terminal.

CLIExtended access10.7KRepository stars
Official

kogiQA MCP gives an agent a browser that finds page elements without selectors, for debugging web apps and writing e2e tests

MCP serverExtended access88Repository stars

A skill that tests your agent's code in a real browser: reads your changes, builds a test plan and runs it through Playwright with your own cookies

SkillBroad access3.6KRepository stars

One binary for agent browser automation: a CLI with browser and check skills, an MCP server and clients for JS, Python and Java

CLIBroad access2.9KRepository stars

websocat connects to WebSocket services from the terminal, sends text or binary messages and supports protocol debugging.

CLIExtended access8.7KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
hwatu (this card)nonot required118
Playwright MCPyesnot required39,261drives a Chromium browser and returns snapshots; hwatu on WebKit returns measurements, match percentages and animation numbers
Chrome DevTools MCPyesnot required54,879attaches to your Chrome with its tabs; hwatu keeps its own invisible engine and never takes focus

README in short

The README walks through a verification loop: a reference and the edit are compared with `diff`, then edits repeat until the target match. The author raised a clone of the Stripe landing page from 85.1 to 98.8 percent.

README badge

Report a problem

Foxx AIhwatu
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.