Browser (керований openclaw)
OpenClaw може запускати виділений профіль Chrome/Brave/Edge/Chromium, яким керує агент. Він ізольований від вашого особистого браузера та керується через невеликий локальний сервіс керування всередині Gateway (лише loopback). Погляд для початківців:- Думайте про нього як про окремий браузер лише для агента.
- Профіль
openclawне торкається вашого особистого профілю браузера. - Агент може відкривати вкладки, читати сторінки, натискати та вводити текст у безпечному середовищі.
- Вбудований профіль
userпідключається до вашої реальної сесії Chrome з виконаним входом через Chrome MCP.
Що ви отримуєте
- Окремий профіль браузера з назвою openclaw (типово з помаранчевим акцентом).
- Детерміноване керування вкладками (список/відкрити/фокус/закрити).
- Дії агента (натискання/введення/перетягування/вибір), snapshot, знімки екрана, PDF.
- Необов’язкова підтримка кількох профілів (
openclaw,work,remote, …).
Швидкий старт
openclaw browser взагалі відсутній або агент каже, що інструмент браузера
недоступний, перейдіть до Missing browser command or tool.
Керування plugin
Типовий інструментbrowser тепер є комплектним plugin, який постачається увімкненим
за замовчуванням. Це означає, що ви можете вимкнути або замінити його, не прибираючи решту
plugin-системи OpenClaw:
browser. Типова робота браузера вимагає обох умов:
plugins.entries.browser.enabledне вимкненоbrowser.enabled=true
openclaw browser),
метод gateway (browser.request), інструмент агента та типовий сервіс керування браузером
зникнуть разом. Ваш config browser.* залишиться недоторканим, щоб його міг повторно використати
plugin-замінник.
Комплектний plugin браузера тепер також володіє реалізацією runtime браузера.
Core зберігає лише спільні helper-и Plugin SDK плюс compatibility re-export для
старіших внутрішніх шляхів імпорту. На практиці видалення або заміна пакета plugin браузера
прибирає набір можливостей браузера замість того, щоб залишити другий runtime під керуванням core.
Зміни config браузера все одно потребують перезапуску Gateway, щоб комплектний plugin
міг повторно зареєструвати свій сервіс браузера з новими налаштуваннями.
Відсутня команда браузера або інструмент
Якщоopenclaw browser раптом стає невідомою командою після оновлення або
агент повідомляє, що інструмент браузера відсутній, найпоширенішою причиною є
обмежувальний список plugins.allow, який не містить browser.
Приклад зламаного config:
browser до allowlist plugin:
- Самого
browser.enabled=trueнедостатньо, коли встановленоplugins.allow. - Самого
plugins.entries.browser.enabled=trueтакож недостатньо, коли встановленоplugins.allow. tools.alsoAllow: ["browser"]не завантажує комплектний plugin браузера. Він лише коригує політику інструментів після того, як plugin уже завантажено.- Якщо вам не потрібен обмежувальний allowlist plugin, видалення
plugins.allowтакож відновлює типову поведінку комплектного браузера.
openclaw browserє невідомою командою.- Відсутній
browser.request. - Агент повідомляє, що інструмент браузера недоступний або відсутній.
Профілі: openclaw проти user
openclaw: керований, ізольований браузер (розширення не потрібне).user: вбудований профіль підключення Chrome MCP до вашої реальної сесії Chrome з виконаним входом.
- Типово: використовуйте ізольований браузер
openclaw. - Віддавайте перевагу
profile="user", коли важливі наявні сесії з виконаним входом і користувач перебуває за комп’ютером, щоб натиснути/підтвердити будь-який запит на підключення. profile— це явне перевизначення, коли вам потрібен конкретний режим браузера.
browser.defaultProfile: "openclaw", якщо хочете, щоб за замовчуванням використовувався керований режим.
Конфігурація
Налаштування браузера містяться в~/.openclaw/openclaw.json.
- Сервіс керування браузером прив’язується до loopback на порті, похідному від
gateway.port(типово:18791, тобто gateway + 2). - Якщо ви перевизначите порт Gateway (
gateway.portабоOPENCLAW_GATEWAY_PORT), похідні порти браузера змістяться, щоб залишатися в тій самій «сім’ї». cdpUrlза замовчуванням використовує керований локальний порт CDP, якщо не задано.remoteCdpTimeoutMsзастосовується до перевірок доступності віддаленого (не-loopback) CDP.remoteCdpHandshakeTimeoutMsзастосовується до перевірок доступності рукостискання WebSocket віддаленого CDP.- Навігація браузера/відкриття вкладок захищені від SSRF перед навігацією та за можливості повторно перевіряються за фінальним
http(s)URL після навігації. - У строгому режимі SSRF також перевіряються виявлення/проби віддалених endpoint CDP (
cdpUrl, включно з пошуками/json/version). browser.ssrfPolicy.dangerouslyAllowPrivateNetworkза замовчуванням дорівнюєtrue(модель довіреної мережі). Установітьfalseдля строгого перегляду лише публічних ресурсів.browser.ssrfPolicy.allowPrivateNetworkзалишається підтримуваним як застарілий псевдонім для compatibility.attachOnly: trueозначає «ніколи не запускати локальний браузер; лише підключатися, якщо він уже запущений».color+colorдля кожного профілю підфарбовують UI браузера, щоб ви бачили, який профіль активний.- Типовий профіль —
openclaw(автономний браузер під керуванням OpenClaw). ВикористовуйтеdefaultProfile: "user", щоб перейти на браузер користувача з виконаним входом. - Порядок auto-detect: системний браузер за замовчуванням, якщо він на базі Chromium; інакше Chrome → Brave → Edge → Chromium → Chrome Canary.
- Локальним профілям
openclawcdpPort/cdpUrlпризначаються автоматично — задавайте їх лише для віддаленого CDP. driver: "existing-session"використовує Chrome DevTools MCP замість сирого CDP. Не встановлюйтеcdpUrlдля цього driver.- Установіть
browser.profiles.<name>.userDataDir, коли профіль existing-session має підключатися до нестандартного профілю користувача Chromium, такого як Brave або Edge.
Використання Brave (або іншого браузера на базі Chromium)
Якщо вашим системним браузером за замовчуванням є браузер на базі Chromium (Chrome/Brave/Edge тощо), OpenClaw використовує його автоматично. Установітьbrowser.executablePath, щоб перевизначити
автовизначення:
Приклад CLI:
Локальне та віддалене керування
- Локальне керування (типово): Gateway запускає loopback-сервіс керування і може запускати локальний браузер.
- Віддалене керування (host вузла): запустіть host вузла на машині, де є браузер; Gateway проксуватиме дії браузера до нього.
- Віддалений CDP: установіть
browser.profiles.<name>.cdpUrl(абоbrowser.cdpUrl), щоб підключатися до віддаленого браузера на базі Chromium. У цьому разі OpenClaw не запускатиме локальний браузер.
- локальні керовані профілі:
openclaw browser stopзупиняє процес браузера, який запустив OpenClaw - профілі лише для підключення та віддалені CDP-профілі:
openclaw browser stopзакриває активну сесію керування і скидає перевизначення емуляції Playwright/CDP (viewport, color scheme, locale, timezone, offline mode та подібний стан), навіть якщо OpenClaw не запускав процес браузера
- Токени в query (наприклад,
https://provider.example?token=<token>) - HTTP Basic auth (наприклад,
https://user:pass@provider.example)
/json/* і під час підключення
до CDP WebSocket. Віддавайте перевагу environment variable або менеджерам секретів для
токенів замість коміту їх у config-файли.
Node browser proxy (нульова конфігурація за замовчуванням)
Якщо ви запускаєте host вузла на машині, де є ваш браузер, OpenClaw може автоматично маршрутизувати виклики інструмента браузера до цього вузла без додаткового config браузера. Це типовий шлях для віддалених gateway. Примітки:- Host вузла надає свій локальний сервер керування браузером через proxy command.
- Профілі беруться з власного config
browser.profilesвузла (так само, як локально). nodeHost.browserProxy.allowProfilesє необов’язковим. Залиште його порожнім для застарілої/типової поведінки: усі налаштовані профілі залишаються доступними через proxy, включно з маршрутами створення/видалення профілів.- Якщо ви встановите
nodeHost.browserProxy.allowProfiles, OpenClaw трактуватиме це як межу найменших привілеїв: можна буде націлюватися лише на профілі з allowlist, а маршрути створення/видалення постійних профілів будуть заблоковані на поверхні proxy. - Вимкніть це, якщо воно не потрібне:
- На вузлі:
nodeHost.browserProxy.enabled=false - На gateway:
gateway.nodes.browser.mode="off"
- На вузлі:
Browserless (розміщений віддалений CDP)
Browserless — це розміщений сервіс Chromium, який надає URL підключення CDP через HTTPS і WebSocket. OpenClaw може використовувати обидві форми, але для віддаленого профілю браузера найпростішим варіантом є прямий URL WebSocket з документації підключення Browserless. Приклад:- Замініть
<BROWSERLESS_API_KEY>на ваш реальний токен Browserless. - Виберіть endpoint регіону, який відповідає вашому обліковому запису Browserless (див. їхню документацію).
- Якщо Browserless дає вам базовий URL HTTPS, ви можете або перетворити його на
wss://для прямого підключення CDP, або залишити URL HTTPS і дозволити OpenClaw виявити/json/version.
Провайдери прямого WebSocket CDP
Деякі розміщені сервіси браузерів надають прямий endpoint WebSocket замість стандартного HTTP-виявлення CDP (/json/version). OpenClaw підтримує обидва варіанти:
- endpoint HTTP(S) — OpenClaw викликає
/json/version, щоб знайти URL WebSocket debugger, а потім підключається. - endpoint WebSocket (
ws:///wss://) — OpenClaw підключається напряму, пропускаючи/json/version. Використовуйте це для сервісів на кшталт Browserless, Browserbase або будь-якого провайдера, який надає вам URL WebSocket.
Browserbase
Browserbase — це хмарна платформа для запуску headless-браузерів із вбудованим розв’язанням CAPTCHA, stealth mode та residential proxy.- Зареєструйтеся і скопіюйте свій API Key з Overview dashboard.
- Замініть
<BROWSERBASE_API_KEY>на ваш реальний API key Browserbase. - Browserbase автоматично створює сесію браузера при підключенні WebSocket, тож ручний крок створення сесії не потрібен.
- Безкоштовний рівень дозволяє одну одночасну сесію та одну годину браузера на місяць. Ліміти платних планів дивіться в pricing.
- Повну довідку API, посібники зі SDK та приклади інтеграції дивіться в документації Browserbase.
Безпека
Ключові ідеї:- Керування браузером доступне лише через loopback; доступ проходить через автентифікацію Gateway або pairing вузла.
- Автономний loopback HTTP API браузера використовує лише автентифікацію спільним секретом:
bearer auth токеном gateway,
x-openclaw-passwordабо HTTP Basic auth з налаштованим паролем gateway. - Заголовки ідентичності Tailscale Serve та
gateway.auth.mode: "trusted-proxy"не автентифікують цей автономний loopback API браузера. - Якщо керування браузером увімкнене і не налаштовано жодної автентифікації спільним секретом, OpenClaw
автоматично генерує
gateway.auth.tokenпід час запуску і зберігає його в config. - OpenClaw не генерує цей токен автоматично, якщо
gateway.auth.modeуже має значенняpassword,noneабоtrusted-proxy. - Тримайте Gateway і будь-які host вузлів у приватній мережі (Tailscale); уникайте публічного відкриття.
- Розглядайте віддалені URL/токени CDP як секрети; віддавайте перевагу env var або менеджеру секретів.
- Віддавайте перевагу зашифрованим endpoint (HTTPS або WSS) і, де можливо, короткоживучим токенам.
- Уникайте вбудовування довгоживучих токенів безпосередньо в config-файли.
Профілі (кілька браузерів)
OpenClaw підтримує кілька іменованих профілів (маршрутизувальних config). Профілі можуть бути:- керовані openclaw: виділений браузер на базі Chromium із власним каталогом користувацьких даних + портом CDP
- віддалені: явний URL CDP (браузер на базі Chromium запущено деінде)
- наявна сесія: ваш наявний профіль Chrome через auto-connect Chrome DevTools MCP
- Профіль
openclawавтоматично створюється, якщо його немає. - Профіль
userвбудований для підключення existing-session через Chrome MCP. - Профілі existing-session, окрім
user, вмикаються лише за запитом; створюйте їх із--driver existing-session. - Локальні порти CDP за замовчуванням виділяються з діапазону 18800–18899.
- Видалення профілю переміщує його локальний каталог даних до Trash.
?profile=<name>; CLI використовує --browser-profile.
Existing-session через Chrome DevTools MCP
OpenClaw також може підключатися до вже запущеного профілю браузера на базі Chromium через офіційний сервер Chrome DevTools MCP. Це повторно використовує вкладки та стан входу, які вже відкриті в цьому профілі браузера. Офіційні довідкові матеріали та посилання з налаштування: Вбудований профіль:user
- Вбудований профіль
userвикористовує auto-connect Chrome MCP, який націлюється на типовий локальний профіль Google Chrome.
userDataDir для Brave, Edge, Chromium або нетипового профілю Chrome:
- Відкрийте inspect-сторінку цього браузера для remote debugging.
- Увімкніть remote debugging.
- Залиште браузер запущеним і підтвердьте запит на підключення, коли OpenClaw під’єднається.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statusпоказуєdriver: existing-sessionstatusпоказуєtransport: chrome-mcpstatusпоказуєrunning: truetabsперелічує ваші вже відкриті вкладки браузераsnapshotповертає ref з вибраної активної вкладки
- цільовий браузер на базі Chromium має версію
144+ - remote debugging увімкнено на inspect-сторінці цього браузера
- браузер показав запит на підключення, і ви його підтвердили
openclaw doctorпереносить старий config браузера на основі розширення і перевіряє, що Chrome встановлено локально для типових профілів auto-connect, але він не може увімкнути remote debugging у браузері за вас
- Використовуйте
profile="user", коли вам потрібен стан браузера користувача з виконаним входом. - Якщо ви використовуєте custom-профіль existing-session, передайте його явну назву.
- Обирайте цей режим лише тоді, коли користувач перебуває за комп’ютером, щоб підтвердити запит на підключення.
- Gateway або host вузла може запускати
npx chrome-devtools-mcp@latest --autoConnect
- Цей шлях має вищий ризик, ніж ізольований профіль
openclaw, оскільки він може діяти всередині вашої сесії браузера з виконаним входом. - OpenClaw не запускає браузер для цього driver; він лише підключається до наявної сесії.
- OpenClaw використовує тут офіційний потік
--autoConnectChrome DevTools MCP. Якщо встановленоuserDataDir, OpenClaw передає його далі, щоб націлитися на цей явний каталог користувацьких даних Chromium. - Знімки екрана в режимі existing-session підтримують захоплення сторінки та захоплення елементів через
--refзі snapshot, але не CSS-селектори--element. - Знімки екрана сторінки existing-session працюють без Playwright через Chrome MCP.
Знімки екрана елементів за ref (
--ref) там також працюють, але--full-pageне можна поєднувати з--refабо--element. - Дії existing-session усе ще більш обмежені, ніж шлях керованого браузера:
click,type,hover,scrollIntoView,dragіselectпотребують ref зі snapshot замість CSS-селекторівclickпідтримує лише ліву кнопку миші (без перевизначення кнопки або модифікаторів)typeне підтримуєslowly=true; використовуйтеfillабоpresspressне підтримуєdelayMshover,scrollIntoView,drag,select,fillіevaluateне підтримують перевизначення timeout для окремого викликуselectнаразі підтримує лише одне значення
- Existing-session
wait --urlпідтримує точні збіги, підрядки та glob-шаблони, як і інші driver браузера.wait --load networkidleпоки не підтримується. - Хуки завантаження файлів у existing-session потребують
refабоinputRef, підтримують по одному файлу за раз і не підтримують націлювання через CSSelement. - Хуки діалогів existing-session не підтримують перевизначення timeout.
- Деякі можливості все ще потребують шляху керованого браузера, зокрема batch-дії,
експорт PDF, перехоплення завантажень і
responsebody. - Existing-session є локальним для host. Якщо Chrome працює на іншій машині або в іншому мережевому namespace, використовуйте віддалений CDP або host вузла.
Гарантії ізоляції
- Виділений user data dir: ніколи не торкається вашого особистого профілю браузера.
- Виділені порти: уникають
9222, щоб не конфліктувати з робочими процесами розробки. - Детерміноване керування вкладками: націлювання на вкладки за
targetId, а не за «останньою вкладкою».
Вибір браузера
Під час локального запуску OpenClaw вибирає перший доступний варіант:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Платформи:
- macOS: перевіряє
/Applicationsі~/Applications. - Linux: шукає
google-chrome,brave,microsoft-edge,chromiumтощо. - Windows: перевіряє поширені місця встановлення.
API керування (необов’язково)
Лише для локальних інтеграцій Gateway надає невеликий loopback HTTP API:- Стан/запуск/зупинка:
GET /,POST /start,POST /stop - Вкладки:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Snapshot/знімок екрана:
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>x-openclaw-password: <gateway password>або HTTP Basic auth з цим паролем
- Цей автономний loopback API браузера не використовує заголовки
trusted-proxyабо ідентичності Tailscale Serve. - Якщо
gateway.auth.modeмає значенняnoneабоtrusted-proxy, ці loopback-маршрути браузера не успадковують ці режими з передаванням ідентичності; залишайте їх доступними лише через loopback.
Вимога Playwright
Для деяких можливостей (navigate/act/AI snapshot/role snapshot, знімки екрана елементів, PDF) потрібен Playwright. Якщо Playwright не встановлено, ці endpoint повертають чітку помилку 501. Що все ще працює без Playwright:- ARIA snapshot
- Знімки екрана сторінок для керованого браузера
openclaw, коли доступний WebSocket CDP для окремої вкладки - Знімки екрана сторінок для профілів
existing-session/ Chrome MCP - Знімки екрана за ref (
--ref) вexisting-sessionіз виводу snapshot
navigateact- AI snapshot / role snapshot
- Знімки екрана елементів через CSS-селектори (
--element) - Повний експорт PDF браузера
--full-page; маршрут повертає fullPage is not supported for element screenshots.
Якщо ви бачите Playwright is not available in this gateway build, установіть повний
пакет Playwright (не playwright-core) і перезапустіть gateway, або перевстановіть
OpenClaw з підтримкою браузера.
Установлення Playwright у Docker
Якщо ваш Gateway працює в Docker, уникайтеnpx playwright (конфлікти npm override).
Натомість використовуйте комплектний CLI:
PLAYWRIGHT_BROWSERS_PATH (наприклад,
/home/node/.cache/ms-playwright) і переконайтеся, що /home/node зберігається через
OPENCLAW_HOME_VOLUME або bind mount. Див. Docker.
Як це працює (внутрішньо)
Загальний потік:- Невеликий сервер керування приймає HTTP-запити.
- Він підключається до браузерів на базі Chromium (Chrome/Brave/Edge/Chromium) через CDP.
- Для розширених дій (click/type/snapshot/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 error
- Для профілів лише для підключення та віддалених CDP-профілів
openclaw browser stopусе ще є правильною командою очищення після тестів. Вона закриває активну сесію керування та очищує тимчасові перевизначення емуляції замість завершення базового браузера. openclaw 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 report.pdfopenclaw browser waitfordownload report.pdfopenclaw browser upload /tmp/openclaw/uploads/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 --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— це виклики підготовки; запускайте їх перед click/press, що викликає chooser/dialog.- Шляхи виводу завантажень і trace обмежені тимчасовими коренями OpenClaw:
- traces:
/tmp/openclaw(резервний варіант:${os.tmpdir()}/openclaw) - downloads:
/tmp/openclaw/downloads(резервний варіант:${os.tmpdir()}/openclaw/downloads)
- traces:
- Шляхи upload обмежені тимчасовим коренем uploads OpenClaw:
- uploads:
/tmp/openclaw/uploads(резервний варіант:${os.tmpdir()}/openclaw/uploads)
- uploads:
uploadтакож може напряму встановлювати file input через--input-refабо--element.snapshot:--format ai(типово, коли встановлено Playwright): повертає AI snapshot із числовими ref (aria-ref="<n>").--format aria: повертає дерево accessibility (без ref; лише для інспекції).--efficient(або--mode efficient): компактний пресет role snapshot (interactive + compact + depth + нижчий maxChars).- Типове значення config (лише для tool/CLI): установіть
browser.snapshotDefaults.mode: "efficient", щоб використовувати efficient snapshot, коли викликач не передає mode (див. Gateway configuration). - Опції role snapshot (
--interactive,--compact,--depth,--selector) примусово використовують role-based snapshot з ref на кшталтref=e12. --frame "<iframe selector>"обмежує role snapshot конкретним iframe (поєднується з role ref на кшталтe12).--interactiveвиводить плоский, зручний для вибору список інтерактивних елементів (найкраще для виконання дій).--labelsдодає знімок екрана лише viewport з накладеними мітками ref (друкуєMEDIA:<path>).
click/type/тощо потребуютьrefзіsnapshot(або числовий12, або role refe12). CSS-селектори навмисно не підтримуються для дій.
Snapshot і ref
OpenClaw підтримує два стилі “snapshot”:-
AI snapshot (числові ref):
openclaw browser snapshot(типово;--format ai)- Вивід: текстовий snapshot, що містить числові ref.
- Дії:
openclaw browser click 12,openclaw browser type 23 "hello". - Внутрішньо ref розв’язується через
aria-refPlaywright.
-
Role snapshot (role ref на кшталт
e12):openclaw browser snapshot --interactive(або--compact,--depth,--selector,--frame)- Вивід: список/дерево на основі ролей із
[ref=e12](і необов’язковим[nth=1]). - Дії:
openclaw browser click e12,openclaw browser highlight e12. - Внутрішньо ref розв’язується через
getByRole(...)(плюсnth()для дублікатів). - Додайте
--labels, щоб включити знімок екрана viewport з накладеними міткамиe12.
- Вивід: список/дерево на основі ролей із
- Ref не є стабільними між навігаціями; якщо щось не спрацювало, повторно виконайте
snapshotі використайте свіжий ref. - Якщо role snapshot було зроблено з
--frame, role ref обмежуються цим iframe до наступного role snapshot.
Додаткові можливості wait
Можна чекати не лише час/текст:- Очікування URL (glob підтримуються 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 ref в interactive mode) - Якщо все одно не працює:
openclaw browser highlight <ref>, щоб побачити, на що націлюється Playwright - Якщо сторінка поводиться дивно:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Для глибокого налагодження: запишіть trace:
openclaw browser trace start- відтворіть проблему
openclaw browser trace stop(друкуєTRACE:<path>)
JSON-вивід
--json призначений для скриптів і структурованих інструментів.
Приклади:
refs плюс невеликий блок stats (рядки/символи/ref/interactive), щоб інструменти могли оцінювати розмір payload і щільність.
Параметри стану та середовища
Вони корисні для сценаріїв “змусь сайт поводитися як X”:- Cookies:
cookies,cookies set,cookies clear - Storage:
storage local|session get|set|clear - Offline:
set offline on|off - Headers:
set headers --headers-json '{"X-Debug":"1"}'(застарілийset headers --json '{"X-Debug":"1"}'залишається підтримуваним) - HTTP basic auth:
set credentials user pass(або--clear) - Геолокація:
set geo <lat> <lon> --origin "https://example.com"(або--clear) - Media:
set media dark|light|no-preference|none - Часовий пояс / locale:
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, якщо воно вам не потрібне.- Для приміток щодо входу та anti-bot (X/Twitter тощо) див. Browser login + X/Twitter posting.
- Тримайте Gateway/host вузла приватним (лише loopback або tailnet).
- Віддалені endpoint CDP мають великі повноваження; використовуйте тунелі та захищайте їх.
Усунення несправностей
Для проблем, специфічних для Linux (особливо snap Chromium), див. Browser troubleshooting. Для конфігурацій WSL2 Gateway + Windows Chrome на розділених host див. WSL2 + Windows + remote Chrome CDP troubleshooting.Інструменти агента + як працює керування
Агент отримує один інструмент для автоматизації браузера:browser— status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshotповертає стабільне дерево UI (AI або ARIA).browser actвикористовує IDrefзі snapshot для click/type/drag/select.browser screenshotзахоплює пікселі (усю сторінку або елемент).browserприймає:profileдля вибору іменованого профілю браузера (openclaw, chrome або віддалений CDP).target(sandbox|host|node) для вибору місця розташування браузера.- У sandbox-сесіях
target: "host"вимагаєagents.defaults.sandbox.browser.allowHostControl=true. - Якщо
targetне вказано: у sandbox-сесіях використовуєтьсяsandbox, у не-sandbox-сесіях —host. - Якщо підключено вузол із підтримкою браузера, інструмент може автоматично маршрутизуватися до нього, якщо ви не зафіксуєте
target="host"абоtarget="node".
Пов’язане
- Tools Overview — усі доступні інструменти агента
- Sandboxing — керування браузером в ізольованих середовищах
- Security — ризики керування браузером і посилення захисту