Браузер (под управлением openclaw)
OpenClaw может запускать выделенный профиль Chrome/Brave/Edge/Chromium, которым управляет агент. Он изолирован от вашего личного браузера и управляется через небольшую локальную службу управления внутри Gateway (шлюз) (только local loopback). Взгляд для начинающих:- Думайте об этом как об отдельном браузере только для агента.
- Профиль
openclawне затрагивает ваш личный профиль браузера. - Агент может открывать вкладки, читать страницы, кликать и печатать в безопасной среде.
- Профиль
chromeпо умолчанию использует системный Chromium-браузер по умолчанию через релей расширения; переключитесь наopenclawдля изолированного управляемого браузера.
Что вы получаете
- Отдельный профиль браузера с именем openclaw (по умолчанию с оранжевым акцентом).
- Детерминированное управление вкладками (список/открыть/фокус/закрыть).
- Действия агента (клик/ввод/перетаскивание/выбор), снимки, скриншоты, PDF.
- Необязательная поддержка нескольких профилей (
openclaw,work,remote, …).
Быстрый старт
Профили: openclaw vs chrome
openclaw: управляемый, изолированный браузер (расширение не требуется).chrome: релей расширения к вашему системному браузеру (требуется подключение расширения OpenClaw к вкладке).
browser.defaultProfile: "openclaw", если хотите использовать управляемый режим по умолчанию.
Конфигурация
Настройки браузера находятся в~/.openclaw/openclaw.json.
- Служба управления браузером привязывается к local loopback на порту, производном от
gateway.port(по умолчанию:18791, то есть порт Gateway + 2). Релей использует следующий порт (18792). - Если вы переопределяете порт Gateway (
gateway.portилиOPENCLAW_GATEWAY_PORT), производные порты браузера сдвигаются, чтобы оставаться в том же «семействе». cdpUrlпо умолчанию равен порту релея, если не задан.remoteCdpTimeoutMsприменяется к проверкам доступности удалённого CDP (не local loopback).remoteCdpHandshakeTimeoutMsприменяется к проверкам доступности WebSocket удалённого CDP.attachOnly: trueозначает «никогда не запускать локальный браузер; подключаться только если он уже запущен».color+ профильноеcolorподкрашивают UI браузера, чтобы было видно, какой профиль активен.- Профиль по умолчанию —
chrome(релей расширения). ИспользуйтеdefaultProfile: "openclaw"для управляемого браузера. - Порядок автоопределения: системный браузер по умолчанию, если он на базе Chromium; иначе Chrome → Brave → Edge → Chromium → Chrome Canary.
- Локальные профили
openclawавтоматически назначаютcdpPort/cdpUrl— задавайте их только для удалённого CDP.
Использование Brave (или другого браузера на базе Chromium)
Если ваш системный браузер по умолчанию основан на Chromium (Chrome/Brave/Edge и т. д.), OpenClaw использует его автоматически. Установитеbrowser.executablePath, чтобы переопределить
автоопределение:
Пример CLI:
Локальное и удаленное управление
- Локальное управление (по умолчанию): Gateway (шлюз) запускает службу управления на loopback и может запускать локальный браузер.
- Удалённое управление (хост узла): запустите хост узла на машине с браузером; Gateway проксирует к нему действия браузера.
- Удалённый CDP: задайте
browser.profiles.<name>.cdpUrl(илиbrowser.cdpUrl), чтобы подключиться к удалённому браузеру на базе Chromium. В этом случае OpenClaw не будет запускать локальный браузер.
- Токены в query (например,
https://provider.example?token=<token>) - HTTP Basic auth (например,
https://user:[email protected])
/json/* и при подключении
к WebSocket CDP. Предпочитайте переменные окружения или менеджеры секретов
для токенов вместо их коммита в конфигурационные файлы.
Прокси браузера узла (zero-config по умолчанию)
Если вы запускаете хост узла на машине с браузером, OpenClaw может автоматически маршрутизировать вызовы инструментов браузера к этому узлу без дополнительной конфигурации браузера. Это путь по умолчанию для удалённых Gateway. Примечания:- Хост узла экспортирует свою локальную службу управления браузером через прокси-команду.
- Профили берутся из собственного конфига узла
browser.profiles(как и локально). - Отключите, если это не нужно:
- На узле:
nodeHost.browserProxy.enabled=false - На Gateway:
gateway.nodes.browser.mode="off"
- На узле:
Browserless (хостинг удалённого CDP)
Browserless — это хостинг Chromium, предоставляющий эндпоинты CDP по HTTPS. Вы можете указать для профиля браузера OpenClaw региональный эндпоинт Browserless и аутентифицироваться с помощью ключа API. Пример:- Замените
<BROWSERLESS_API_KEY>на ваш реальный токен Browserless. - Выберите региональный эндпоинт, соответствующий вашей учётной записи Browserless (см. их документацию).
Безопасность
Ключевые идеи:- Управление браузером доступно только через loopback; доступ проходит через аутентификацию Gateway или сопряжение узла.
- Если управление браузером включено и аутентификация не настроена, OpenClaw автоматически генерирует
gateway.auth.tokenпри запуске и сохраняет его в конфигурации. - Держите Gateway и любые хосты узлов в приватной сети (Tailscale); избегайте публичного доступа.
- Рассматривайте URL/токены удалённого CDP как секреты; предпочитайте переменные окружения или менеджер секретов.
- По возможности используйте HTTPS-эндпоинты и краткоживущие токены.
- Избегайте встраивания долгоживущих токенов напрямую в конфигурационные файлы.
Профили (мультибраузер)
OpenClaw поддерживает несколько именованных профилей (конфигурации маршрутизации). Профили могут быть:- openclaw-managed: выделенный экземпляр браузера на базе Chromium с собственной директорией пользовательских данных и портом CDP
- remote: явный URL CDP (браузер на базе Chromium, запущенный в другом месте)
- extension relay: ваши существующие вкладки Chrome через локальный релей + расширение Chrome
- Профиль
openclawсоздаётся автоматически, если отсутствует. - Профиль
chromeвстроен для релея расширения Chrome (по умолчанию указывает наhttp://127.0.0.1:18792). - Локальные порты CDP по умолчанию выделяются из диапазона 18800–18899.
- Удаление профиля перемещает его локальную директорию данных в Корзину.
?profile=<name>; CLI использует --browser-profile.
Релей расширения Chrome (используйте существующий Chrome)
OpenClaw также может управлять вашими существующими вкладками Chrome (без отдельного экземпляра Chrome «openclaw») через локальный CDP-релей и расширение Chrome. Полное руководство: Chrome extension Поток:- Gateway запускается локально (на той же машине), либо хост узла запускается на машине с браузером.
- Локальный сервер-релей слушает на loopback
cdpUrl(по умолчанию:http://127.0.0.1:18792). - Вы нажимаете на иконку расширения OpenClaw Browser Relay на вкладке, чтобы подключиться (автоподключения нет).
- Агент управляет этой вкладкой через обычный инструмент
browser, выбрав правильный профиль.
Сеансы в sandbox
Если сеанс агента находится в sandbox, инструментbrowser может по умолчанию использовать target="sandbox" (sandbox browser).
Перехват управления через релей расширения Chrome требует управления браузером хоста, поэтому либо:
- запускайте сеанс без sandbox, либо
- установите
agents.defaults.sandbox.browser.allowHostControl: trueи используйтеtarget="host"при вызове инструмента.
Настройка
- Загрузите расширение (dev/unpacked):
- Chrome →
chrome://extensions→ включите «Developer mode» - «Load unpacked» → выберите каталог, выведенный
openclaw browser extension path - Закрепите расширение, затем нажмите его на вкладке, которой хотите управлять (значок показывает
ON).
- Использование:
- CLI:
openclaw browser --browser-profile chrome tabs - Инструмент агента:
browserсprofile="chrome"
- Этот режим опирается на Playwright-on-CDP для большинства операций (скриншоты/снимки/действия).
- Отключение — нажмите на иконку расширения ещё раз.
Гарантии изоляции
- Выделенная директория пользовательских данных: никогда не затрагивает ваш личный профиль браузера.
- Выделенные порты: избегает
9222, предотвращая коллизии с рабочими процессами разработки. - Детерминированное управление вкладками: нацеливание по
targetId, а не по «последней вкладке».
Выбор браузера
При локальном запуске OpenClaw выбирает первый доступный:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Платформы:
- macOS: проверяет
/Applicationsи~/Applications. - Linux: ищет
google-chrome,brave,microsoft-edge,chromiumи т. д. - Windows: проверяет стандартные каталоги установки.
API управления (необязательно)
Только для локальных интеграций Gateway предоставляет небольшой HTTP API на loopback:- Статус/запуск/остановка:
GET /,POST /start,POST /stop - Вкладки:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Снимок/скриншот:
GET /snapshot,POST /screenshot - Действия:
POST /navigate,POST /act - Хуки:
POST /hooks/file-chooser,POST /hooks/dialog - Загрузки:
POST /download,POST /wait/download - Отладка:
GET /console,POST /pdf - Отладка:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Сеть:
POST /response/body - Состояние:
GET /cookies,POST /cookies/set,POST /cookies/clear - Состояние:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Настройки:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
?profile=<name>.
Если аутентификация Gateway настроена, маршруты браузера HTTP также требуют аутентификации:
Authorization: Bearer <gateway token>- Снимки и рефералы
Требование Playwright
Некоторые возможности (navigate/act/AI snapshot/role snapshot, скриншоты элементов, PDF) требуют Playwright. Если Playwright не установлен, эти эндпоинты возвращают понятную ошибку 501. ARIA-снимки и базовые скриншоты продолжают работать для openclaw-managed Chrome. Для драйвера релея расширения Chrome ARIA-снимки и скриншоты требуют Playwright. Если вы видитеPlaywright is not available in this gateway build, установите полный пакет
Playwright (не playwright-core) и перезапустите Gateway, либо переустановите
OpenClaw с поддержкой браузера.
Установка Playwright в Docker
Если ваш Gateway работает в Docker, избегайтеnpx playwright (конфликты override npm).
Используйте встроенный CLI:
PLAYWRIGHT_BROWSERS_PATH (например,
/home/node/.cache/ms-playwright) и убедитесь, что /home/node сохраняется через
OPENCLAW_HOME_VOLUME или bind mount. См. Docker.
Как это работает (внутренне)
Высокоуровневый поток:- Небольшой сервер управления принимает HTTP-запросы.
- Он подключается к браузерам на базе Chromium (Chrome/Brave/Edge/Chromium) через CDP.
- Для продвинутых действий (клик/ввод/снимок/PDF) используется Playwright поверх CDP.
- При отсутствии Playwright доступны только операции без Playwright.
Краткий справочник CLI
Все команды принимают--browser-profile <name> для указания конкретного профиля.
Все команды также принимают --json для машиночитаемого вывода (стабильные payload).
Базовые:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level erroropenclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 /tmp/report.pdfopenclaw browser waitfordownload /tmp/report.pdfopenclaw browser upload /tmp/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"
uploadиdialog— это вызовы arming; выполните их перед кликом/нажатием, которое запускает выбор/диалог.- Пути загрузки и вывода трассировки ограничены временными корневыми каталогами OpenClaw:
- Профили (мультибраузер)
- downloads:
/tmp/openclaw/downloads(резервный вариант:${os.tmpdir()}/openclaw/downloads)
- Пути загрузки (upload) ограничены временным корневым каталогом загрузок OpenClaw:
- Подождите
uploadтакже может напрямую задавать file input через--input-refили--element.snapshot:--format ai(по умолчанию, когда установлен Playwright): возвращает AI-снимок с числовыми ссылками (aria-ref="<n>").--format aria: возвращает дерево доступности (без ссылок; только для инспекции).--efficient(или--mode efficient): компактный пресет role snapshot (интерактивный + компактный + глубина + уменьшенный maxChars).- Значение по умолчанию конфига (только tool/CLI): установите
browser.snapshotDefaults.mode: "efficient", чтобы использовать эффективные снимки, когда вызывающая сторона не передаёт режим (см. Конфигурация Gateway). - Параметры role snapshot (
--interactive,--compact,--depth,--selector) принудительно создают role-based снимок со ссылками видаref=e12. --frame "<iframe selector>"ограничивает role snapshot iframe (в паре с role refs видаe12).--interactiveвыводит плоский, удобный для выбора список интерактивных элементов (лучше всего для управления действиями).--labelsдобавляет скриншот только области видимости с наложенными метками ссылок (печатаетMEDIA:<path>).
click/type/и т. д. требуютrefизsnapshot(числовой12или role refe12). CSS-селекторы намеренно не поддерживаются для действий.
Снимки и рефералы
OpenClaw поддерживает два стиля «снимков»:-
AI snapshot (числовые ссылки):
openclaw browser snapshot(по умолчанию;--format ai)- Вывод: текстовый снимок, включающий числовые ссылки.
- Действия:
openclaw browser click 12,openclaw browser type 23 "hello". - Внутренне ссылка разрешается через
aria-refPlaywright.
-
Role snapshot (role refs вида
e12):openclaw browser snapshot --interactive(или--compact,--depth,--selector,--frame)- Вывод: список/дерево на основе ролей с
[ref=e12](и необязательным[nth=1]). - Действия:
openclaw browser click e12,openclaw browser highlight e12. - Внутренне ссылка разрешается через
getByRole(...)(плюсnth()для дубликатов). - Добавьте
--labels, чтобы включить скриншот области видимости с наложенными меткамиe12.
- Вывод: список/дерево на основе ролей с
- Ссылки не стабильны между навигациями; если что-то не сработало, повторно выполните
snapshotи используйте свежую ссылку. - Если role snapshot был сделан с
--frame, role refs ограничены этим iframe до следующего role snapshot.
Подождите
Можно ждать не только по времени/тексту:- Ожидание URL (глоб-паттерны Playwright):
openclaw browser wait --url "**/dash"
- Ожидание состояния загрузки:
openclaw browser wait --load networkidle
- Ожидание JS-предиката:
openclaw browser wait --fn "window.ready===true"
- Ожидание видимости селектора:
openclaw browser wait "#main"
Отладка рабочих процессов
Когда действие не удаётся (например, «not visible», «strict mode violation», «covered»):openclaw browser snapshot --interactive- Используйте
click <ref>/type <ref>(предпочитайте role refs в интерактивном режиме) - Если всё ещё не работает:
openclaw browser highlight <ref>, чтобы увидеть, на что нацеливается Playwright - Если страница ведёт себя странно:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Для глубокой отладки: запишите трассу:
openclaw browser trace start- воспроизведите проблему
openclaw browser trace stop(печатаетTRACE:<path>)
Вывод в формате JSON
--json предназначен для скриптинга и структурированных инструментов.
Примеры:
refs плюс небольшой блок stats (строки/символы/ссылки/интерактивность), чтобы инструменты могли оценивать размер и плотность payload.
Ручки состояния и окружения
Полезны для сценариев «заставить сайт вести себя как X»:- Cookies:
cookies,cookies set,cookies clear - Storage:
storage local|session get|set|clear - Offline:
set offline on|off - Заголовки:
set headers --json '{"X-Debug":"1"}'(или--clear) - HTTP basic auth:
set credentials user pass(или--clear) - Геолокация:
set geo <lat> <lon> --origin "https://example.com"(или--clear) - Медиа:
set media dark|light|no-preference|none - Часовой пояс / локаль:
set timezone ...,set locale ... - Устройство / viewport:
set device "iPhone 14"(пресеты устройств Playwright)set viewport 1280 720
Безопасность и конфиденциальность
- Профиль браузера openclaw может содержать авторизованные сессии; рассматривайте его как чувствительный.
browser act kind=evaluate/openclaw browser evaluateиwait --fnвыполняют произвольный JavaScript в контексте страницы. Prompt injection может этим управлять. Отключите это с помощьюbrowser.evaluateEnabled=false, если вам это не нужно.- Для входа и анти-бот примечаний (X/Twitter и т. д.) см. Browser login + X/Twitter posting.
- Держите Gateway/хост узла приватными (loopback или только tailnet).
- Эндпоинты удалённого CDP обладают большой мощью; туннелируйте и защищайте их.
Устранение неполадок
Для проблем, специфичных для Linux (особенно snap Chromium), см. Browser troubleshooting.Инструменты агента и принцип управления
Агент получает один инструмент для автоматизации браузера:browser— статус/запуск/остановка/вкладки/открыть/фокус/закрыть/снимок/скриншот/навигация/действие
browser snapshotвозвращает стабильное дерево UI (AI или ARIA).browser actиспользует идентификаторыrefснимка для клика/ввода/перетаскивания/выбора.browser screenshotзахватывает пиксели (вся страница или элемент).browserпринимает:profileдля выбора именованного профиля браузера (openclaw, chrome или удалённый CDP).target(sandbox|host|node) для выбора расположения браузера.- В sandbox-сеансах
target: "host"требуетagents.defaults.sandbox.browser.allowHostControl=true. - Если
targetне указан: sandbox-сеансы по умолчанию используютsandbox, несandbox-сеансы —host. - Если подключён узел с поддержкой браузера, инструмент может автоматически маршрутизироваться к нему, если вы не закрепили
target="host"илиtarget="node".