Твои агенты управляют настоящим браузером.
Не фейковым.
AgentsRoom встраивает настоящий браузер Chromium в каждый проект и поставляется с сервером AgentsRoom Browser MCP, который позволяет твоим ИИ-агентам им управлять. Твой QA-агент открывает сайт на localhost, кликает кнопки, заполняет формы, делает скриншоты, читает консоль и проверяет, что фича реально работает, прежде чем сказать done. End-to-end browser automation для Claude, Codex, GitHub Copilot CLI, Cursor и 13 других CLI-агентов, с нулевой конфигурацией Playwright.
Сочетай это с Agent Teams: Dev-агент выпускает фичу, QA-агент загружает сайт localhost во встроенном браузере, прогоняет сценарий проверки, делает скриншот результата и согласовывает. Нативная browser automation тоже в roadmap, с планируемыми будущими MCP-серверами для приложений React Native и Electron, чтобы агенты также могли тестировать мобильные и desktop приложения.
Реальная сессия, снятая в приложении: ИИ-агент для кода, которому разрешено управлять встроенным браузером, добавляет подписку на рассылку на страницу магазина, запущенного локально. Он сам открывает страницу, вводит тестовый адрес почты и нажимает Subscribe, замечает, что форма остаётся на экране, исправляет собственные стили и пробует снова. Затем рассказывает, что увидел в браузере.
Browser Automation в AgentsRoom объединяет две вещи. Первое: настоящий браузер Chromium, встроенный в каждый room проекта, с адресной строкой, кнопками back/forward, перезагрузкой, историей, скриншотом в буфер обмена, открытием в браузере по умолчанию, постоянными cookies и localStorage для каждого проекта. Второе: сервер AgentsRoom Browser MCP (agentsroom-browser), который открывает этот браузер вашим ИИ-агентам через Model Context Protocol. Агент получает чистый интерфейс, которым можно управлять из скриптов: перейти по адресу, кликнуть, ввести текст, сделать скриншот, выполнить JavaScript, дождаться элемента, получить состояние страницы, получить логи консоли, вернуться назад, перейти вперёд, перезагрузить страницу.
Почему это важно? Потому что вся обещание ИИ-агентов кодинга разваливается, когда агент говорит 'feature shipped' но никогда не открывает страницу чтобы проверить. Большинство агентов сегодня полагаются на запуск unit-тестов, потом надеются. С настоящим browser MCP агент загружает localhost-сервер, прогоняет user flow, видит то что увидел бы человек-пользователь, и только тогда согласовывает. Роль QA Engineer agent наконец-то имеет инструменты которые ей нужны для настоящего QA, а не только статического анализа.
Технический setup невидим для тебя. Когда ты ставишь галку 'Browser access' на агенте, AgentsRoom мерджит запись agentsroom-browser в .mcp.json твоего проекта и агент стартует с доступными инструментами браузера. Мост WebSocket, работающий на loopback-порту (127.0.0.1, назначаемый OS, регенерируемый при каждом boot, аутентифицируемый 32-байтовым hex-токеном), соединяет MCP-subprocess с WebContentsView Chromium в Electron-приложении. Каждый клик, каждый ввод, каждый скриншот: JSON-RPC вызов. Агент видит настоящий браузер, не stub.

Панель Browser AgentsRoom: URL-бар, history, скриншот и полная поверхность контроля MCP для ИИ-агентов чтобы навигировать, кликать, вводить и проверять.
Настоящий браузер, не Playwright stub
Большинство демок ИИ-агентов, говорящих о browser automation, используют headless Playwright-инстанс, спавнящийся при каждом вызове инструмента. Это работает для бенчмарков, но это болезненно в реальной жизни: ты не видишь что делает агент, каждая навигация respawnит Chromium, cookies теряются, localStorage пуст, твой dev-сервер думает что каждый визит: новая сессия. AgentsRoom берёт другой угол. Браузер уже открыт в твоём room проекта (ты сам им пользуешься, как обычным браузером), и агент управляет этим браузером. Сессии, cookies, localStorage, состояние логина: всё сохранено.
Каждый клик и ввод от агента триггерит настоящий нативный dispatch через WebContentsView Electron, с правильными key-events, mouse-events и DOM-мутациями. Скриншоты: настоящие PNG, захваченные с реально отрендеренной страницы (не DOM-to-image хак). Логи консоли буферизуются и queryable, включая warnings и errors. Агент видит то же самое, что увидел бы ты с открытыми DevTools: настоящую производительность, настоящее network-поведение, настоящий CORS, настоящий auth.
Cross-room изоляция обеспечивается. AgentsRoom создаёт один Chromium WebContentsView на проект, со своей session-партицией (persist:agentsroom-browser-<projectId>). Cookies проекта A никогда не утекают в проект B. Когда ты переключаешь проект, предыдущий браузер скрывается и новый выходит online со своим состоянием. Агент всегда приземляется на правильном проекте, с правильными credentials.
Слой MCP намеренно мал и без зависимостей. Subprocess browser-mcp-server.cjs говорит на протоколе MCP 2024-11-05 через stdio (initialize, tools/list, tools/call) и переводит его в JSON-RPC вызовы по loopback WebSocket-мосту. По сравнению с тяжёлым SDK-based сервером, остаётся быстрым (первый вызов инструмента sub-100ms) и легко дебажится. После каждого действия меняющего страницу (клик, ввод, navigate, reload, back, forward), ответ включает base64 PNG-скриншот, ограниченный 1.6 MB, так что агент всегда видит результат того что только что сделал. Это оказалось одной из самых больших побед по надёжности: агенты, которые видят экран, делают правильное намного чаще чем агенты которые надеются.
Тулкит Browser MCP который получают твои агенты
Каждый ИИ-агент с browser-доступом стартует с этими инструментами. Они выставлены через стандартный MCP, так что любой совместимый CLI их видит: Claude, Codex, GitHub Copilot CLI, Cursor и 13 других CLI-агентов.
browser_navigate
Открыть URL во встроенном браузере. Smart URL handling: localhost:3000 становится http://localhost:3000 вместо триггера диалога 'cannot open application'. Возвращает финальный URL и скриншот страницы после загрузки.
browser_click
Кликнуть на элемент по селектору или по видимому тексту. Настоящий нативный click event, не JavaScript-dispatch. Возвращает post-click скриншот, так что агент видит результат своего действия.
browser_type
Ввести текст в input или textarea. Поддерживает горячие клавиши и submit. Настоящие key-events, обработчики onChange страницы срабатывают. Возвращает скриншот после ввода.
browser_screenshot
Захватить текущий viewport как PNG. Полезно для проверок визуальной регрессии, design QA, before-and-after сравнений или для шеринга состояния бага с остальной командой.
browser_evaluate
Запустить выражение JavaScript в main world страницы. Получить обратно сериализованный результат. Используется агентами для чтения состояния страницы, query DOM, инспекции Redux store или триггера действия которое не имеет видимой кнопки.
browser_wait_for
Ждать появления элемента, изменения URL, завершения сетевого запроса или возврата true произвольным JavaScript. Избегает классической гонки 'агент кликает слишком быстро'.
browser_get_state
Прочитать текущий URL, заголовок, viewport, scroll-позицию и структурированный snapshot доступных элементов страницы. Основной input агента, когда ему надо спланировать следующее действие.
browser_get_logs
Вытащить буфер консоли (log, warn, error). Агент может видеть те же React warnings, hydration-ошибки, network failures и runtime exceptions, которые видел бы ты в DevTools. Bug-репорты становятся 'вот ошибка из консоли'.
browser_set_viewport
Изменяет viewport страницы, чтобы агент оценивал layout при реальной ширине, а не при том размере, который случайно имеет панель. Пресет устройства (от iPhone SE до iPad Pro) даёт настоящую мобильную семантику: учитывается viewport meta tag, срабатывают touch-события, соответственно меняются devicePixelRatio и user agent. Произвольная ширина покрывает desktop-брейкпоинты. Встроенная панель одновременно меняет размер, так что ты видишь именно ту страницу, которую оценивает агент, и можешь вернуть исходный размер из меню устройств.
browser_go_back / forward / reload
Стандартная навигация браузера, scriptable. Используется агентами для возврата когда flow идёт не так, или для re-теста страницы после hot reload от Vite, Next.js или Expo Metro. Этот браузер работает с отключённым HTTP-кэшем, поэтому агент всегда видит последнюю сборку, а не устаревший бандл; useCache: true снова разрешает кэш для одной загрузки.
Что агенты реально делают с браузером
Настоящие воркфлоу которые можно построить уже сегодня, с ролью QA Engineer и Agent Teams.
End-to-end smoke-тест на каждом хендоффе
Подключи команду Dev в QA. QA-агент навигирует на твой dev-сервер localhost, прокликивает критичные пути (signup, checkout, dashboard), делает скриншот результата и согласовывает только если ничего не падает. Лови регрессии до того как человек откроет страницу.
QA визуальной регрессии
Before-and-after скриншоты на UI-изменениях. Агент загружает страницу на предыдущем коммите, скриншот, переключает branch, скриншот, просит Claude сравнить. Дешёвый QA визуального diff без Percy или Chromatic в петле.
Охота на ошибки в консоли
Агент проходит по приложению, вызывает browser_get_logs и находит предупреждения о гидратации React, предупреждения useEffect, сетевые ошибки 404, ошибки CORS, сообщения об устаревших API. Он передаёт их списком рисков в хендоффе команды, а следующий Dev-агент их исправляет.
Тестирование валидации форм
Агент заполняет форму валидными данными, пустыми полями, edge-кейсами (XSS-строки, очень длинные input, non-ASCII). Проверяет сообщения валидации, сетевые запросы, редиректы. Настоящий QA форм, не unit-тесты.
Аудит accessibility
Агент проходит по странице, query accessibility tree через browser_get_state и browser_evaluate, проверяет alt-тексты, ARIA-атрибуты, focus management, навигацию с клавиатуры. Репортит проблемы со скриншотами.
Design QA против Figma
Сочетай с фичей Figma to AI agents. Агент загружает Figma-frame, скриншот, загружает страницу localhost, скриншот, сравнивает spacings, шрифты, цвета, alignments. Заводит список несоответствий.
Проверка тоннеля live preview
Сочетай с localhost-тоннелем AgentsRoom. Агент навигирует на публичный HTTPS preview URL (не localhost), проверяет что сайт доступен из внешнего мира, делает скриншот и подтверждает что stakeholder может реально открыть ссылку.
Воспроизведение бага клиента из публичного тикета бэклога
Приходит публичный тикет бэклога с URL и шагами для воспроизведения. QA-агент открывает URL, следует шагам, ловит ошибку консоли, прикрепляет скриншот, делает хендофф к Dev с чистым repro. Конец циклам 'cannot reproduce'.
Укажите на элемент и отправьте его прямо агенту
Управление браузером: это лишь половина дела. Иногда именно вы замечаете проблему: неровную кнопку, подпись с неправильным текстом, карточку, которая ломается на мобильном. Вместо того чтобы описывать это словами, вы указываете на это. Во встроенном браузере есть режим указания: кликните по любому элементу страницы, и AgentsRoom считает его точный CSS-селектор из живого DOM.
Добавьте короткую заметку, например «уменьшите этот отступ» или «здесь неправильный цвет», и указанный элемент вместе с вашей пометкой отправляются активному агенту как точный, однозначный запрос на изменение. Больше никаких «третья карточка слева»: агент получает селектор, окружающий контекст и ваше намерение за один раз.
Режим указания в браузере AgentsRoom: кликните по элементу, добавьте заметку, и точный селектор вместе с вашей пометкой отправляются агенту как указанное изменение.
Включите режим указания
Откройте встроенный браузер на вашем приложении и нажмите кнопку указания. Каждый элемент подсвечивается при наведении.
Кликните по элементу
Кликните по кнопке, текстовому блоку или карточке, которую хотите изменить. AgentsRoom фиксирует его и считывает точный CSS-селектор из живого DOM.
Добавьте заметку и отправьте
Напишите, что нужно изменить, и подтвердите. Селектор, окружающий контекст и ваша заметка передаются активному агенту как указанное изменение.
Нужен ваш настоящий Chrome?
Управляйте тем Chrome, где вы залогинены, с Chrome control
Встроенный браузер создан для вашего localhost: чистая сессия, ничего вашего на кону. Когда для задачи нужны ваши реальные аккаунты, админка за вашим SSO, сервис, где залогинены только вы, расширение AgentsRoom превращает каждый профиль Chrome в именованную цель, которой могут управлять ваши агенты, на этой машине или на другой, теми же инструментами браузера.
Читать страницу Chrome controlКак агент получает браузер
Открой вкладку Browser в room
В room проекта правая панель выставляет три вкладки: Files, Changes, Browser. Кликни Browser. Панель расширяется, sidebar сворачивается, и появляется настоящий Chromium-вид. Введи URL или выбери из истории проекта.
Поставь галку 'Browser access' на агенте
Открой модал Edit Agent, разверни Capabilities, поставь галку Browser access. AgentsRoom мерджит запись agentsroom-browser в .mcp.json твоего проекта и агент увидит инструменты браузера при следующем старте.
<project>/.mcp.jsonАгент стартует с browser MCP
При спавне агента Claude (или Codex, Antigravity и т.д.) инициализирует MCP-сервер agentsroom-browser, листует свои инструменты (browser_navigate, browser_click, browser_type, browser_screenshot, browser_evaluate, browser_wait_for, browser_get_state, browser_get_logs, browser_set_viewport, browser_go_back, browser_go_forward, browser_reload), и с этого момента может управлять браузером.
Агент использует браузер
Агент навигирует, кликает, вводит, делает скриншоты, читает консоль. Каждое действие идёт через мост loopback WebSocket (127.0.0.1, порт назначаемый OS, 32-байтовый hex-токен, регенерируемый при каждом boot desktop-приложения). После каждого действия меняющего страницу, скриншот возвращается inline, так что агент визуально проверяет свой ход.
Авто-таргет на localhost или твой тоннель
Если localhost-тоннель работает, первая навигация приземляется на URL тоннеля. Иначе, на первый обнаруженный dev-сервер. Иначе, https://localhost:3000. Совмещённое с Dev Terminals, агент буквально стартует dev-сервер, потом открывает его в браузере, потом тестит.
Проверка, скриншот, хендофф
Когда подключено в Agent Teams, QA-нод прогоняет свои сценарии, ловит скриншоты, ставит flags.qaPassed в payload хендоффа. Следующий агент наследует вердикт. Pass идёт к PM, fail возвращается к Dev с тест-хинтами.
Под капотом
Для любопытных. Стек browser automation мал намеренно.
У каждого проекта один Chromium WebContentsView (современное Electron API, не deprecated BrowserView), наложенный на главное окно с bounds стримящимися из React-renderer. Per-project session-партиция держит cookies, localStorage и аутентификацию изолированными между проектами. Default offscreen bounds позволяют агентам вызывать browser-инструменты даже до того как человек откроет вкладку Browser, с 5-секундовым timeout на скриншотах чтобы избежать зависаний.
Лёгкий WebSocket-сервер (browser-bridge.ts) работает на loopback-порту, выбранном OS, привязанном только к 127.0.0.1. Аутентификация использует 32-байтовый hex-токен, регенерируемый при каждом boot desktop. Bridge-файл ~/.agentsroom/browser-bridge.json держит текущий порт, токен и PID, атомарно переписываемый при каждом boot, так что MCP-subprocess всегда подхватывает свежие credentials с автоматическим retry.
Сам MCP-сервер: browser-mcp-server.cjs, zero-dependency Node-скрипт, реализующий протокол MCP 2024-11-05 через stdio (initialize, tools/list, tools/call). Говорит JSON-RPC мосту WebSocket через hand-rolled WebSocket-клиент (нет ws, нет @modelcontextprotocol/sdk). Маленький, быстрый, легко аудитится. Бандлится как extraResources файл в desktop-приложении, так что каждая установка ставится с ним готовым к работе.
Нативная поддержка браузера (first-class фича браузера за пределами MCP) в roadmap AgentsRoom. Помимо этого, долгосрочный план включает дополнительные MCP, чтобы агенты также могли управлять non-web таргетами: React Native MCP для мобильных приложений и Electron MCP для desktop-приложений. Та же идея, тот же UX: агент не просто пишет код, он реально прогоняет работающее приложение.
FAQ
Чем это отличается от Playwright MCP или browser-инструментов на основе Puppeteer?
MCP на основе Playwright и Puppeteer спавнят свежий headless-браузер при каждой сессии. Это нормально для stateless-задач, но теряет cookies, localStorage и auth между вызовами, и человек не может видеть что делает агент. AgentsRoom Browser: тот же браузер которым человек пользуется внутри приложения, с постоянной per-project сессией, видимой пользователю в реальном времени. Агент управляет окном которое можно видеть и в которое можно вмешаться в любой момент. Это более честная, более debuggable browser automation.
Это работает со всеми ИИ-провайдерами или только с Claude Code?
Это работает со всеми 17 CLI-агентами, которые поддерживает AgentsRoom: Claude Code, Codex CLI, GitHub Copilot CLI, Cursor и ещё 13. Browser-инструменты выставлены через стандартный Model Context Protocol, который все эти CLI читают из .mcp.json. Агент никогда не знает, что он в AgentsRoom, он просто видит набор MCP-инструментов и использует их как использовал бы любой другой инструмент.
Может ли агент управлять удалённым сайтом или только localhost?
Оба. Введи любой URL и поехали. Localhost (и формы host:port) smart-detected, префиксуются http:// и открываются напрямую. Публичные сайты работают как в любом обычном браузере, с cookies и состоянием логина сохранёнными per project. Совмещённое с localhost-тоннелем AgentsRoom, агент также может управлять твоим локальным dev-сервером через публичный HTTPS URL, что полезно для cross-network и mobile QA.
Безопасен ли browser MCP? Что мешает злоупотреблению?
Мост привязывается только к 127.0.0.1, никогда к 0.0.0.0. Порт назначается OS (никакого фиксированного порта для collision-prone сканирования). 32-байтовый hex-токен требуется при каждом подключении, регенерируется при каждом boot desktop. MCP-subprocess получает credentials только через env-переменные, никогда в каком-либо commit-нутом файле. Browser-доступ opt-in на агента в модале Edit Agent. Если ты его убираешь, запись .mcp.json удаляется и агент больше не может использовать инструменты.
Видит ли агент консоль браузера (errors, warnings, network)?
Да, через browser_get_logs. Буфер хранит сообщения console.log, console.warn и console.error из основного контекста страницы. Многие реальные баги (ошибки гидратации React, предупреждения useEffect, сбои CORS) проявляются только в консоли и никогда в юнит-тестах, поэтому этот инструмент оказывается одним из самых информативных для QA-агента.
Что происходит со скриншотами возвращаемыми агенту? Стоят ли они много токенов?
По умолчанию каждое действие, меняющее страницу, добавляет к ответу инструмента скриншот base64 PNG, ограниченный 1,6 MB, что стоит примерно от 1 400 до 1 800 токенов. Режим экономии токенов (бета) меняет это поведение: агент читает ограниченный список элементов страницы через browser_read_page (от 140 до 820 токенов) и получает скриншот, только когда действие не удалось или когда он сам его запросил. AgentsRoom показывает оценочную стоимость в токенах каждого вызова браузера, так что ты видишь разницу на своих собственных страницах.
Может ли агент заполнить форму логина? Сохранять свою сессию?
Да. Cookies и localStorage сохраняются per project под session-партицией persist:agentsroom-browser-<projectId>. Агент может залогиниться раз через browser_type и browser_click и оставаться залогинен в остальной части run. Когда ты переключаешь проект, сессия меняется, так что credentials никогда не утекают между проектами.
Сломается ли агент если dev-сервер не работает?
Он навигирует на URL и видит страницу ошибки Chromium. Может прочитать эту ошибку через browser_get_state и browser_get_logs и реагировать соответственно: попросить тебя стартовать сервер, или вызвать команду Dev Terminals чтобы стартовать его. С Agent Teams и Dev Terminals, можно подключить воркфлоу, который стартует сервер, ждёт, потом открывает браузер, всё без вмешательства человека.
Поддерживаются ли мобильные и desktop приложения тоже?
Web выпускается сегодня, через встроенный Chromium и AgentsRoom Browser MCP. Roadmap включает нативный AgentsRoom Browser как first-class фичу браузера. Помимо этого, планируются дополнительные MCP-серверы: React Native MCP, чтобы агенты могли управлять Expo-бандлами iOS и Android, и Electron MCP, чтобы агенты могли управлять desktop-приложениями которые не web. Та же логика агента, применённая к non-web таргетам.
Может ли человек поставить агента на паузу и взять управление браузером?
Да. Браузер: тот же Chromium-вид которым пользуется человек. В любой момент кликни в панели Browser и ты в управлении. Как только перестанешь взаимодействовать, агент может возобновить свои tool-вызовы. Нет концепции 'agent-locked browser', это разделяемая поверхность, ровно как сессия pair-programming.
Может ли он открыть dev- или staging-сайт, защищённый паролем .htaccess?
Да, начиная с версии 1.220.0 (октябрь 2026). Когда сайт запрашивает HTTP-аутентификацию (Basic или Digest, ту, что файл .htaccess настраивает на препрод- или staging-сервере), браузер открывает окно «Вход на сайт» с именем хоста и просит имя пользователя и пароль. «Войти» отправляет их только этому сайту; «Отмена» показывает страницу 401 этого сайта; если сайт их отклонит, окно появится снова и скажет об этом. Отметьте «Запомнить для этого проекта» или добавьте правила на вкладке «HTTP-вход» QA-контекста (preprod.example.com или *.example.com для всех поддоменов), и браузер будет отвечать сам, для вас и для агентов, которые им управляют. Агенты никогда не видят пароль: он хранится в зашифрованном виде на вашем компьютере и переносится на другие ваши компьютеры со сквозным шифрованием, если включена синхронизация паролей.
О : Делегирование агентов
Пусть более дешёвый QA-агент водит браузер, а не ваш dev-агент
Browser MCP сияет ярче всего, когда dev-агент не водит его напрямую. Делегирование агентов маршрутизирует тест браузера к отдельному, более дешёвому QA-агенту через один MCP-вызов run_qa_test. Ваш Opus или Codex остаётся сфокусированным на коде, QA-агент делает клики на меньшей модели, вердикт возвращается одной строкой. Тот же Browser MCP, более лёгкий счёт, чистый контекст.
Читать страницу Делегирование агентовДай своим агентам настоящие глаза в браузере
Поставь галку Browser access на любом агенте в AgentsRoom. Browser MCP стартует автоматически. Твой QA-агент наконец-то тестит то что выпускает.
Приложение-компаньон: следите за агентами на ходу
Используйте Claude, Codex, Antigravity CLI или другого поставщика AI.
Отправляйте баги и запросы прямо в ваш публичный бэклог.