openclaw browser
Керуйте інтерфейсом керування браузером OpenClaw і виконуйте дії в браузері: керування життєвим циклом, профілями, вкладками, знімками, знімками екрана, навігацією, введенням, емуляцією стану та налагодженням.
Пов’язане: Інструмент браузера
Загальні прапорці
--url <gatewayWsUrl>: URL WebSocket Gateway (типово береться з конфігурації).--token <token>: токен Gateway (якщо потрібен).--timeout <ms>: час очікування запиту в мс (типово:30000).--expect-final: очікувати на остаточну відповідь Gateway.--browser-profile <name>: вибрати профіль браузера (типово:openclawабоbrowser.defaultProfile).--json: машинозчитуваний формат виведення (де підтримується). Це параметр рівня браузера, тому для однозначності розміщуйте його перед підкомандою, наприкладopenclaw browser --json status. Розміщення в кінці, наприкладopenclaw browser status --json, також працює, якщо вибрана дочірня команда не визначає власний параметр--json.
Швидкий початок роботи (локально)
browser({ action: "doctor" }).
Швидке усунення несправностей
Якщоstart завершується помилкою not reachable after start, спочатку перевірте готовність CDP. Якщо start і tabs виконуються успішно, але open або navigate завершується помилкою, рівень керування браузером справний, а причиною збою зазвичай є блокування політикою SSRF для навігації.
Мінімальна послідовність:
Життєвий цикл
doctor --deepдодає активну перевірку знімка: це корисно, коли базова готовність CDP підтверджена, але потрібно довести, що поточну вкладку можна перевірити.- Для запущеного локального керованого профілю
statusіdoctorповертають кешовані діагностичні дані графічної підсистеми Chrome: класифікацію апаратного й програмного забезпечення, засіб візуалізації, бекенд, пристрій і драйвер, відомості про функції та стан їх вимкнення, а також можливості апаратно прискореного відео.openclaw browser --json statusповертає повне структуроване корисне навантаження. Пасивна перевірка стану ніколи не запускає Chrome лише для збирання цих даних. stopзакриває активний сеанс керування та очищає тимчасові перевизначення емуляції навіть дляattachOnlyі віддалених профілів CDP, у яких OpenClaw не запускав сам процес браузера. Для локальних керованих профілівstopтакож зупиняє породжений процес браузера.start --headlessзастосовується лише до цього запиту запуску й лише тоді, коли OpenClaw запускає локальний керований браузер. Він не змінюєbrowser.headlessабо конфігурацію профілю й не виконує жодних дій для вже запущеного браузера.- На хостах Linux без
DISPLAYабоWAYLAND_DISPLAYлокальні керовані профілі автоматично запускаються в безголовому режимі, якщоOPENCLAW_BROWSER_HEADLESS=0,browser.headless=falseабоbrowser.profiles.<name>.headless=falseявно не вимагає браузер із видимим інтерфейсом.
Якщо команда відсутня
Якщоopenclaw browser є невідомою командою, перевірте plugins.allow у ~/.openclaw/openclaw.json. Якщо наявний plugins.allow, явно додайте вбудований Plugin браузера до списку, якщо конфігурація ще не містить кореневого блоку browser:
browser (наприклад, browser.enabled=true або browser.profiles.<name>) також активує вбудований Plugin браузера за обмежувального списку дозволених плагінів.
Пов’язане: Інструмент браузера
Профілі
Профілі — це іменовані конфігурації маршрутизації браузера:openclaw(типово): запускає виділений екземпляр Chrome під керуванням OpenClaw або під’єднується до нього (ізольований каталог даних користувача).user: керує наявним сеансом Chrome із виконаним входом через Chrome DevTools MCP.- власні профілі CDP: указують на локальну або віддалену кінцеву точку CDP.
--browser-profile <name> у будь-якій підкоманді, наприклад openclaw browser --browser-profile work tabs.
У macOS команда system-profiles виводить реальні профілі Chrome, Brave, Edge або Chromium, доступні на хості. import-profile розшифровує їхні файли cookie після одноразового запиту згоди через macOS Keychain/Touch ID і вставляє їх у новий профіль під керуванням OpenClaw. Імпортуються лише файли cookie; локальне сховище та IndexedDB не змінюються. Деякі сеанси Google використовують прив’язані до пристрою облікові дані сеансу (DBSC), тому після імпорту може все одно знадобитися повторна автентифікація.
Коли застосунок macOS використовує локальний Gateway, він може один раз запропонувати цей імпорт і зробити ізольований імпортований профіль типовим для роботи агентів у браузері. Імпорт завжди потребує явного клацання; успішний імпорт або відхилення пропозиції запобігає подальшим автоматичним запитам, а пункт Settings → General → Browser login залишається доступним для повторного імпорту.
Імпорт системного профілю типово ввімкнений. Установіть browser.allowSystemProfileImport=false, щоб вимкнути імпорти як із CLI, так і запущені агентом. Імпорт виконується лише локально на хості й не може працювати через проксі браузерного вузла.
Вкладки
tabs спочатку повертає suggestedTargetId, потім стабільний tabId (наприклад, t1), необов’язкову мітку та необроблений targetId. Передавайте suggestedTargetId назад до focus, close, знімків і дій. Призначайте мітку за допомогою open --label, tab new --label або tab label; приймаються мітки, ідентифікатори вкладок, необроблені ідентифікатори цілей і унікальні префікси ідентифікаторів цілей. Для сумісності поле запиту досі має назву targetId, але приймає будь-яке з цих посилань на вкладку.
Необроблені ідентифікатори цілей — це мінливі діагностичні дескриптори, а не довготривала пам’ять агента: коли Chromium замінює базову необроблену ціль під час навігації або надсилання форми, OpenClaw зберігає стабільний tabId/мітку, пов’язану з новою вкладкою, якщо може достовірно встановити відповідність. Надавайте перевагу suggestedTargetId.
Знімок / знімок екрана / дії
Знімок:--full-pageпризначений лише для знімків сторінки; його не можна поєднувати з--refабо--element.- Профілі
existing-session/userпідтримують знімки екрана сторінки та знімки екрана--refіз результатів знімка, але не знімки екрана за CSS--element. --labelsнакладає посилання поточного знімка на знімок екрана. У профілях на основі Playwright він працює з--full-page(накладання на всю сторінку),--ref(накладання на обрізану ділянку елемента за посиланням ARIA) і--element(накладання на обрізану ділянку елемента за селектором CSS); у режимах обрізання за елементом мітки проєктуються відносно елемента. Відповідь також містить масивannotations(пропускається, якщо порожній) з обмежувальною рамкою кожного посилання:ref,number,role, необов’язковийnameіbox: {x, y, width, height}у системі координат захопленого зображення (область перегляду / повна сторінка / відносно елемента). Профіліexisting-sessionвідображають накладання chrome-mcp на знімках екрана сторінки, але не використовують допоміжний засіб проєкції Playwright і не містятьannotations; знімки екрана за CSS--elementтам не підтримуються. Без Playwright або chrome-mcp знімки екрана з мітками недоступні.snapshot --urlsдодає знайдені адреси посилань до знімків для ШІ, щоб агенти могли вибирати безпосередні цілі навігації замість припущень лише на основі тексту посилання.
evaluate --fn приймає вихідний код функції, вираз або тіло інструкції. Тіла інструкцій обгортаються в асинхронні функції, тому використовуйте return для значення, яке потрібно отримати. Використовуйте --timeout-ms, якщо функції на боці сторінки може знадобитися більше часу, ніж типовий час очікування обчислення. browser.evaluateEnabled=false (типово: true) вимикає і evaluate, і wait --fn.
Відповіді на дії повертають поточний необроблений targetId після спричиненої дією заміни сторінки, якщо OpenClaw може достовірно визначити нову вкладку. Для довготривалих робочих процесів скриптам однаково слід зберігати й передавати suggestedTargetId/мітки.
Допоміжні засоби для файлів і діалогових вікон:
/tmp/openclaw/downloads або налаштований кореневий каталог тимчасових файлів). Використовуйте waitfordownload або download, коли агенту потрібно дочекатися певного файлу й повернути шлях до нього; ці явні засоби очікування отримують наступне завантаження. Для передавання приймаються файли з кореневого каталогу тимчасових передавань OpenClaw і вхідні медіафайли під керуванням OpenClaw, зокрема посилання media://inbound/<id> і media/inbound/<id> із шляхами відносно пісочниці. Вкладені посилання на медіафайли, обхід каталогів і довільні локальні шляхи відхиляються.
Коли дія відкриває модальне діалогове вікно, відповідь на дію повертає blockedByDialog з browserState.dialogs.pending; передайте --dialog-id, щоб відповісти на нього безпосередньо. Діалогові вікна, оброблені поза OpenClaw, відображаються в browserState.dialogs.recent.
Стан і сховище
Область перегляду й емуляція:Налагодження
Наявний Chrome через MCP
Скористайтеся вбудованим профілемuser або створіть власний профіль existing-session:
--cdp-url, щоб Chrome MCP натомість підключився до цієї кінцевої точки. Для Docker, Browserless або інших віддалених конфігурацій, де семантика Chrome MCP не потрібна, натомість використовуйте профіль CDP.
Поточні обмеження existing-session:
- Дії на основі знімків використовують посилання, а не селектори CSS.
browser.actionTimeoutMsза замовчуванням установлює для підтримуваних запитівactзначення 60000 мс, якщо виклики не вказуютьtimeoutMs; значенняtimeoutMsдля окремого виклику все одно має пріоритет.clickпідтримує лише клацання лівою кнопкою.typeне підтримуєslowly=true.pressне підтримуєdelayMs.hover,scrollintoview,drag,selectіfillвідхиляють перевизначення часу очікування для окремих викликів;evaluateприймає--timeout-ms.selectпідтримує лише одне значення.wait --load networkidleне підтримується (працює з керованими та необробленими/віддаленими профілями CDP).- Для завантаження файлів потрібні
--ref/--input-ref; селектор CSS--elementне підтримується, і одночасно можна завантажити лише один файл. - Обробники діалогових вікон не підтримують
--timeout. - Знімки екрана підтримують захоплення сторінки та
--ref, але не селектор CSS--element. - Для
responsebody, перехоплення завантажень, експорту PDF і пакетних дій усе ще потрібен керований браузер або необроблений профіль CDP.
Віддалене керування браузером (проксі хоста Node)
Якщо Gateway працює на іншому комп’ютері, ніж браузер, запустіть хост Node на комп’ютері, де встановлено Chrome/Brave/Edge/Chromium. Gateway пересилає дії браузера на цей вузол через проксі; окремий сервер керування браузером не потрібен. Використовуйтеgateway.nodes.browser.mode для керування автоматичною маршрутизацією та gateway.nodes.browser.node, щоб закріпити конкретний вузол, якщо підключено кілька.
Безпека + віддалене налаштування: Інструмент браузера, Віддалений доступ, Tailscale, Безпека