diff --git a/docs/uk/tools/browser.md b/docs/uk/tools/browser.md
index ab5320fb9..9e08c5f26 100644
--- a/docs/uk/tools/browser.md
+++ b/docs/uk/tools/browser.md
@@ -1,40 +1,40 @@
---
read_when:
- - Додавання автоматизації браузера під керуванням агента
- - З’ясування, чому openclaw втручається у ваш власний Chrome
- - Реалізація налаштувань і життєвого циклу браузера в застосунку macOS
+ - Додавання автоматизації браузера, керованої агентом
+ - Налагодження причин, через які OpenClaw втручається у роботу вашого власного Chrome
+ - Реалізація налаштувань браузера та керування його життєвим циклом у застосунку macOS
summary: Інтегрований сервіс керування браузером + команди дій
-title: Browser (керований OpenClaw)
+title: Браузер (під керуванням OpenClaw)
x-i18n:
- generated_at: "2026-04-25T11:57:45Z"
+ generated_at: "2026-04-25T12:59:48Z"
model: gpt-5.4
provider: openai
- source_hash: 3f41583eea3554292822aec8858f9b2deb6d5bfd1f313039ee25f37bfb81bf8a
+ source_hash: 2f6915568d2119d2473fc4ee489a03582ffd34218125835d5e073476d3009896
source_path: tools/browser.md
workflow: 15
---
-OpenClaw може запускати **виділений профіль Chrome/Brave/Edge/Chromium**, яким керує агент.
+OpenClaw може запускати **окремий профіль Chrome/Brave/Edge/Chromium**, яким керує агент.
Він ізольований від вашого особистого браузера та керується через невеликий локальний
сервіс керування всередині Gateway (лише loopback).
-Пояснення для початківців:
+Погляд для початківців:
-- Думайте про нього як про **окремий браузер лише для агента**.
-- Профіль `openclaw` **не** торкається профілю вашого особистого браузера.
-- Агент може **відкривати вкладки, читати сторінки, натискати й вводити текст** у безпечному режимі.
-- Вбудований профіль `user` під’єднується до вашого справжнього сеансу Chrome з виконаним входом через Chrome MCP.
+- Думайте про це як про **окремий браузер лише для агента**.
+- Профіль `openclaw` **не** взаємодіє з профілем вашого особистого браузера.
+- Агент може **відкривати вкладки, читати сторінки, натискати та вводити текст** у безпечному середовищі.
+- Вбудований профіль `user` підключається до вашої справжньої авторизованої сесії Chrome через Chrome MCP.
## Що ви отримуєте
-- Окремий профіль браузера з назвою **openclaw** (помаранчевий акцент за замовчуванням).
-- Детерміноване керування вкладками (перелік/відкриття/фокусування/закриття).
-- Дії агента (натискання/введення/перетягування/вибір), знімки стану, знімки екрана, PDF.
-- Вбудований skill `browser-automation`, який навчає агентів циклу відновлення snapshot,
- stable-tab, stale-ref і manual-blocker, коли увімкнено browser Plugin.
+- Окремий профіль браузера з назвою **openclaw** (типово з помаранчевим акцентом).
+- Детерміноване керування вкладками (список/відкриття/фокусування/закриття).
+- Дії агента (натискання/введення/перетягування/вибір), знімки стану, скриншоти, PDF.
+- Вбудований навик `browser-automation`, який навчає агентів циклу відновлення snapshot,
+ stable-tab, stale-ref і manual-blocker, коли ввімкнено Plugin браузера.
- Необов’язкова підтримка кількох профілів (`openclaw`, `work`, `remote`, ...).
-Цей браузер **не** є вашим щоденним браузером. Це безпечна, ізольована поверхня для
+Цей браузер **не** призначений для вашого повсякденного використання. Це безпечна, ізольована поверхня для
автоматизації та перевірки агентом.
## Швидкий старт
@@ -47,15 +47,15 @@ openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
```
-Якщо ви бачите “Browser disabled”, увімкніть його в конфігурації (див. нижче) і перезапустіть
+Якщо ви отримуєте повідомлення “Browser disabled”, увімкніть його в конфігурації (див. нижче) і перезапустіть
Gateway.
-Якщо `openclaw browser` взагалі відсутній або агент каже, що browser tool
-недоступний, перейдіть до [Відсутня команда або tool браузера](/uk/tools/browser#missing-browser-command-or-tool).
+Якщо `openclaw browser` взагалі відсутній або агент каже, що інструмент браузера
+недоступний, перейдіть до [Відсутня команда браузера або інструмент](/uk/tools/browser#missing-browser-command-or-tool).
## Керування Plugin
-Типовий tool `browser` — це вбудований Plugin. Вимкніть його, щоб замінити іншим Plugin, який реєструє ту саму назву tool `browser`:
+Типовий інструмент `browser` є вбудованим Plugin. Вимкніть його, щоб замінити іншим Plugin, який реєструє той самий інструмент `browser`:
```json5
{
@@ -69,29 +69,29 @@ Gateway.
}
```
-Типові налаштування потребують і `plugins.entries.browser.enabled`, і `browser.enabled=true`. Якщо вимкнути лише Plugin, це як єдиний блок прибирає CLI `openclaw browser`, метод Gateway `browser.request`, tool агента та сервіс керування; ваша конфігурація `browser.*` залишається недоторканою для заміни.
+Для типових налаштувань потрібні і `plugins.entries.browser.enabled`, **і** `browser.enabled=true`. Якщо вимкнути лише Plugin, це прибере CLI `openclaw browser`, метод Gateway `browser.request`, інструмент агента та сервіс керування як єдине ціле; ваша конфігурація `browser.*` залишиться недоторканою для заміни.
Зміни конфігурації браузера потребують перезапуску Gateway, щоб Plugin міг повторно зареєструвати свій сервіс.
## Вказівки для агента
-Browser Plugin постачається з двома рівнями вказівок для агента:
+Plugin браузера постачається з двома рівнями вказівок для агента:
-- Опис tool `browser` містить компактний завжди активний контракт: обрати
- правильний профіль, тримати refs у межах тієї самої вкладки, використовувати `tabId`/мітки для
- націлювання на вкладки та завантажувати browser skill для багатоетапної роботи.
-- Вбудований skill `browser-automation` містить довший робочий цикл:
- спочатку перевірити статус/вкладки, позначити мітками вкладки завдання, зробити snapshot перед дією,
- повторно зробити snapshot після змін UI, один раз відновити stale refs і повідомити про блокування через login/2FA/captcha або
- camera/microphone як про ручну дію, а не вгадувати.
+- Опис інструмента `browser` містить компактний, завжди активний контракт: вибирати
+ правильний профіль, зберігати refs у межах тієї самої вкладки, використовувати `tabId`/мітки для
+ націлювання на вкладки та завантажувати навик браузера для багатокрокової роботи.
+- Вбудований навик `browser-automation` містить довший робочий цикл:
+ спочатку перевіряти статус/вкладки, позначати вкладки завдання, робити snapshot перед дією,
+ повторно робити snapshot після змін UI, один раз відновлювати stale refs і повідомляти про блокування через login/2FA/captcha або
+ camera/microphone як про ручну дію замість здогадок.
-Skills, вбудовані в Plugin, перелічуються в доступних Skills агента, коли
-Plugin увімкнено. Повні інструкції skill завантажуються на вимогу, тому звичайні
+Навички, вбудовані в Plugin, перелічуються в доступних навичках агента, коли
+Plugin увімкнено. Повні інструкції навику завантажуються на вимогу, тому звичайні
ходи не сплачують повну вартість у токенах.
-## Відсутня команда або tool браузера
+## Відсутня команда браузера або інструмент
-Якщо `openclaw browser` невідомий після оновлення, `browser.request` відсутній або агент повідомляє, що browser tool недоступний, типовою причиною є список `plugins.allow`, у якому відсутній `browser`. Додайте його:
+Якщо після оновлення `openclaw browser` невідома, `browser.request` відсутній або агент повідомляє, що інструмент браузера недоступний, звичайною причиною є список `plugins.allow`, у якому немає `browser`. Додайте його:
```json5
{
@@ -101,47 +101,46 @@ Plugin увімкнено. Повні інструкції skill заванта
}
```
-`browser.enabled=true`, `plugins.entries.browser.enabled=true` і `tools.alsoAllow: ["browser"]` не замінюють членство в allowlist — allowlist керує завантаженням Plugin, а політика tool починає діяти лише після завантаження. Повне видалення `plugins.allow` також відновлює типову поведінку.
+`browser.enabled=true`, `plugins.entries.browser.enabled=true` і `tools.alsoAllow: ["browser"]` не замінюють членство в allowlist — allowlist керує завантаженням Plugin, а політика інструментів застосовується лише після завантаження. Видалення `plugins.allow` повністю також відновлює типову поведінку.
-## Профілі: `openclaw` і `user`
+## Профілі: `openclaw` проти `user`
- `openclaw`: керований, ізольований браузер (розширення не потрібне).
-- `user`: вбудований профіль під’єднання Chrome MCP до вашого **справжнього Chrome**
- із виконаним входом.
+- `user`: вбудований профіль підключення Chrome MCP до вашої **справжньої авторизованої сесії Chrome**.
-Для викликів tool браузера агентом:
+Для викликів інструмента браузера агентом:
-- За замовчуванням: використовувати ізольований браузер `openclaw`.
-- Віддавайте перевагу `profile="user"`, коли важливі наявні сеанси з виконаним входом і користувач
- перебуває за комп’ютером, щоб натиснути/підтвердити будь-який запит на під’єднання.
-- `profile` — це явне перевизначення, коли ви хочете конкретний режим браузера.
+- Типово: використовуйте ізольований браузер `openclaw`.
+- Віддавайте перевагу `profile="user"`, коли важливі наявні авторизовані сесії і користувач
+ перебуває за комп’ютером, щоб натиснути/підтвердити будь-який запит на підключення.
+- `profile` — це явне перевизначення, коли вам потрібен конкретний режим браузера.
Установіть `browser.defaultProfile: "openclaw"`, якщо хочете, щоб керований режим був типовим.
## Конфігурація
-Налаштування браузера зберігаються в `~/.openclaw/openclaw.json`.
+Налаштування браузера розташовані в `~/.openclaw/openclaw.json`.
```json5
{
browser: {
- enabled: true, // default: true
+ enabled: true, // типово: true
ssrfPolicy: {
- // dangerouslyAllowPrivateNetwork: true, // opt in only for trusted private-network access
- // allowPrivateNetwork: true, // legacy alias
+ // dangerouslyAllowPrivateNetwork: true, // вмикайте лише для довіреного доступу до приватної мережі
+ // allowPrivateNetwork: true, // застарілий псевдонім
// hostnameAllowlist: ["*.example.com", "example.com"],
// allowedHostnames: ["localhost"],
},
- // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override
- remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms)
- remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms)
- localLaunchTimeoutMs: 15000, // local managed Chrome discovery timeout (ms)
- localCdpReadyTimeoutMs: 8000, // local managed post-launch CDP readiness timeout (ms)
- actionTimeoutMs: 60000, // default browser act timeout (ms)
+ // cdpUrl: "http://127.0.0.1:18792", // застаріле перевизначення одного профілю
+ remoteCdpTimeoutMs: 1500, // тайм-аут HTTP віддаленого CDP (мс)
+ remoteCdpHandshakeTimeoutMs: 3000, // тайм-аут рукостискання WebSocket віддаленого CDP (мс)
+ localLaunchTimeoutMs: 15000, // тайм-аут виявлення локального керованого Chrome (мс)
+ localCdpReadyTimeoutMs: 8000, // тайм-аут готовності локального керованого CDP після запуску (мс)
+ actionTimeoutMs: 60000, // типовий тайм-аут дії браузера (мс)
tabCleanup: {
- enabled: true, // default: true
- idleMinutes: 120, // set 0 to disable idle cleanup
- maxTabsPerSession: 8, // set 0 to disable the per-session cap
+ enabled: true, // типово: true
+ idleMinutes: 120, // установіть 0, щоб вимкнути очищення неактивних вкладок
+ maxTabsPerSession: 8, // установіть 0, щоб вимкнути обмеження на сесію
sweepMinutes: 5,
},
defaultProfile: "openclaw",
@@ -179,64 +178,64 @@ Plugin увімкнено. Повні інструкції skill заванта
-- Сервіс керування прив’язується до loopback на порту, похідному від `gateway.port` (типово `18791` = gateway + 2). Перевизначення `gateway.port` або `OPENCLAW_GATEWAY_PORT` зсуває похідні порти в тій самій групі.
-- Локальні профілі `openclaw` автоматично призначають `cdpPort`/`cdpUrl`; задавайте їх лише для віддаленого CDP. Якщо `cdpUrl` не вказано, типово використовується керований локальний порт CDP.
-- `remoteCdpTimeoutMs` застосовується до перевірок доступності HTTP віддаленого (не-loopback) CDP; `remoteCdpHandshakeTimeoutMs` застосовується до WebSocket-handshake віддаленого CDP.
-- `localLaunchTimeoutMs` — це бюджет часу, за який локально запущений керований процес Chrome
- має відкрити свій endpoint CDP HTTP. `localCdpReadyTimeoutMs` — це
- подальший бюджет часу на готовність websocket CDP після виявлення процесу.
- Збільшуйте ці значення на Raspberry Pi, дешевих VPS або старішому обладнанні, де Chromium
+- Сервіс керування прив’язується до loopback на порту, похідному від `gateway.port` (типово `18791` = Gateway + 2). Перевизначення `gateway.port` або `OPENCLAW_GATEWAY_PORT` зміщує похідні порти в тій самій групі.
+- Локальні профілі `openclaw` автоматично призначають `cdpPort`/`cdpUrl`; задавайте їх лише для віддаленого CDP. Якщо `cdpUrl` не вказано, типово використовується локальний керований порт CDP.
+- `remoteCdpTimeoutMs` застосовується до перевірок HTTP-доступності віддаленого (не loopback) CDP; `remoteCdpHandshakeTimeoutMs` застосовується до рукостискань WebSocket віддаленого CDP.
+- `localLaunchTimeoutMs` — це бюджет часу для того, щоб локально запущений керований процес Chrome
+ відкрив свою HTTP-адресу CDP. `localCdpReadyTimeoutMs` — це
+ наступний бюджет часу для готовності websocket CDP після виявлення процесу.
+ Збільшуйте ці значення на Raspberry Pi, бюджетних VPS або старішому обладнанні, де Chromium
запускається повільно. Значення обмежені 120000 мс.
-- `actionTimeoutMs` — це типовий бюджет часу для запитів browser `act`, коли виклик не передає `timeoutMs`. Клієнтський транспорт додає невелике додаткове вікно, щоб довгі очікування могли завершитися, а не обривалися на межі HTTP.
-- `tabCleanup` — це best-effort очищення вкладок, відкритих основними сеансами браузера агента. Підлеглий агент, Cron і очищення життєвого циклу ACP як і раніше закривають свої явно відстежувані вкладки в кінці сеансу; основні сеанси зберігають активні вкладки придатними до повторного використання, а потім у фоновому режимі закривають неактивні або зайві відстежувані вкладки.
+- `actionTimeoutMs` — це типовий бюджет часу для запитів браузера `act`, коли викликач не передає `timeoutMs`. Транспорт клієнта додає невелике додаткове вікно, щоб довгі очікування могли завершитися, а не обриватися на межі HTTP через тайм-аут.
+- `tabCleanup` — це best-effort очищення вкладок, відкритих основними сесіями браузера агента. Очищення життєвого циклу Subagent, Cron і ACP усе ще закриває їхні явно відстежувані вкладки наприкінці сесії; основні сесії зберігають активні вкладки доступними для повторного використання, а потім у фоновому режимі закривають неактивні або зайві відстежувані вкладки.
-- Навігація браузера та open-tab захищені від SSRF перед навігацією, а потім URL `http(s)` у фінальному стані повторно перевіряється в режимі best-effort.
-- У строгому режимі SSRF також перевіряються виявлення віддаленого endpoint CDP і запити `/json/version` (`cdpUrl`).
-- Змінні середовища Gateway/provider `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` і `NO_PROXY` не проксіюють автоматично браузер, яким керує OpenClaw. Керований Chrome за замовчуванням запускається напряму, щоб налаштування проксі provider не послаблювали перевірки SSRF браузера.
-- Щоб проксіювати сам керований браузер, передайте явні proxy-прапорці Chrome через `browser.extraArgs`, наприклад `--proxy-server=...` або `--proxy-pac-url=...`. Строгий режим SSRF блокує явну маршрутизацію браузера через proxy, якщо доступ браузера до приватної мережі не ввімкнено навмисно.
-- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` вимкнено за замовчуванням; вмикайте лише тоді, коли доступ браузера до приватної мережі є свідомо довіреним.
+- Навігація браузера та open-tab захищені від SSRF перед навігацією, а після цього проходять повторну best-effort перевірку на фінальному URL `http(s)`.
+- У суворому режимі SSRF також перевіряються виявлення віддалених кінцевих точок CDP і запити `/json/version` (`cdpUrl`).
+- Змінні середовища Gateway/provider `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` і `NO_PROXY` не проксіюють автоматично браузер під керуванням OpenClaw. Керований Chrome типово запускається напряму, тому налаштування проксі provider не послаблюють перевірки SSRF браузера.
+- Щоб проксіювати сам керований браузер, передайте явні прапорці проксі Chrome через `browser.extraArgs`, наприклад `--proxy-server=...` або `--proxy-pac-url=...`. Суворий режим SSRF блокує явну маршрутизацію браузерного проксі, якщо доступ браузера до приватної мережі не був навмисно ввімкнений.
+- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` типово вимкнено; вмикайте лише тоді, коли доступ браузера до приватної мережі навмисно вважається довіреним.
- `browser.ssrfPolicy.allowPrivateNetwork` і далі підтримується як застарілий псевдонім.
-
+
-- `attachOnly: true` означає ніколи не запускати локальний браузер; лише під’єднуватися, якщо він уже працює.
-- `headless` можна задавати глобально або для окремого локального керованого профілю. Значення для профілю мають вищий пріоритет над `browser.headless`, тому один локально запущений профіль може залишатися headless, тоді як інший буде видимим.
+- `attachOnly: true` означає ніколи не запускати локальний браузер; лише підключатися, якщо він уже запущений.
+- `headless` можна задавати глобально або для кожного локального керованого профілю. Значення для конкретного профілю мають пріоритет над `browser.headless`, тому один локально запущений профіль може залишатися headless, тоді як інший буде видимим.
- `POST /start?headless=true` і `openclaw browser start --headless` запитують
одноразовий запуск у режимі headless для локальних керованих профілів без переписування
`browser.headless` або конфігурації профілю. Профілі existing-session, attach-only і
- віддаленого CDP відхиляють це перевизначення, оскільки OpenClaw не запускає ці
+ remote CDP відхиляють це перевизначення, оскільки OpenClaw не запускає ці
процеси браузера.
-- На хостах Linux без `DISPLAY` або `WAYLAND_DISPLAY` локальні керовані профілі
- автоматично типово працюють у режимі headless, коли ні середовище, ні конфігурація профілю/глобальна
- конфігурація явно не вибирають режим із вікном. `openclaw browser status --json`
+- На Linux-хостах без `DISPLAY` або `WAYLAND_DISPLAY` локальні керовані профілі
+ типово автоматично переходять у headless, якщо ні середовище, ні конфігурація профілю/глобальна
+ конфігурація явно не вибирають видимий режим. `openclaw browser status --json`
повідомляє `headlessSource` як `env`, `profile`, `config`,
`request`, `linux-display-fallback` або `default`.
-- `OPENCLAW_BROWSER_HEADLESS=1` примусово вмикає headless для локальних керованих запусків у
- поточному процесі. `OPENCLAW_BROWSER_HEADLESS=0` примусово вмикає режим із вікном для звичайних
- запусків і повертає практичну помилку на хостах Linux без сервера дисплея;
+- `OPENCLAW_BROWSER_HEADLESS=1` примусово запускає локальні керовані профілі в режимі headless для
+ поточного процесу. `OPENCLAW_BROWSER_HEADLESS=0` примусово вмикає видимий режим для звичайних
+ запусків і повертає зрозумілу помилку на Linux-хостах без display server;
явний запит `start --headless` усе одно має пріоритет для цього одного запуску.
-- `executablePath` можна задавати глобально або для окремого локального керованого профілю. Значення для профілю мають вищий пріоритет над `browser.executablePath`, тому різні керовані профілі можуть запускати різні браузери на базі Chromium.
-- `color` (верхній рівень і рівень профілю) тонують UI браузера, щоб ви бачили, який профіль активний.
-- Профіль за замовчуванням — `openclaw` (керований автономний). Використайте `defaultProfile: "user"`, щоб за замовчуванням увімкнути браузер користувача з виконаним входом.
-- Порядок автовизначення: системний браузер за замовчуванням, якщо він на базі Chromium; інакше Chrome → Brave → Edge → Chromium → Chrome Canary.
-- `driver: "existing-session"` використовує Chrome DevTools MCP замість raw CDP. Не задавайте `cdpUrl` для цього driver.
-- Установіть `browser.profiles..userDataDir`, коли профіль existing-session має під’єднуватися до нестандартного користувацького профілю Chromium (Brave, Edge тощо).
+- `executablePath` можна задавати глобально або для кожного локального керованого профілю. Значення для конкретного профілю мають пріоритет над `browser.executablePath`, тому різні керовані профілі можуть запускати різні браузери на основі Chromium.
+- `color` (на верхньому рівні та для кожного профілю) тонує UI браузера, щоб ви могли бачити, який профіль активний.
+- Типовий профіль — `openclaw` (керований окремий). Використовуйте `defaultProfile: "user"`, щоб перейти на авторизований браузер користувача.
+- Порядок автовиявлення: системний типовий браузер, якщо він на основі Chromium; інакше Chrome → Brave → Edge → Chromium → Chrome Canary.
+- `driver: "existing-session"` використовує Chrome DevTools MCP замість сирого CDP. Не встановлюйте `cdpUrl` для цього driver.
+- Установіть `browser.profiles..userDataDir`, коли профіль existing-session має підключатися до нетипового профілю користувача Chromium (Brave, Edge тощо).
-## Використання Brave (або іншого браузера на базі Chromium)
+## Використання Brave (або іншого браузера на основі Chromium)
-Якщо вашим **системним браузером за замовчуванням** є браузер на базі Chromium (Chrome/Brave/Edge тощо),
+Якщо ваш **системний типовий** браузер працює на основі Chromium (Chrome/Brave/Edge тощо),
OpenClaw використовує його автоматично. Установіть `browser.executablePath`, щоб перевизначити
-автовизначення. `~` розгортається до домашнього каталогу вашої ОС:
+автовиявлення. `~` розгортається до домашнього каталогу вашої ОС:
```bash
openclaw config set browser.executablePath "/usr/bin/google-chrome"
@@ -275,61 +274,61 @@ openclaw config set browser.profiles.work.executablePath "/Applications/Google C
-`executablePath` для окремого профілю впливає лише на локальні керовані профілі, які OpenClaw
-запускає сам. Профілі `existing-session` натомість під’єднуються до вже запущеного браузера,
-а профілі віддаленого CDP використовують браузер, який стоїть за `cdpUrl`.
+`executablePath` для конкретного профілю впливає лише на локальні керовані профілі, які запускає OpenClaw.
+Профілі `existing-session` натомість підключаються до вже запущеного браузера,
+а профілі remote CDP використовують браузер, який стоїть за `cdpUrl`.
-## Локальне й віддалене керування
+## Локальне та віддалене керування
-- **Локальне керування (за замовчуванням):** Gateway запускає loopback-сервіс керування й може запускати локальний браузер.
-- **Віддалене керування (host Node):** запустіть host Node на машині, де є браузер; Gateway проксіює до нього дії браузера.
-- **Віддалений CDP:** установіть `browser.profiles..cdpUrl` (або `browser.cdpUrl`), щоб
- під’єднатися до віддаленого браузера на базі Chromium. У такому разі OpenClaw не запускатиме локальний браузер.
-- `headless` впливає лише на локальні керовані профілі, які запускає OpenClaw. Він не перезапускає й не змінює браузери `existing-session` або віддаленого CDP.
-- `executablePath` підпорядковується тому самому правилу локального керованого профілю. Його зміна для
- запущеного локального керованого профілю позначає цей профіль для restart/reconcile, щоб
- наступний запуск використовував новий двійковий файл.
+- **Локальне керування (типово):** Gateway запускає loopback-сервіс керування і може запускати локальний браузер.
+- **Віддалене керування (вузол-хост):** запустіть вузол-хост на машині, де є браузер; Gateway проксіюватиме до нього дії браузера.
+- **Remote CDP:** установіть `browser.profiles..cdpUrl` (або `browser.cdpUrl`), щоб
+ підключитися до віддаленого браузера на основі Chromium. У цьому випадку OpenClaw не запускатиме локальний браузер.
+- `headless` впливає лише на локальні керовані профілі, які запускає OpenClaw. Це не перезапускає і не змінює браузери existing-session або remote CDP.
+- `executablePath` підпорядковується тому самому правилу локальних керованих профілів. Його зміна для
+ запущеного локального керованого профілю позначає цей профіль для перезапуску/узгодження, щоб
+ наступний запуск використовував новий бінарний файл.
Поведінка зупинки відрізняється залежно від режиму профілю:
- локальні керовані профілі: `openclaw browser stop` зупиняє процес браузера, який
запустив OpenClaw
-- профілі attach-only і віддаленого CDP: `openclaw browser stop` закриває активний
- сеанс керування та скидає перевизначення емуляції Playwright/CDP (viewport,
+- профілі attach-only і remote CDP: `openclaw browser stop` закриває активну
+ сесію керування та скидає перевизначення емуляції Playwright/CDP (viewport,
color scheme, locale, timezone, offline mode та подібний стан), навіть
якщо OpenClaw не запускав жодного процесу браузера
URL віддаленого CDP можуть містити автентифікацію:
-- query-токени (наприклад, `https://provider.example?token=`)
+- Токени запиту (наприклад, `https://provider.example?token=`)
- HTTP Basic auth (наприклад, `https://user:pass@provider.example`)
-OpenClaw зберігає ці дані автентифікації під час виклику endpoint `\/json/*` і під час підключення
-до WebSocket CDP. Для токенів віддавайте перевагу змінним середовища або менеджерам секретів замість
+OpenClaw зберігає автентифікаційні дані під час викликів кінцевих точок `/json/*` і під час підключення
+до WebSocket CDP. Для токенів краще використовувати змінні середовища або менеджери секретів замість
запису їх у файли конфігурації.
-## Node browser proxy (zero-config за замовчуванням)
+## Проксі браузера вузла (типово без конфігурації)
-Якщо ви запускаєте **host Node** на машині, де є ваш браузер, OpenClaw може
-автоматично маршрутизувати виклики browser tool до цього Node без жодної додаткової конфігурації браузера.
-Це типовий шлях для віддалених gateway.
+Якщо ви запускаєте **вузол-хост** на машині, де є ваш браузер, OpenClaw може
+автоматично спрямовувати виклики інструмента браузера до цього вузла без додаткової конфігурації браузера.
+Це типовий шлях для віддалених Gateway.
Примітки:
-- Host Node надає свій локальний сервер керування браузером через **proxy command**.
-- Профілі беруться з власної конфігурації `browser.profiles` вузла (так само, як і локально).
-- `nodeHost.browserProxy.allowProfiles` необов’язковий. Залиште його порожнім для legacy/типової поведінки: усі налаштовані профілі залишаються доступними через proxy, включно з маршрутами create/delete профілів.
-- Якщо ви задаєте `nodeHost.browserProxy.allowProfiles`, OpenClaw розглядає це як межу найменших привілеїв: націлюватися можна лише на профілі з allowlist, а маршрути create/delete постійних профілів блокуються на поверхні proxy.
-- Вимкніть це, якщо не хочете використовувати:
- - На Node: `nodeHost.browserProxy.enabled=false`
- - На gateway: `gateway.nodes.browser.mode="off"`
+- Вузол-хост надає свій локальний сервер керування браузером через **proxy command**.
+- Профілі беруться з власної конфігурації `browser.profiles` вузла (так само, як локально).
+- `nodeHost.browserProxy.allowProfiles` необов’язковий. Залиште його порожнім для застарілої/типової поведінки: усі налаштовані профілі залишаються доступними через проксі, включно з маршрутами створення/видалення профілів.
+- Якщо ви задаєте `nodeHost.browserProxy.allowProfiles`, OpenClaw трактує це як межу найменших привілеїв: можна звертатися лише до профілів з allowlist, а маршрути створення/видалення постійних профілів блокуються на поверхні проксі.
+- Вимкніть це, якщо воно вам не потрібне:
+ - На вузлі: `nodeHost.browserProxy.enabled=false`
+ - На Gateway: `gateway.nodes.browser.mode="off"`
-## Browserless (hosted remote CDP)
+## Browserless (хостинговий remote CDP)
-[Browserless](https://browserless.io) — це hosted-сервіс Chromium, який надає
-URL підключення CDP через HTTPS і WebSocket. OpenClaw може використовувати будь-яку форму, але
-для профілю віддаленого браузера найпростішим варіантом є прямий URL WebSocket
-із документації Browserless щодо підключення.
+[Browserless](https://browserless.io) — це хостинговий сервіс Chromium, який надає
+URL підключення CDP через HTTPS і WebSocket. OpenClaw може використовувати будь-який із цих форматів, але
+для віддаленого профілю браузера найпростішим варіантом є прямий URL WebSocket
+з документації з підключення Browserless.
Приклад:
@@ -353,39 +352,39 @@ URL підключення CDP через HTTPS і WebSocket. OpenClaw може
Примітки:
- Замініть `` на ваш справжній токен Browserless.
-- Виберіть endpoint регіону, який відповідає вашому обліковому запису Browserless (див. їхню документацію).
+- Виберіть кінцеву точку регіону, яка відповідає вашому обліковому запису Browserless (див. їхню документацію).
- Якщо Browserless надає вам базовий URL HTTPS, ви можете або перетворити його на
`wss://` для прямого підключення CDP, або залишити URL HTTPS і дозволити OpenClaw
виявити `/json/version`.
## Провайдери прямого WebSocket CDP
-Деякі hosted-сервіси браузера надають **прямий endpoint WebSocket** замість
-стандартного HTTP-виявлення CDP (`/json/version`). OpenClaw приймає три форми
-URL CDP і автоматично вибирає правильну стратегію підключення:
+Деякі хостингові сервіси браузерів надають **пряму кінцеву точку WebSocket** замість
+стандартного виявлення CDP на основі HTTP (`/json/version`). OpenClaw приймає три
+форми URL CDP і автоматично вибирає правильну стратегію підключення:
-- **HTTP(S)-виявлення** — `http://host[:port]` або `https://host[:port]`.
- OpenClaw викликає `/json/version`, щоб виявити URL WebSocket debugger, а потім
- підключається. Резервного переходу на WebSocket немає.
-- **Прямі endpoints WebSocket** — `ws://host[:port]/devtools//` або
+- **HTTP(S) discovery** — `http://host[:port]` або `https://host[:port]`.
+ OpenClaw викликає `/json/version`, щоб виявити URL debugger WebSocket, а потім
+ підключається. Без fallback на WebSocket.
+- **Прямі кінцеві точки WebSocket** — `ws://host[:port]/devtools//` або
`wss://...` зі шляхом `/devtools/browser|page|worker|shared_worker|service_worker/`.
- OpenClaw підключається безпосередньо через WebSocket-handshake і повністю пропускає
+ OpenClaw підключається напряму через рукостискання WebSocket і повністю пропускає
`/json/version`.
-- **Кореневі WebSocket без шляху** — `ws://host[:port]` або `wss://host[:port]` без
+- **Корені bare WebSocket** — `ws://host[:port]` або `wss://host[:port]` без
шляху `/devtools/...` (наприклад, [Browserless](https://browserless.io),
- [Browserbase](https://www.browserbase.com)). OpenClaw спочатку пробує
- HTTP-виявлення `/json/version` (нормалізуючи схему до `http`/`https`);
- якщо в результаті виявлення повертається `webSocketDebuggerUrl`, він використовується, інакше OpenClaw
- переходить до прямого WebSocket-handshake на корені без шляху. Це дає змогу
- підключатися й для простого `ws://`, спрямованого на локальний Chrome, оскільки Chrome лише
- приймає WebSocket upgrades на конкретному шляху для цілі з
+ [Browserbase](https://www.browserbase.com)). OpenClaw спочатку намагається виконати HTTP
+ виявлення через `/json/version` (нормалізуючи схему до `http`/`https`);
+ якщо виявлення повертає `webSocketDebuggerUrl`, він використовується, інакше OpenClaw
+ переходить до прямого рукостискання WebSocket на bare-корені. Це дозволяє
+ bare `ws://`, спрямованому на локальний Chrome, усе одно підключатися, оскільки Chrome
+ приймає оновлення WebSocket лише на конкретному шляху для цілі з
`/json/version`.
### Browserbase
[Browserbase](https://www.browserbase.com) — це хмарна платформа для запуску
-браузерів у режимі headless із вбудованим розв’язанням CAPTCHA, stealth mode і residential
-proxy.
+headless-браузерів із вбудованим розв’язанням CAPTCHA, stealth mode і резидентними
+проксі.
```json5
{
@@ -408,13 +407,12 @@ proxy.
- [Зареєструйтеся](https://www.browserbase.com/sign-up) і скопіюйте свій **API Key**
з [панелі Overview](https://www.browserbase.com/overview).
-- Замініть `` на ваш справжній API-ключ Browserbase.
-- Browserbase автоматично створює сеанс браузера під час підключення WebSocket, тож
- ручний крок створення сеансу не потрібен.
-- Безкоштовний тариф дозволяє один одночасний сеанс і одну browser hour на місяць.
- Див. [pricing](https://www.browserbase.com/pricing) щодо обмежень платних планів.
-- Див. [документацію Browserbase](https://docs.browserbase.com) для повного
- довідника API, посібників із SDK та прикладів інтеграції.
+- Замініть `` на ваш справжній API key Browserbase.
+- Browserbase автоматично створює сесію браузера під час підключення WebSocket, тому
+ окремий крок ручного створення сесії не потрібен.
+- Безкоштовний тариф дозволяє одну одночасну сесію та одну браузерну годину на місяць.
+ Обмеження платних тарифів дивіться в [pricing](https://www.browserbase.com/pricing).
+- Повний довідник API, посібники з SDK та приклади інтеграції дивіться в [документації Browserbase](https://docs.browserbase.com).
## Безпека
@@ -422,47 +420,47 @@ proxy.
- Керування браузером доступне лише через loopback; доступ проходить через автентифікацію Gateway або pairing вузла.
- Окремий loopback HTTP API браузера використовує **лише автентифікацію через shared-secret**:
- bearer auth із токеном gateway, `x-openclaw-password` або HTTP Basic auth із
- налаштованим паролем gateway.
+ bearer auth за токеном Gateway, `x-openclaw-password` або HTTP Basic auth із
+ налаштованим паролем Gateway.
- Заголовки ідентичності Tailscale Serve і `gateway.auth.mode: "trusted-proxy"`
**не** автентифікують цей окремий loopback API браузера.
-- Якщо керування браузером увімкнено й не налаштовано жодної автентифікації через shared-secret, OpenClaw
- автоматично генерує `gateway.auth.token` під час запуску й зберігає його в конфігурації.
+- Якщо керування браузером увімкнено і не налаштовано жодної shared-secret auth, OpenClaw
+ автоматично генерує `gateway.auth.token` під час запуску та зберігає його в конфігурації.
- OpenClaw **не** генерує цей токен автоматично, якщо `gateway.auth.mode` уже має значення
`password`, `none` або `trusted-proxy`.
-- Тримайте Gateway і будь-які host Node у приватній мережі (Tailscale); уникайте публічного доступу.
-- Ставтеся до URL/токенів віддаленого CDP як до секретів; віддавайте перевагу env vars або менеджеру секретів.
+- Тримайте Gateway і будь-які вузли-хости в приватній мережі (Tailscale); уникайте публічного доступу.
+- Вважайте URL/токени remote CDP секретами; надавайте перевагу змінним середовища або менеджеру секретів.
-Поради щодо віддаленого CDP:
+Поради щодо remote CDP:
-- За можливості віддавайте перевагу зашифрованим endpoint (`HTTPS` або `WSS`) і токенам із коротким строком дії.
-- Уникайте вбудовування токенів із довгим строком дії безпосередньо у файли конфігурації.
+- За можливості віддавайте перевагу зашифрованим кінцевим точкам (HTTPS або WSS) і короткоживучим токенам.
+- Уникайте вбудовування довгоживучих токенів безпосередньо у файли конфігурації.
## Профілі (кілька браузерів)
OpenClaw підтримує кілька іменованих профілів (конфігурацій маршрутизації). Профілі можуть бути:
-- **керованими OpenClaw**: виділений екземпляр браузера на базі Chromium із власним каталогом користувацьких даних + портом CDP
-- **віддаленими**: явний URL CDP (браузер на базі Chromium, запущений деінде)
-- **наявним сеансом**: ваш наявний профіль Chrome через автопідключення Chrome DevTools MCP
+- **під керуванням OpenClaw**: окремий екземпляр браузера на основі Chromium із власним каталогом даних користувача + портом CDP
+- **віддалені**: явний URL CDP (браузер на основі Chromium запущено деінде)
+- **наявна сесія**: ваш наявний профіль Chrome через автопідключення Chrome DevTools MCP
-Типова поведінка:
+Типові значення:
- Профіль `openclaw` створюється автоматично, якщо відсутній.
-- Профіль `user` вбудований для attach до наявного сеансу Chrome MCP.
-- Профілі existing-session, крім `user`, вмикаються лише явно; створюйте їх через `--driver existing-session`.
+- Профіль `user` вбудований для підключення existing-session через Chrome MCP.
+- Профілі existing-session, окрім `user`, вмикаються лише явно; створюйте їх через `--driver existing-session`.
- Локальні порти CDP типово виділяються з діапазону **18800–18899**.
- Видалення профілю переміщує його локальний каталог даних до Trash.
-Усі endpoints керування приймають `?profile=`; CLI використовує `--browser-profile`.
+Усі кінцеві точки керування приймають `?profile=`; CLI використовує `--browser-profile`.
-## Наявний сеанс через Chrome DevTools MCP
+## Наявна сесія через Chrome DevTools MCP
-OpenClaw також може під’єднуватися до запущеного профілю браузера на базі Chromium через
+OpenClaw також може підключатися до запущеного профілю браузера на основі Chromium через
офіційний сервер Chrome DevTools MCP. Це повторно використовує вкладки та стан входу,
які вже відкриті в цьому профілі браузера.
-Офіційні довідкові матеріали й матеріали з налаштування:
+Офіційні довідкові матеріали та посилання на налаштування:
- [Chrome for Developers: Use Chrome DevTools MCP with your browser session](https://developer.chrome.com/blog/chrome-devtools-mcp-debug-your-browser-session)
- [Chrome DevTools MCP README](https://github.com/ChromeDevTools/chrome-devtools-mcp)
@@ -498,17 +496,17 @@ OpenClaw також може під’єднуватися до запущено
Потім у відповідному браузері:
-1. Відкрийте сторінку inspect цього браузера для віддаленого налагодження.
-2. Увімкніть віддалене налагодження.
-3. Залиште браузер запущеним і підтвердьте запит на підключення, коли OpenClaw приєднається.
+1. Відкрийте сторінку inspect цього браузера для remote debugging.
+2. Увімкніть remote debugging.
+3. Не закривайте браузер і підтвердьте запит на підключення, коли OpenClaw приєднається.
-Типові сторінки inspect:
+Поширені сторінки inspect:
- Chrome: `chrome://inspect/#remote-debugging`
- Brave: `brave://inspect/#remote-debugging`
- Edge: `edge://inspect/#remote-debugging`
-Smoke-тест live attach:
+Живий smoke test підключення:
```bash
openclaw browser --browser-profile user start
@@ -517,60 +515,82 @@ openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot --format ai
```
-Ознаки успішного підключення:
+Ознаки успіху:
- `status` показує `driver: existing-session`
- `status` показує `transport: chrome-mcp`
- `status` показує `running: true`
-- `tabs` перелічує ваші вже відкриті вкладки браузера
-- `snapshot` повертає refs із вибраної live-вкладки
+- `tabs` перелічує вже відкриті вкладки вашого браузера
+- `snapshot` повертає refs із вибраної живої вкладки
Що перевірити, якщо підключення не працює:
-- цільовий браузер на базі Chromium має версію `144+`
-- у сторінці inspect цього браузера увімкнено віддалене налагодження
-- браузер показав запит на згоду для підключення, і ви його підтвердили
-- `openclaw doctor` мігрує стару конфігурацію браузера на основі розширення й перевіряє, що
- Chrome локально встановлений для типових профілів автопідключення, але він не може
- увімкнути віддалене налагодження на боці браузера за вас
+- цільовий браузер на основі Chromium має версію `144+`
+- remote debugging увімкнено на сторінці inspect цього браузера
+- браузер показав запит на згоду на підключення, і ви його прийняли
+- `openclaw doctor` мігрує стару конфігурацію браузера на основі розширення і перевіряє,
+ що Chrome локально встановлено для типових профілів автопідключення, але він не може
+ увімкнути remote debugging у браузері замість вас
Використання агентом:
-- Використовуйте `profile="user"`, коли вам потрібен браузер користувача зі станом входу.
+- Використовуйте `profile="user"`, коли вам потрібен стан авторизованого браузера користувача.
- Якщо ви використовуєте власний профіль existing-session, передайте явну назву цього профілю.
-- Вибирайте цей режим лише тоді, коли користувач перебуває за комп’ютером, щоб підтвердити запит
- на підключення.
-- Gateway або host Node може запускати `npx chrome-devtools-mcp@latest --autoConnect`
+- Вибирайте цей режим лише тоді, коли користувач перебуває за комп’ютером, щоб підтвердити
+ запит на підключення.
+- Gateway або вузол-хост може запускати `npx chrome-devtools-mcp@latest --autoConnect`
Примітки:
- Цей шлях має вищий ризик, ніж ізольований профіль `openclaw`, оскільки він може
- виконувати дії у вашому браузері з виконаним входом.
-- OpenClaw не запускає браузер для цього driver; він лише під’єднується.
+ виконувати дії у вашій авторизованій сесії браузера.
+- OpenClaw не запускає браузер для цього driver; він лише підключається.
- Тут OpenClaw використовує офіційний потік Chrome DevTools MCP `--autoConnect`. Якщо
- задано `userDataDir`, його буде передано далі для націлювання на цей каталог користувацьких даних.
-- Existing-session може під’єднуватися на вибраному host або через підключений
- browser Node. Якщо Chrome розташований деінде й не підключено browser Node, використовуйте
- натомість віддалений CDP або host Node.
+ задано `userDataDir`, його буде передано далі для націлювання на цей каталог даних користувача.
+- Existing-session може підключатися на вибраному хості або через підключений
+ browser Node. Якщо Chrome розташований деінде і жоден browser Node не підключено, використовуйте
+ remote CDP або вузол-хост натомість.
-
+### Власний запуск Chrome MCP
+
+Перевизначте сервер Chrome DevTools MCP, який запускається для конкретного профілю, коли типовий
+потік `npx chrome-devtools-mcp@latest` вам не підходить (офлайн-хости,
+закріплені версії, вендорні бінарні файли):
+
+| Поле | Що воно робить |
+| ------------ | -------------------------------------------------------------------------------------------------------------------------- |
+| `mcpCommand` | Виконуваний файл, який запускати замість `npx`. Розв’язується як є; абсолютні шляхи підтримуються. |
+| `mcpArgs` | Масив аргументів, який без змін передається до `mcpCommand`. Замінює типові аргументи `chrome-devtools-mcp@latest --autoConnect`. |
+
+Коли для профілю existing-session задано `cdpUrl`, OpenClaw пропускає
+`--autoConnect` і автоматично передає кінцеву точку до Chrome MCP:
+
+- `http(s)://...` → `--browserUrl ` (кінцева точка HTTP discovery DevTools).
+- `ws(s)://...` → `--wsEndpoint ` (прямий WebSocket CDP).
+
+Прапорці кінцевої точки та `userDataDir` не можна поєднувати: коли задано `cdpUrl`,
+`userDataDir` ігнорується під час запуску Chrome MCP, оскільки Chrome MCP підключається до
+запущеного браузера за цією кінцевою точкою, а не відкриває каталог
+профілю.
+
+
Порівняно з керованим профілем `openclaw`, драйвери existing-session мають більше обмежень:
-- **Знімки екрана** — працюють захоплення сторінки та захоплення елемента через `--ref`; CSS-селектори `--element` не працюють. `--full-page` не можна поєднувати з `--ref` або `--element`. Для знімків екрана сторінки або елемента за `ref` Playwright не потрібен.
+- **Скриншоти** — знімки сторінки та знімки елементів через `--ref` працюють; CSS-селектори `--element` — ні. `--full-page` не можна поєднувати з `--ref` або `--element`. Playwright не потрібен для скриншотів сторінки або елементів на основі ref.
- **Дії** — `click`, `type`, `hover`, `scrollIntoView`, `drag` і `select` потребують snapshot refs (без CSS-селекторів). `click-coords` натискає видимі координати viewport і не потребує snapshot ref. `click` підтримує лише ліву кнопку миші. `type` не підтримує `slowly=true`; використовуйте `fill` або `press`. `press` не підтримує `delayMs`. `type`, `hover`, `scrollIntoView`, `drag`, `select`, `fill` і `evaluate` не підтримують тайм-аути для окремих викликів. `select` приймає одне значення.
-- **Очікування / завантаження файлу / діалог** — `wait --url` підтримує точний збіг, підрядок і glob-шаблони; `wait --load networkidle` не підтримується. Hooks завантаження файлів потребують `ref` або `inputRef`, по одному файлу за раз, без CSS `element`. Hooks діалогів не підтримують перевизначення тайм-ауту.
-- **Функції лише для керованого режиму** — пакетні дії, експорт PDF, перехоплення завантажень і `responsebody` як і раніше потребують шляху керованого браузера.
+- **Очікування / завантаження файлів / діалогові вікна** — `wait --url` підтримує точний збіг, підрядок і glob-шаблони; `wait --load networkidle` не підтримується. Хуки завантаження файлів потребують `ref` або `inputRef`, по одному файлу за раз, без CSS `element`. Хуки діалогових вікон не підтримують перевизначення тайм-ауту.
+- **Можливості лише для керованого режиму** — пакетні дії, експорт PDF, перехоплення завантажень і `responsebody` усе ще потребують шляху керованого браузера.
## Гарантії ізоляції
-- **Виділений каталог користувацьких даних**: ніколи не торкається профілю вашого особистого браузера.
-- **Виділені порти**: уникає `9222`, щоб не створювати конфліктів із робочими процесами розробки.
-- **Детерміноване керування вкладками**: `tabs` спочатку повертає `suggestedTargetId`, а потім
+- **Окремий каталог даних користувача**: ніколи не взаємодіє з профілем вашого особистого браузера.
+- **Окремі порти**: уникає `9222`, щоб не створювати конфліктів із робочими процесами розробки.
+- **Детерміноване керування вкладками**: `tabs` спочатку повертає `suggestedTargetId`, потім
стабільні дескриптори `tabId`, такі як `t1`, необов’язкові мітки та сирий `targetId`.
- Агенти мають повторно використовувати `suggestedTargetId`; сирі id залишаються доступними для
+ Агентам слід повторно використовувати `suggestedTargetId`; сирі id залишаються доступними для
налагодження та сумісності.
## Вибір браузера
@@ -583,7 +603,7 @@ openclaw browser --browser-profile user snapshot --format ai
4. Chromium
5. Chrome Canary
-Ви можете перевизначити це за допомогою `browser.executablePath`.
+Ви можете перевизначити це через `browser.executablePath`.
Платформи:
@@ -595,14 +615,14 @@ openclaw browser --browser-profile user snapshot --format ai
## API керування (необов’язково)
-Для автоматизації сценаріями та налагодження Gateway надає невеликий **loopback-only HTTP
-API керування** плюс відповідний CLI `openclaw browser` (snapshot, refs, можливості wait,
-вивід JSON, робочі процеси налагодження). Див.
+Для сценаріїв і налагодження Gateway надає невеликий **HTTP API керування
+лише для loopback**, а також відповідний CLI `openclaw browser` (snapshots, refs, wait
+power-ups, вивід JSON, робочі процеси налагодження). Див.
[API керування браузером](/uk/tools/browser-control) для повного довідника.
## Усунення несправностей
-Щодо проблем, специфічних для Linux (особливо snap Chromium), див.
+Для проблем, специфічних для Linux (особливо snap Chromium), див.
[Усунення несправностей браузера](/uk/tools/browser-linux-troubleshooting).
Для конфігурацій із розділеними хостами WSL2 Gateway + Windows Chrome див.
@@ -613,15 +633,15 @@ API керування** плюс відповідний CLI `openclaw browser`
Це різні класи помилок, і вони вказують на різні шляхи коду.
- **Помилка запуску або готовності CDP** означає, що OpenClaw не може підтвердити, що площина керування браузером справна.
-- **Блокування SSRF під час навігації** означає, що площина керування браузером справна, але ціль навігації сторінки відхиляється політикою.
+- **Блокування SSRF під час навігації** означає, що площина керування браузером справна, але ціль переходу сторінки відхиляється політикою.
-Типові приклади:
+Поширені приклади:
- Помилка запуску або готовності CDP:
- `Chrome CDP websocket for profile "openclaw" is not reachable after start`
- `Remote CDP for profile "" is not reachable at `
- Блокування SSRF під час навігації:
- - потоки `open`, `navigate`, snapshot або відкриття вкладки завершуються помилкою політики браузера/мережі, тоді як `start` і `tabs` усе ще працюють
+ - потоки `open`, `navigate`, snapshot або відкриття вкладок завершуються з помилкою політики браузера/мережі, тоді як `start` і `tabs` усе ще працюють
Використайте цю мінімальну послідовність, щоб відрізнити одне від іншого:
@@ -635,44 +655,44 @@ openclaw browser --browser-profile openclaw open https://example.com
- Якщо `start` завершується помилкою `not reachable after start`, спочатку усувайте проблему готовності CDP.
- Якщо `start` успішний, але `tabs` завершується помилкою, площина керування все ще несправна. Розглядайте це як проблему доступності CDP, а не проблему навігації сторінки.
-- Якщо `start` і `tabs` успішні, але `open` або `navigate` завершується помилкою, площина керування браузером працює, а проблема в політиці навігації або цільовій сторінці.
+- Якщо `start` і `tabs` успішні, але `open` або `navigate` завершуються помилкою, площина керування браузером працює, а збій пов’язаний із політикою навігації або цільовою сторінкою.
- Якщо `start`, `tabs` і `open` усі успішні, базовий шлях керування керованим браузером справний.
-Важливі подробиці поведінки:
+Важливі деталі поведінки:
-- Конфігурація браузера за замовчуванням використовує fail-closed об’єкт політики SSRF, навіть якщо ви не налаштовуєте `browser.ssrfPolicy`.
-- Для локального керованого профілю loopback `openclaw` перевірки справності CDP навмисно пропускають застосування доступності SSRF браузера для власної локальної площини керування OpenClaw.
-- Захист навігації є окремим. Успішний результат `start` або `tabs` не означає, що пізніша ціль `open` або `navigate` буде дозволена.
+- Конфігурація браузера типово використовує об’єкт політики SSRF fail-closed, навіть якщо ви не налаштовуєте `browser.ssrfPolicy`.
+- Для локального керованого профілю loopback `openclaw` перевірки справності CDP навмисно пропускають застосування перевірок доступності SSRF браузера для власної локальної площини керування OpenClaw.
+- Захист навігації є окремим. Успішний результат `start` або `tabs` не означає, що пізніша ціль `open` або `navigate` дозволена.
Вказівки з безпеки:
-- **Не** послаблюйте політику SSRF браузера за замовчуванням.
-- Віддавайте перевагу вузьким виняткам для host, таким як `hostnameAllowlist` або `allowedHostnames`, замість широкого доступу до приватної мережі.
+- **Не** послаблюйте політику SSRF браузера типово.
+- Віддавайте перевагу вузьким виняткам для хостів, таким як `hostnameAllowlist` або `allowedHostnames`, замість широкого доступу до приватної мережі.
- Використовуйте `dangerouslyAllowPrivateNetwork: true` лише в навмисно довірених середовищах, де доступ браузера до приватної мережі потрібен і перевірений.
-## Tools агента + як працює керування
+## Інструменти агента + як працює керування
-Агент отримує **один tool** для автоматизації браузера:
+Агент отримує **один інструмент** для автоматизації браузера:
- `browser` — doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
-Як це зіставляється:
+Як це відображається:
- `browser snapshot` повертає стабільне дерево UI (AI або ARIA).
-- `browser act` використовує ідентифікатори `ref` зі snapshot для click/type/drag/select.
-- `browser screenshot` захоплює пікселі (повна сторінка, елемент або refs із мітками).
-- `browser doctor` перевіряє готовність Gateway, Plugin, профілю, браузера та вкладки.
+- `browser act` використовує ID `ref` зі snapshot для click/type/drag/select.
+- `browser screenshot` захоплює пікселі (повна сторінка, елемент або позначені refs).
+- `browser doctor` перевіряє готовність Gateway, Plugin, профілю, браузера і вкладки.
- `browser` приймає:
- `profile` для вибору іменованого профілю браузера (openclaw, chrome або remote CDP).
- `target` (`sandbox` | `host` | `node`) для вибору місця, де розташований браузер.
- - У sandboxed sessions `target: "host"` потребує `agents.defaults.sandbox.browser.allowHostControl=true`.
- - Якщо `target` не вказано: sandboxed sessions за замовчуванням використовують `sandbox`, а не-sandbox sessions — `host`.
- - Якщо підключено Node із підтримкою браузера, tool може автоматично маршрутизуватися до нього, якщо ви не зафіксуєте `target="host"` або `target="node"`.
+ - У sandboxed-сесіях `target: "host"` вимагає `agents.defaults.sandbox.browser.allowHostControl=true`.
+ - Якщо `target` не вказано: sandboxed-сесії типово використовують `sandbox`, несandbox-сесії — `host`.
+ - Якщо підключено Node із підтримкою браузера, інструмент може автоматично маршрутизуватися до нього, якщо ви явно не зафіксуєте `target="host"` або `target="node"`.
-Це зберігає детермінованість агента й дає змогу уникати крихких селекторів.
+Це зберігає детермінованість агента та допомагає уникати крихких селекторів.
## Пов’язане
-- [Огляд Tools](/uk/tools) — усі доступні tools агента
-- [Sandboxing](/uk/gateway/sandboxing) — керування браузером у sandboxed environments
+- [Огляд інструментів](/uk/tools) — усі доступні інструменти агента
+- [Пісочниця](/uk/gateway/sandboxing) — керування браузером у sandboxed-середовищах
- [Безпека](/uk/gateway/security) — ризики керування браузером і посилення захисту