PinchTab — управление Chrome для AI-агентов на Go
📂 Исходный код на GitHubБраузерный контроль для AI-агентов: standalone HTTP-сервер и CLI на Go. Headless/headed Chrome, профили, мульти-инстансы, аудит и визуальное сравнение сайтов, токен-эффективная экстракция текста.
PinchTab — standalone HTTP-сервер на Go, который даёт AI-агентам прямой контроль над Chrome. 10,2 тысячи звёзд на GitHub. Один самодостаточный бинарник (~15–16 МБ) без внешних зависимостей, MIT-лицензия. Для повседневного локального использования сервер ставится как пользовательский daemon, и агентские инструменты переиспользуют один и тот же «контрольный план» браузера, работающий в фоне.
Установка и запуск
curl -fsSL https://pinchtab.com/install.sh | bash
# или
pinchtab daemon install
Также доступны Homebrew (brew install pinchtab/tap/pinchtab) и npm (npm install -g pinchtab). Установка поднимает сервер и запускает headless Chrome, готовый принимать запросы от агентов или ручные вызовы API.
Основной сценарий:
- установить PinchTab
pinchtab daemon install— сервер работает в фоне- направить агента на
http://localhost:9867 - PinchTab работает как локальный браузерный сервис
Альтернативы без daemon: pinchtab server (запуск control plane напрямую) и pinchtab bridge (один браузер как лёгкий runtime). Есть и CLI с интерактивным меню — просто pinchtab. Для Windows рекомендуется запускать pinchtab server или pinchtab bridge напрямую, daemon-workflow там ограничен.
Первые команды
pinchtab nav https://pinchtab.com --snap # навигация; сервер стартует сам, если нужно
pinchtab snap -i -c # структура страницы: интерактивные элементы
pinchtab click e5 # клик по ref
pinchtab text # извлечение текста
Можно управлять и напрямую через HTTP API — создать профиль, запустить инстанс, открыть вкладку, получить snapshot и кликнуть по элементу, работая с profileId / instanceId / tabId.
Ключевые возможности
- CLI или curl — управление из командной строки или по HTTP API
- Токен-эффективность — текстовая экстракция ~800 токенов на страницу, в 5–13 раз дешевле скриншотов
- Headless и headed — работа без окна или с видимым Chrome
- Мульти-инстанс — несколько параллельных Chrome-процессов с изолированными профилями
- Accessibility-first — refs элементов (
e5) обозначают DOM-узел, а не строку: один и тот же ref переживает смену фильтра или селектора и истекает только при переходе на новый документ - ARM64-оптимизация — поддержка Raspberry Pi с автоматическим детектом Chromium
- CloakBrowser — опциональный провайдер для сайтов, фингерпринтящих стандартный Chromium (бинарь поставляет пользователь)
- Self-contained — один бинарник, никаких внешних зависимостей
Процессная модель
PinchTab сервер-ориентирован: сначала ставится daemon (или запускается pinchtab server), сервер управляет профилями и инстансами, а каждый управляемый инстанс работает за лёгким runtime pinchtab bridge.
- Server — основная точка входа и control plane: профили, инстансы, роутинг, dashboard
- Bridge — runtime для одного браузера, обычно запускается сервером
- Attach — продвинутый режим регистрации внешне управляемых Chrome-инстансов (по умолчанию отключён)
Профиль хранит состояние браузера (cookies, история, localStorage) — логин происходит один раз и переживает перезапуски. На macOS стоит использовать выделенный браузер для автоматизации (Google Chrome for Testing или Chromium), а не основной Chrome: pinchtab doctor browsers предупредит, если автоматизация откатится на основной браузер.
Сценарии использования
Headless навигация
Агент может выполнять задачи вида «какие главные новости об инопланетянах на news.com?» — навигация, извлечение структурированного контента и взаимодействие с DOM без траты токенов на сырой HTML и картинки.
Headed навигация с профилями
Профили можно настраивать с аутентификацией, cookies, расширениями. Запрос «зайди в мой рабочий профиль и скачай еженедельный отчёт» автоматически выбирает нужный профиль и выполняет действие.
Аудит сайтов и визуальное сравнение
pinchtab audit https://example.com --output-dir ./audit # report.json + screenshots/
pinchtab audit https://example.com/sitemap.xml --sitemap --sample-size 2 --output-dir ./audit
pinchtab compare https://example.com https://staging.example.com --fail-on-diff # CI gate
Аудит на уровне браузера: скриншоты, ошибки консоли, битые ассеты, accessibility-оценка, Core Web Vitals и security-находки. compare визуально сравнивает две версии сайта перед релизом.
Docker и распределённая автоматизация
docker run -d \
--name pinchtab \
-p 127.0.0.1:9867:9867 \
-v pinchtab-data:/data \
--shm-size=2g \
pinchtab/pinchtab
Контейнер даёт изолированный песочницей контроль над браузером. PinchTab умеет управлять несколькими Chrome-инстансами (headless или headed) на контейнерах и удалённых машинах: QA-автоматизация, тестовые среды, распределённые браузерные задачи, dev-инструменты.
Интеграция с агентами
Для Grok Build: grok plugin install pinchtab --trust (после публикации в официальном xAI marketplace). Для OpenClaw: openclaw plugins install @pinchtab/pinchtab. Для остальных агентов подходит plain HTTP API или CLI.
Бенчмарк: PinchTab против agent-browser
Замер сквозной стоимости токенов в агентском цикле (Anthropic API); проценты читаются как «PinchTab на N% дешевле agent-browser»:
| Сценарий | Дешевле по стоимости | Меньше запросов | Меньше токенов |
|---|---|---|---|
| Basic Haiku (10 шагов) | 9,5% | 23,0% | 17,9% |
| Extended Haiku (24 шага) | 19,6% | 31,1% | 26,2% |
| Extended Sonnet (24 шага) | 20,3% | 29,4% | 25,3% |
Разрыв растёт с длиной задачи: click→snapshot round-trips накапливаются, при этом результат примерно не зависит от модели.
Безопасность
По умолчанию — local-first модель:
server.bind = 127.0.0.1- cookies dashboard-сессии
Secureтолько при HTTPS - чувствительные endpoint-семейства отключены по умолчанию
attachотключён по умолчанию- IDPI включён с local-only allowlist сайтов
По умолчанию IDPI ограничивает навигацию только локально хостируемыми сайтами — агент не выйдет в публичный интернет, пока вы явно это не разрешите. Dashboard, HTTP API и MCP-сервер считаются привилегированными поверхностями управления: они не предназначены для untrusted пользователей, мульти-тенанта или прямого доступа из интернета. Удалённые и распределённые развёртывания возможны, но это продвинутые operator-managed сценарии, которые нужно закрывать токенами, сетевыми границами и TLS.
Конфиденциальность
Полностью open-source, local-first: никакой телеметрии, аналитики и обязательных исходящих сервисов. Бинарь биндится на 127.0.0.1 по умолчанию, профили хранятся локально, как человеческий браузер. Единый Go-бинарник (~16 МБ) можно собрать из исходников.
Источник: https://github.com/pinchtab/pinchtab