hwatu MCP
Безголовый браузер на WebKit проверяет страницы одним вызовом за 35 мс, сравнивает вид по пикселям и передает сессию человеку.
- 118 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Агент открывает страницы, выполняет в них JavaScript и вводит данные в формы: доступ к сессиям и локальным сайтам.
- Установщик запускается через `curl | bash`.
Установка
- Работает в
Ручная установка
curl -fsSL https://raw.githubusercontent.com/hongnoul/hwatu/main/scripts/install.sh | bashПервый вариант установки из README ставит один статический бинарник. Нужен также пакет `webkitgtk-6.0`. В Arch есть `yay -S hwatu`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Агент открывает страницы, выполняет в них JavaScript и вводит данные в формы: доступ к сессиям и локальным сайтам.
- Установщик запускается через `curl | bash`.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Демон держит прогретый движок WebKit, а агент обращается к нему по MCP, через CLI или строкой JSON в Unix-сокет. Одна команда `hwatu check` открывает страницу, выполняет выражение, делает снимок и возвращает консоль и время загрузки. `hwatu diff` дает процент совпадения двух страниц с тепловой картой, а `motion` описывает анимации числами: длительность, кривую, скорость. Окна по умолчанию невидимы и не забирают фокус. Когда проверке нужен человек, например при CAPTCHA, `hwatu focus <id>` превращает ту же сессию в обычное окно. Функция `challenge` только обнаруживает защиту и ждет, решать ее она не умеет.
Для кого. Разработчики на Linux, у которых агент правит интерфейс и должен сам проверять результат в браузере без Chromium и Node.
Подходит, если
- Агент поправил верстку и сравнивает ее с эталоном, поднимая процент совпадения.
- После изменения формы нужно пройти сценарий, перезагрузить страницу и убедиться, что данные сохранились.
- Параллельно идут несколько агентов, и окна браузера не должны мешать работе за компьютером.
- Анимацию на эталонной странице нужно измерить и повторить.
Не подходит, если
- Нужна проверка в Chromium: hwatu рисует страницы на WebKit, для движковых ошибок держите отдельный набор Playwright.
- Вы работаете на macOS или Windows: поддерживается только Linux.
- Нужны Widevine или passkeys: WebKitGTK их не поддерживает.
Пример запроса к агенту
Открой localhost:3000 через hwatu, проверь, что после сохранения имени на /settings появляется сообщение об успехе, перезагрузи страницу и сообщи об ошибках консоли.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
Только Linux, нужен пакет `webkitgtk-6.0` из дистрибутива. Установщик запускается как `curl ... | bash`: перед запуском прочитайте скрипт `scripts/install.sh`. Цифры автора (35 мс на проверку, девятикратный отрыв от Playwright) получены на его замерах и описаны в `docs/benchmarks.md`. Подключения мало: без инструкции в `AGENTS.md`, `CLAUDE.md` или правилах Cursor агент может не вызывать проверки. Widevine и passkeys в WebKitGTK нет. Все ключевые сценарии рассчитаны на Linux.
Как отключить. Остановите демон, удалите запись `hwatu` из конфигурации MCP и выполните `hwatu setup --undo` для отката настройки агента.
Частые вопросы
Как подключить hwatu к Claude Code?
Выполните `hwatu setup --client claude --scope project`. Предварительный просмотр дает флаг `--dry-run`, откат делает `--undo`. Вручную добавляется запись `{"command": "hwatu", "args": ["mcp"]}`.
Чем hwatu отличается от Playwright?
Он возвращает измерения вместо сырых снимков: процент совпадения, числа анимаций, результат проверки `expect`. Проверка страницы занимает один вызов вместо пяти.
Решает ли hwatu CAPTCHA?
Нет. `challenge` только находит защиту и ждет. Решает человек в окне, которое открывает `hwatu focus <id>`.
На каких системах работает hwatu?
Только на Linux с WebKitGTK 6. На Arch ставится через `yay -S hwatu`, из исходников собирается командой `cargo build --release`.
Что нужно, чтобы агент пользовался hwatu?
Подключения мало. Добавьте в `AGENTS.md`, `CLAUDE.md` или правила Cursor инструкцию проверять результат после изменений интерфейса через `expect`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыMCP-сервер, который запускает несколько браузерных агентов и проверяет сайт на битые ссылки, ошибки интерфейса и доступность
Интерактивный HTTP-клиент позволяет проверить запрос из браузера, изменить его параметры и изучить ответ в терминале.
kogiQA MCP дает агенту браузер, который находит элементы страницы без селекторов, для отладки веб-приложений и e2e-тестов
Скилл проверки кода агента в настоящем браузере: читает ваши изменения, составляет план теста и прогоняет его через Playwright с вашими куки
Один бинарник для автоматизации браузера агентом: CLI со скиллами browser и check, MCP-сервер и клиенты для JS, Python и Java
websocat подключается к WebSocket из терминала, передает текстовые и бинарные сообщения и помогает проверять сетевые сервисы.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| hwatu (эта карточка) | нет | не нужна | 118 | |
| Playwright MCP | да | не нужна | 39 261 | управляет браузером Chromium и отдает снимки; hwatu на WebKit возвращает измерения, процент совпадения и числа анимаций |
| Chrome DevTools MCP | да | не нужна | 54 879 | подключается к вашему Chrome с его вкладками; hwatu держит собственный невидимый движок и не занимает фокус |
Коротко о README
Цикл проверки в README устроен так: эталон и правки сравниваются командой `diff`, правки повторяются до нужного процента. Автор довел копию лендинга Stripe с 85,1 до 98,8 процента совпадения.