Gateway — це WebSocket-сервер OpenClaw (канали, вузли, сесії, hooks). Підкоманди на цій сторінці розміщені підDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw gateway ….
Bonjour discovery
Налаштування локального mDNS + широкозонного DNS-SD.
Discovery overview
Як OpenClaw оголошує та знаходить gateways.
Configuration
Ключі конфігурації gateway верхнього рівня.
Запуск Gateway
Запустіть локальний процес Gateway:Startup behavior
Startup behavior
- За замовчуванням Gateway відмовляється запускатися, якщо в
~/.openclaw/openclaw.jsonне заданоgateway.mode=local. Використовуйте--allow-unconfiguredдля ad-hoc/dev запусків. - Очікується, що
openclaw onboard --mode localіopenclaw setupзаписуютьgateway.mode=local. Якщо файл існує, алеgateway.modeвідсутній, вважайте це зламаною або перезаписаною конфігурацією та відновіть її, замість неявно припускати локальний режим. - Якщо файл існує, а
gateway.modeвідсутній, Gateway трактує це як підозріле пошкодження конфігурації та відмовляється “вгадувати local” за вас. - Прив’язування поза межами loopback без автентифікації заблоковано (захисне обмеження).
SIGUSR1запускає перезапуск у процесі, коли це дозволено (commands.restartувімкнено за замовчуванням; задайтеcommands.restart: false, щоб заблокувати ручний перезапуск, при цьому застосування/оновлення gateway tool/config залишаються дозволеними).- Обробники
SIGINT/SIGTERMзупиняють процес gateway, але не відновлюють жоден користувацький стан термінала. Якщо ви обгортаєте CLI за допомогою TUI або введення в raw-mode, відновіть термінал перед виходом.
Параметри
Порт WebSocket (значення за замовчуванням береться з конфігурації/env; зазвичай
18789).Режим прив’язування слухача.
Перевизначення режиму автентифікації.
Перевизначення токена (також задає
OPENCLAW_GATEWAY_TOKEN для процесу).Перевизначення пароля.
Читати пароль gateway з файлу.
Відкрити доступ до Gateway через Tailscale.
Скинути конфігурацію Tailscale serve/funnel під час завершення роботи.
Дозволити запуск gateway без
gateway.mode=local у конфігурації. Обходить захист запуску лише для ad-hoc/dev початкового налаштування; не записує й не відновлює файл конфігурації.Створити dev-конфігурацію + робочий простір, якщо їх немає (пропускає BOOTSTRAP.md).
Скинути dev-конфігурацію + облікові дані + сесії + робочий простір (потребує
--dev).Завершити будь-який наявний слухач на вибраному порту перед запуском.
Детальні журнали.
Показувати в консолі лише журнали бекенду CLI (і ввімкнути stdout/stderr).
Стиль журналювання Websocket.
Псевдонім для
--ws-log compact.Записувати raw model stream події до jsonl.
Шлях до raw stream jsonl.
Перезапуск Gateway
openclaw gateway restart --safe просить запущений Gateway виконати попередню перевірку активної роботи OpenClaw перед перезапуском. Якщо активні операції в черзі, доставка відповідей, вбудовані запуски або task runs, Gateway повідомляє про блокувальники, об’єднує дублікати запитів безпечного перезапуску й перезапускається після завершення активної роботи. Звичайний restart зберігає наявну поведінку service-manager для сумісності. Використовуйте --force лише тоді, коли явно потрібен шлях негайного перевизначення.
openclaw gateway restart --safe --skip-deferral виконує той самий скоординований перезапуск з урахуванням OpenClaw, що й --safe, але обходить gate відкладення активної роботи, тому Gateway надсилає перезапуск негайно, навіть коли повідомлено про блокувальники. Використовуйте це як аварійний вихід оператора, коли відкладення зафіксоване завислим task run і сам --safe чекав би нескінченно. --skip-deferral потребує --safe.
Профілювання запуску
- Задайте
OPENCLAW_GATEWAY_STARTUP_TRACE=1, щоб журналювати таймінги фаз під час запуску Gateway, включно із затримкоюeventLoopMaxдля кожної фази та таймінгами lookup-table Plugin для installed-index, manifest registry, startup planning і owner-map. - Задайте
OPENCLAW_DIAGNOSTICS=timelineзOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>, щоб записати best-effort JSONL timeline діагностики запуску для зовнішніх QA harnesses. Також можна ввімкнути прапорець черезdiagnostics.flags: ["timeline"]у конфігурації; шлях усе одно надається через env. ДодайтеOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1, щоб включити вибірки event-loop. - Запустіть
pnpm test:startup:gateway -- --runs 5 --warmup 1, щоб виміряти продуктивність запуску Gateway. Benchmark записує перший вивід процесу,/healthz,/readyz, таймінги startup trace, затримку event-loop і подробиці таймінгів lookup-table Plugin.
Запит до запущеного Gateway
Усі команди запитів використовують WebSocket RPC.- Output modes
- За замовчуванням: зручно для читання людиною (кольорово в TTY).
--json: машиночитний JSON (без стилізації/spinner).--no-color(абоNO_COLOR=1): вимкнути ANSI, зберігши людський layout.
Коли ви задаєте
--url, CLI не повертається до облікових даних із конфігурації чи середовища. Передайте --token або --password явно. Відсутність явних облікових даних є помилкою.gateway health
/healthz — це liveness probe: він повертає відповідь, щойно сервер може відповідати через HTTP. HTTP endpoint /readyz суворіший і залишається червоним, доки startup plugin sidecars, канали або налаштовані hooks ще стабілізуються. Локальні або автентифіковані докладні відповіді readiness містять діагностичний блок eventLoop із затримкою event-loop, використанням event-loop, співвідношенням ядер CPU та прапорцем degraded.
gateway usage-cost
Отримати зведення usage-cost із журналів сесій.
Кількість днів для включення.
gateway stability
Отримати recent diagnostic stability recorder із запущеного Gateway.
Максимальна кількість нещодавніх подій для включення (макс.
1000).Фільтрувати за типом діагностичної події, наприклад
payload.large або diagnostic.memory.pressure.Включати лише події після номера діагностичної послідовності.
Читати збережений stability bundle замість виклику запущеного Gateway. Використовуйте
--bundle latest (або просто --bundle) для найновішого bundle у каталозі стану, або передайте шлях до bundle JSON напряму.Записати придатний для поширення zip із support diagnostics замість друку деталей stability.
Шлях виводу для
--export.Privacy and bundle behavior
Privacy and bundle behavior
- Записи зберігають операційні метадані: назви подій, лічильники, розміри в байтах, показники пам’яті, стан черг/сесій, назви каналів/Plugin і відредаговані зведення сесій. Вони не зберігають текст чатів, тіла webhook, виводи tool, raw тіла запитів або відповідей, токени, cookies, секретні значення, hostnames або raw session ids. Задайте
diagnostics.enabled: false, щоб повністю вимкнути recorder. - Під час fatal Gateway exits, shutdown timeouts і restart startup failures OpenClaw записує той самий diagnostic snapshot до
~/.openclaw/logs/stability/openclaw-stability-*.json, коли recorder має події. Перегляньте найновіший bundle черезopenclaw gateway stability --bundle latest;--limit,--typeі--since-seqтакож застосовуються до виводу bundle.
gateway diagnostics export
Записує локальний diagnostics zip, призначений для прикріплення до bug reports. Модель приватності та вміст bundle див. у Diagnostics Export.
Шлях до zip виводу. За замовчуванням — support export у каталозі стану.
Максимальна кількість очищених рядків журналу для включення.
Максимальна кількість байтів журналу для перевірки.
WebSocket URL Gateway для health snapshot.
Токен Gateway для health snapshot.
Пароль Gateway для health snapshot.
Тайм-аут status/health snapshot.
Пропустити пошук збереженого stability bundle.
Надрукувати записаний шлях, розмір і manifest як JSON.
gateway status
gateway status показує службу Gateway (launchd/systemd/schtasks) плюс необов’язкову перевірку connectivity/auth capability.
Додати явну ціль зондування. Налаштовані віддалений + localhost усе одно зондуються.
Автентифікація токеном для зондування.
Автентифікація паролем для зондування.
Тайм-аут зондування.
Пропустити зондування з’єднання (перегляд лише сервісу).
Також сканувати сервіси системного рівня.
Підвищити стандартне зондування з’єднання до зондування читання й завершитися з ненульовим кодом, якщо це зондування читання не вдається. Не можна поєднувати з
--no-probe.Status semantics
Status semantics
gateway statusзалишається доступною для діагностики, навіть коли локальна конфігурація CLI відсутня або недійсна.- Типова
gateway statusпідтверджує стан сервісу, підключення WebSocket і можливість автентифікації, видиму під час рукостискання. Вона не підтверджує операції читання/запису/адміністрування. - Діагностичні зондування не змінюють стан для першої автентифікації пристрою: вони повторно використовують наявний кешований токен пристрою, якщо він існує, але не створюють нову ідентичність пристрою CLI або запис сполучення пристрою лише для читання лише для перевірки стану.
gateway statusза можливості розв’язує налаштовані SecretRefs автентифікації для автентифікації зондування.- Якщо потрібний SecretRef автентифікації не розв’язано в цьому шляху команди,
gateway status --jsonповідомляєrpc.authWarning, коли з’єднання/автентифікація зондування не вдається; явно передайте--token/--passwordабо спочатку розв’яжіть джерело секрету. - Якщо зондування успішне, попередження про нерозв’язані посилання автентифікації пригнічуються, щоб уникнути хибних спрацювань.
- Використовуйте
--require-rpcу скриптах і автоматизації, коли сервісу, що прослуховує, недостатньо і також потрібна справність RPC-викликів з областю читання. --deepдодає найкраще можливе сканування додаткових інсталяцій launchd/systemd/schtasks. Коли виявлено кілька сервісів, схожих на Gateway, вивід для людини друкує підказки з очищення та попереджає, що більшості налаштувань слід запускати один Gateway на машину.--deepтакож повідомляє про нещодавню передачу перезапуску супервізора Gateway, коли процес сервісу коректно завершився для перезапуску зовнішнім супервізором.--deepвиконує перевірку конфігурації в режимі з урахуванням plugin (pluginValidation: "full") і показує попередження налаштованого маніфесту plugin (наприклад, відсутні метадані конфігурації каналу), щоб smoke-перевірки інсталяції та оновлення їх виявляли. Типоваgateway statusзберігає швидкий шлях лише для читання, який пропускає перевірку plugin.- Вивід для людини містить розв’язаний шлях до файлового журналу, а також знімок шляхів/дійсності конфігурації CLI порівняно із сервісом, щоб допомогти діагностувати дрейф профілю або каталогу стану.
Linux systemd auth-drift checks
Linux systemd auth-drift checks
- В інсталяціях Linux systemd перевірки дрейфу автентифікації сервісу читають значення
Environment=іEnvironmentFile=з unit (зокрема%h, шляхи в лапках, кілька файлів і необов’язкові файли з-). - Перевірки дрейфу розв’язують SecretRefs
gateway.auth.tokenза допомогою об’єднаного runtime-середовища (спочатку середовище команди сервісу, потім резервно середовище процесу). - Якщо автентифікація токеном фактично не активна (явний
gateway.auth.modeзі значеннямpassword/none/trusted-proxy, або режим не задано, пароль може мати перевагу й жоден кандидат токена не може мати переваги), перевірки дрейфу токена пропускають розв’язання токена конфігурації.
gateway probe
gateway probe — це команда «налагодити все». Вона завжди зондує:
- ваш налаштований віддалений gateway (якщо задано), і
- localhost (loopback) навіть якщо віддалений gateway налаштовано.
--url, ця явна ціль додається перед обома. Вивід для людини позначає цілі так:
URL (explicit)Remote (configured)абоRemote (configured, inactive)Local loopback
Якщо доступні кілька gateway, вона друкує їх усі. Кілька gateway підтримуються, коли ви використовуєте ізольовані профілі/порти (наприклад, рятувальний бот), але більшість інсталяцій усе одно запускає один gateway.
Interpretation
Interpretation
Reachable: yesозначає, що принаймні одна ціль прийняла підключення WebSocket.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyповідомляє, що зондування змогло підтвердити щодо автентифікації. Це окремо від доступності.Read probe: okозначає, що детальні RPC-виклики з областю читання (health/status/system-presence/config.get) також успішні.Read probe: limited - missing scope: operator.readозначає, що підключення успішне, але RPC з областю читання обмежене. Це повідомляється як погіршена доступність, а не повний збій.Read probe: failedпісляConnect: okозначає, що Gateway прийняв підключення WebSocket, але подальша діагностика читання перевищила тайм-аут або не вдалася. Це також погіршена доступність, а не недоступний Gateway.- Як і
gateway status, зондування повторно використовує наявну кешовану автентифікацію пристрою, але не створює першої ідентичності пристрою або стану сполучення. - Код виходу ненульовий лише тоді, коли жодна зондувана ціль недоступна.
JSON output
JSON output
Верхній рівень:
ok: принаймні одна ціль доступна.degraded: принаймні одна ціль прийняла підключення, але не завершила повну детальну RPC-діагностику.capability: найкраща можливість, побачена серед доступних цілей (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeабоunknown).primaryTargetId: найкраща ціль, яку слід вважати активним переможцем у такому порядку: явний URL, SSH-тунель, налаштований віддалений, потім local loopback.warnings[]: записи попереджень у режимі найкращого зусилля зcode,messageі необов’язковимиtargetIds.network: підказки URL local loopback/tailnet, виведені з поточної конфігурації та мережі хоста.discovery.timeoutMsіdiscovery.count: фактичний бюджет виявлення/кількість результатів, використані для цього проходу зондування.
targets[].connect):ok: доступність після підключення + класифікація погіршення.rpcOk: повний успіх детального RPC.scopeLimited: детальний RPC не вдався через відсутню область оператора.
targets[].auth):role: роль автентифікації, повідомлена вhello-ok, коли доступна.scopes: надані області, повідомлені вhello-ok, коли доступні.capability: показана класифікація можливості автентифікації для цієї цілі.
Common warning codes
Common warning codes
ssh_tunnel_failed: налаштування SSH-тунелю не вдалося; команда повернулася до прямих зондувань.multiple_gateways: доступною була більш ніж одна ціль; це незвично, якщо ви навмисно не запускаєте ізольовані профілі, наприклад рятувального бота.auth_secretref_unresolved: налаштований SecretRef автентифікації не вдалося розв’язати для невдалої цілі.probe_scope_limited: підключення WebSocket успішне, але зондування читання було обмежене через відсутнійoperator.read.
Віддалено через SSH (паритет із Mac-застосунком)
Режим macOS-застосунку “Remote over SSH” використовує локальне перенаправлення порту, щоб віддалений gateway (який може бути прив’язаний лише до loopback) став доступним за адресоюws://127.0.0.1:<port>.
Еквівалент CLI:
user@host або user@host:port (типовий порт — 22).Файл ідентичності.
Вибрати перший виявлений хост gateway як SSH-ціль із розв’язаного endpoint виявлення (
local. плюс налаштований домен глобальної мережі, якщо є). Підказки лише TXT ігноруються.gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Низькорівневий помічник RPC.
Рядок JSON-об’єкта для параметрів.
URL WebSocket Gateway.
Токен Gateway.
Пароль Gateway.
Бюджет тайм-ауту.
Переважно для RPC у стилі агентів, які транслюють проміжні події перед фінальним payload.
Машинозчитуваний JSON-вивід.
--params має бути дійсним JSON.Керування сервісом Gateway
Інсталяція з обгорткою
Використовуйте--wrapper, коли керований сервіс має запускатися через інший виконуваний файл, наприклад shim менеджера секретів або помічник запуску від імені іншого користувача. Обгортка отримує звичайні аргументи Gateway і відповідає за те, щоб зрештою виконати openclaw або Node з цими аргументами.
gateway install перевіряє, що шлях є виконуваним файлом, записує обгортку в ProgramArguments сервісу та зберігає OPENCLAW_WRAPPER у середовищі сервісу для подальших примусових перевстановлень, оновлень і виправлень doctor.
OPENCLAW_WRAPPER під час перевстановлення:
Command options
Command options
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
Поведінка життєвого циклу
Поведінка життєвого циклу
- Використовуйте
gateway restart, щоб перезапустити керований сервіс. Не поєднуйтеgateway stopіgateway startяк заміну перезапуску. - У macOS
gateway stopза замовчуванням використовуєlaunchctl bootout, що видаляє LaunchAgent з поточного сеансу завантаження без постійного вимкнення — автоматичне відновлення KeepAlive залишається активним для майбутніх збоїв, аgateway startповторно вмикається чисто без ручногоlaunchctl enable. Передайте--disable, щоб постійно приглушити KeepAlive і RunAtLoad, аби Gateway не запускався повторно до наступного явногоgateway start; використовуйте це, коли ручна зупинка має пережити перезавантаження або перезапуски системи. gateway restart --safeпросить запущений Gateway попередньо перевірити активну роботу OpenClaw і відкласти перезапуск, доки доставлення відповідей, вбудовані запуски та запуски завдань не завершаться.--safeне можна поєднувати з--forceабо--wait.gateway restart --wait 30sперевизначає налаштований бюджет очікування завершення перед перезапуском для цього перезапуску. Числа без одиниць вимірюються в мілісекундах; приймаються одиниці на кшталтs,mіh.--wait 0чекає необмежено.gateway restart --safe --skip-deferralвиконує безпечний перезапуск з урахуванням OpenClaw, але обходить шлюз відкладання, тому Gateway негайно видає перезапуск, навіть коли повідомлено про блокувальники. Це аварійний вихід для оператора у випадку завислих відкладань запусків завдань; потребує--safe.gateway restart --forceпропускає очікування завершення активної роботи та перезапускає негайно. Використовуйте це, коли оператор уже перевірив перелічені блокувальники завдань і хоче негайно повернути gateway до роботи.- Команди життєвого циклу приймають
--jsonдля скриптів.
Автентифікація та SecretRefs під час установлення
Автентифікація та SecretRefs під час установлення
- Коли автентифікація за токеном потребує токена, а
gateway.auth.tokenкерується через SecretRef,gateway installперевіряє, що SecretRef можна розв’язати, але не зберігає розв’язаний токен у метаданих середовища сервісу. - Якщо автентифікація за токеном потребує токена, а налаштований SecretRef токена не розв’язується, установлення завершується закритою відмовою замість збереження резервного відкритого тексту.
- Для автентифікації паролем у
gateway runнадавайте перевагуOPENCLAW_GATEWAY_PASSWORD,--password-fileабоgateway.auth.passwordна основі SecretRef замість вбудованого--password. - У виведеному режимі автентифікації лише оболонковий
OPENCLAW_GATEWAY_PASSWORDне послаблює вимоги до токена під час установлення; використовуйте тривалу конфігурацію (gateway.auth.passwordабо конфігураційнийenv) під час установлення керованого сервісу. - Якщо налаштовано і
gateway.auth.token, іgateway.auth.password, аgateway.auth.modeне задано, установлення блокується, доки режим не буде задано явно.
Виявлення gateway (Bonjour)
gateway discover сканує маяки Gateway (_openclaw-gw._tcp).
- Багатоадресний DNS-SD:
local. - Одноадресний DNS-SD (Wide-Area Bonjour): виберіть домен (приклад:
openclaw.internal.) і налаштуйте split DNS + DNS-сервер; див. Bonjour.
role(підказка ролі gateway)transport(підказка транспорту, напр.gateway)gatewayPort(порт WebSocket, зазвичай18789)sshPort(лише режим повного виявлення; клієнти за замовчуванням використовують цілі SSH22, коли він відсутній)tailnetDns(ім’я хоста MagicDNS, коли доступне)gatewayTls/gatewayTlsSha256(TLS увімкнено + відбиток сертифіката)cliPath(лише режим повного виявлення)
gateway discover
Тайм-аут для команди (огляд/розв’язання).
Машиночитаний вивід (також вимикає стилізацію/індикатор виконання).
- CLI сканує
local.плюс налаштований широкозонний домен, коли його ввімкнено. wsUrlу JSON-виводі виводиться з розв’язаного кінцевого пункту сервісу, а не лише з TXT-підказок, як-отlanHostабоtailnetDns.- У
local.mDNS і широкозонному DNS-SDsshPortтаcliPathпублікуються лише колиdiscovery.mdns.modeмає значенняfull.