Представьте: вы собрали локального AI-агента на Qwen 8B, хотите, чтобы он сам лазал по сайтам, собирал данные, кликал по кнопкам. Берёте Playwright — и тут же упираетесь в стену: 16K контекста тает на глазах, браузер запускается отдельным процессом, а сам Playwright весит как небольшой фреймворк. Да ещё и в headless-режиме картинки не грузятся, и агент слепнет. Знакомая боль? Тогда barebrowse — это именно то, чего вам не хватало.
Коротко: barebrowse — это минималистичный CDP-драйвер для уже запущенного Chrome/Chromium. Никаких npm install 300 пакетов. Он цепляется к вашему браузеру через remote debugging, выдёргивает ARIA-дерево страницы, обрезает его до значимых элементов (pruned snapshot), и отдаёт агенту. Всё. Токены экономятся за счёт того, что в контекст не летят лишние div, span и прочий мусор.
Как это работает (и почему это гениально просто)
В основе barebrowse — Chrome DevTools Protocol (CDP). Тот же протокол, который используют все современные инструменты автоматизации, но barebrowse не навешивает поверх абстракции вроде Playwright или Puppeteer. Он просто открывает WebSocket к браузеру и дергает Runtime.evaluate с вызовом chrome.dom.getDocument() и последующим анализом ARIA-свойств.
Фишка — в pruned ARIA snapshot. Вместо полного DOM (который может быть 10 тысяч узлов) barebrowse обходит дерево, выкидывает невидимые элементы, пустые обёртки, скрипты, стили. Оставляет только то, что видит пользователь: заголовки, ссылки, кнопки, поля ввода, текст. На выходе — компактный JSON, в котором размер токенов сокращается в 5-10 раз.
Для локальных LLM с контекстом 8-16K это спасение. В статье про автоматизацию браузера на Qwen 8B+4B как раз показывали, что компактный DOM экономит до 80% токенов — barebrowse делает то же самое, только без привязки к конкретному фреймворку планирования.
Без Playwright — не значит без головы
Давайте честно: Playwright — отличная штука, но он для сценариев, где браузером управляет разработчик, а не нейросеть. Когда агент сам решает, что кликнуть, важен не набор методов page.click(), а способность видеть страницу такой, какой её видит человек. ARIA-дерево — это и есть мост между DOM и семантикой.
Прямой конкурент barebrowse — Agent-browser от Vercel. Он тоже позиционируется как альтернатива Playwright для агентов. Но Vercel пошли другим путём: они оставили Playwright под капотом и добавили свой слой для умного взаимодействия. barebrowse же — это хирургически точный инструмент: минимум зависимостей, максимум контроля. Вы сами решаете, когда запускать браузер, сами управляете профилем, сами чистите кэш. Агент получает не скриншот (его всё равно не скормишь LLM с маленьким контекстом), а структурированное представление.
Пример: 3 строки и агент в браузере
Допустим, у вас уже запущен Chrome с флагом --remote-debugging-port=9222. Тогда использование barebrowse выглядит так:
# Установка
pip install barebrowse
# Подключение и получение pruned ARIA snapshot
barebrowse get-snapshot --port 9222 --prune > snapshot.json
Вуаля. В snapshot.json лежит список видимых элементов с их координатами, ролями и текстом. Агент может сам решить, на какой элемент нажать, куда ввести текст. Передать действие обратно в браузер — через тот же CDP: barebrowse execute --action click --target-id 42. Выглядит как чит-код, но это реальность 2026 года.
Сравнение с альтернативами
| Критерий | barebrowse | Playwright | Agent-browser (Vercel) |
|---|---|---|---|
| Зависимости | Только Python + CDP | Node.js + браузерный движок | Node.js + Playwright + 300+ пакетов |
| Объём контекста для одной страницы | ~500-1500 токенов (pruned) | ~8000-30000 токенов (полный DOM) | ~2000-4000 токенов (DOM + действия) |
| Управление браузером | Через внешний Chrome | Встроенный headless | Встроенный с опциями |
| Идеально для | Локальных LLM с контекстом до 16K | E2E-тестов, CI/CD | Веб-скрапинга с планировщиком |
Справедливости ради: barebrowse не умеет делать скриншоты и не поддерживает многопоточность. Но если ваша задача — дать агенту компактное представление страницы, это лучший вариант из существующих. Browser-use агент в WASM, например, решил проблему по-другому — через WebAssembly и запуск прямо в браузере. Но там вы привязаны к среде выполнения, а barebrowse работает где угодно, хоть на Raspberry Pi.
Кому это реально нужно
- Разработчикам локальных AI-агентов, которые замучились воевать с контекстом и хотят простой Python-интерфейс.
- Всем, кто использует LocalLLaMA, Ollama, llama.cpp и мечтает дать своей модели доступ к вебу без аренды GPU-серверов.
- Тем, кто уже пробовал LocalAgent v0.1.1 и ищет лёгкий способ добавить браузерные возможности, не устанавливая полный стек Playwright.
- Параноикам, которые не хотят, чтобы их браузер запускался из-под чужого кода. barebrowse подключается к вашему собственному Chrome — вы контролируете профили, куки и историю.
То, о чём молчат в документации
Есть нюанс: ARIA-дерево сильно зависит от того, как сайт размечен. Если разработчик не прописал правильные роли и атрибуты (а таких сайтов — море), snapshot может быть пустым, и агент не увидит даже кнопку «Войти». В таких случаях barebrowse умеет падать на полный DOM (флаг --fallback), но тогда экономия токенов снижается. Мой совет: тестируйте на целевых сайтах заранее и при необходимости пишите кастомные пращурки.
Ещё один момент: barebrowse не предназначен для автоматизации тысяч страниц в секунду. Это инструмент для одного-двух агентов, работающих в личном кабинете или на домашнем сервере. Для продакшен-нагрузок лучше посмотреть в сторону OpenClaw и Browser Sandbox, где проблема узкого места решена на уровне кластеризации.
Прогноз: почему barebrowse может стать стандартом для локальных агентов
2026 год — время, когда AI-браузеры вроде Comet от Perplexity пытаются объединить поиск и агентность, а локальные решения требуют максимальной эффективности токенов. barebrowse занимает нишу «ничего лишнего»: он идеально ложится в архитектуру, где LLM работает на CPU, а браузер — это просто окно для выполнения действий.
Через год-два Microsoft или Google могут добавить встроенную поддержку ARIA-подобных снимков прямо в Edge/Chrome, и надобность в barebrowse отпадёт. Но сейчас, в середине 2026-го, это самый доступный способ сэкономить 60-80% токенов без покупки дополнительной памяти. Попробуйте — ваш локальный агент скажет спасибо.