Browser Control CLI

Локальный драйвер Playwright для вашего обычного Chromium-браузера: агент работает в живом профиле с логинами через расширение и relay

  • 498 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Расширение просит широкие права: `debugger`, `tabCapture` и скрипт статуса на всех адресах
  • Агент получает доступ к залогиненным сессиям вашего профиля, включая почту, банки и рабочие кабинеты
  • Browser Control не песочница: он исполняет присланный код с доступом к странице и части API Node.js
Все причины и проверки

anomalyco/browser-control

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/browser-control

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Расширение просит широкие права: `debugger`, `tabCapture` и скрипт статуса на всех адресах
  • Агент получает доступ к залогиненным сессиям вашего профиля, включая почту, банки и рабочие кабинеты
  • Browser Control не песочница: он исполняет присланный код с доступом к странице и части API Node.js

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Browser Control дает доверенному агенту управлять вашим настоящим браузером на Chromium (Chrome, Brave, Edge, Arc) через Playwright. Агент работает в вашем профиле с залогиненными сессиями и установленными расширениями, отдельный браузер без окна не запускается. Запрос идет так: агент или CLI, локальный `relay`, расширение, браузер. Драйвер работает локально и сам модель не содержит. Главный интерфейс — код. Команда `browser-control execute '...'` принимает фрагмент Playwright и возвращает результат, логи, предупреждения и сводку изменений. Сессии сохраняют страницу и переменную `state` между вызовами, а журнал лежит в `~/.browser-control/sessions/<id>/journal.jsonl`. Функция `snapshot()` отдает компактное описание страницы со ссылками вроде `[ref=e12]`, по ним агент кликает в следующем вызове. Для шагов, которые обязан пройти человек, есть `handoff()`: CAPTCHA, двухфакторный вход, подтверждение платежа. Скрипт ждет, пока вы нажмете кнопку завершения на странице. Уже открытую вкладку можно подключить командой `browser-control session adopt`. Для приложений есть клиент на TypeScript и профили секретов, которые подставляют `BC_SECRET_N` в дочерние процессы, не раскрывая значения родителю.

Для кого. Разработчикам агентов и автоматизации, которым нужны страницы за логином в их собственном браузере: личные кабинеты, внутренние панели, сервисы с двухфакторным входом.

Подходит, если

  • Агенту нужна страница за логином, и входить заново в отдельном браузере без окна не хочется
  • На пути встретилась CAPTCHA или двухфакторный вход, и этот шаг должен пройти человек через `handoff()`
  • Вкладка уже открыта и залогинена, и скрипту надо подхватить ее: `browser-control session adopt --target-url github.com`
  • Надо записать обмен запросами авторизованного приложения в HAR и потом вызывать его без браузера, подставляя секреты через `secrets run`

Не подходит, если

  • Тесты идут в изолированном CI-браузере: профиля пользователя и расширения там нет
  • Код агента недоверенный: Browser Control исполняет его с доступом к выбранной странице и ее сессиям
  • Браузер не на Chromium: Firefox и Safari не поддерживаются
  • Браузером надо управлять на другой машине: авторизованного удаленного `relay` нет

Пример запроса к агенту

Открой мою вкладку с GitHub через Browser Control и верни заголовок страницы и список открытых запросов на слияние

Ограничения

Нужен Node.js 22.19 или новее и браузер семейства Chromium. Расширение пока ставится вручную как распакованное через `chrome://extensions` с режимом разработчика, в Chrome Web Store его нет. Скачивания Playwright недоступны, потому что Chromium блокирует нужные команды через `chrome.debugger`, а байты ответа записывают в файл модулем `fs`. Запись CDP требует `ffmpeg`, активирует записываемую вкладку и идет без звука. `relay` слушает только `127.0.0.1:19989`, поэтому инструмент рассчитан на доверенное локальное использование.

Как отключить. Отключите или удалите расширение на странице `chrome://extensions`, затем выполните `npm uninstall --global @opencode-ai/browser-control`. Журналы сессий остаются в `~/.browser-control/`, удалите их при желании.

Частые вопросы

Как установить Browser Control в OpenCode?

Выполните `opencode plugin add @opencode-ai/browser-control`: плагин сам подключит MCP-точку входа и зарегистрирует скилл `browser`, который вызывается как `@browser`. Скилл и MCP отдельно ставить не надо. Расширение браузера загружают вручную.

Как подключить Browser Control к Claude Code?

Поставьте пакет и скилл, затем при желании добавьте MCP командой `claude mcp add browser-control -- browser-control-mcp`. Агенту, который умеет запускать команды оболочки, достаточно скилла, а MCP нужен клиентам, которые предпочитают инструменты.

Что произойдет с моими куки и кешем?

`relay` блокирует браузерные команды CDP, которые стирают куки, чистят кеш или закрывают браузер. Это защита от случайных ошибок, а не граница безопасности: скрипт видит выбранную страницу и ее залогиненное состояние.

Как проверить, что установка работает?

Запустите `browser-control execute 'await page.goto("https://example.com"); return { title: await page.title(), url: page.url() }'`. Успешный запуск вернет заголовок Example Domain и идентификатор сессии, а `browser-control status` покажет подключенное расширение.

Что делать после обновления пакета через npm?

Перезагрузите распакованное расширение на странице расширений браузера. Если появилось предупреждение об устаревшем `relay`, завершите записи и сырую работу с CDP и выполните `browser-control relay restart`: вкладки и идентификаторы сессий сохранятся, а состояние JavaScript сбросится.

Обсуждение

Вопросов и отзывов пока нет.

Официальный

MCP и CLI, которые дают агенту управлять вашим настоящим Chrome с его логинами и расширениями через Playwright

MCP-серверШирокий доступ4,1 тыс.Звезды репозитория

Браузер для агента на прямом CDP без Playwright: профили с логинами, CLI, MCP-сервер и запись сценариев в скилл

CLIШирокий доступ75Звезды репозитория
Официальный

Локальная платформа автоматизации браузера: MCP-сервер, CLI и скиллы, чтобы агент управлял Chrome, заполнял формы и доставал данные со страниц

MCP-серверШирокий доступ1,4 тыс.Звезды репозитория

Превращает любой сайт в команду и дает агенту работать в уже залогиненном браузере пользователя через Playwright

CLIШирокий доступ31 тыс.Звезды репозитория
Выбор редакции

CLI, скилл и Python-библиотека для управления браузером: агент кликает, заполняет формы и читает страницы через CDP

CLIШирокий доступ120,9 тыс.Звезды репозитория
Официальный

Скилл cdp: агент управляет вашим Chrome напрямую через протокол DevTools, 652 типизированных метода без готовых click и goto

СкиллШирокий доступ499Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Browser Control (эта карточка)нет498
Playwright MCPдане нужна39 570официальный MCP-сервер Microsoft, который по умолчанию запускает собственный браузер, а Browser Control подключается к вашему браузеру с профилем через расширение
Browser Useнет120 922библиотека и CLI со своим циклом агента, а у Browser Control драйвер без LLM, и решения принимает ваш агент

Коротко о README

Описание начинается со схемы агент, relay, расширение, браузер и быстрого старта для OpenCode и для остальных агентов. Дальше разобраны сессии, захват вкладки, приемы осмотра страницы, передача человеку, запись трафика с секретами, границы безопасности и обновления, а в конце собраны команды для разработки и проверки самого проекта.

Бейдж для README

Сообщить о проблеме