CLI commands
Gateway
Gateway — це WebSocket-сервер OpenClaw (канали, вузли, сеанси, хуки). Усі наведені нижче підкоманди доступні в openclaw gateway ....
Налаштування локального mDNS і глобального DNS-SD.
Як OpenClaw оголошує та знаходить шлюзи.
Ключі конфігурації Gateway верхнього рівня.
Запуск Gateway
openclaw gatewayopenclaw gateway run # рівнозначна явна формаПоведінка під час запуску
- Відмовляється запускатися, якщо в
~/.openclaw/openclaw.jsonне встановленоgateway.mode=local. Використовуйте--allow-unconfiguredдля спеціальних запусків або запусків у середовищі розробки; цей прапорець обходить перевірку без запису чи виправлення конфігурації. openclaw onboard --mode localіopenclaw setupзаписуютьgateway.mode=local. Якщо файл конфігурації існує, алеgateway.modeвідсутній, це вважається пошкодженою або перезаписаною конфігурацією, і Gateway не намагатиметься самостійно вгадати значенняlocal— повторно виконайте початкове налаштування, установіть ключ вручну або передайте--allow-unconfigured.- Прив’язування за межами loopback без автентифікації блокується.
- Значення
lan,tailnetіcustomдля--bindнаразі обробляються лише через шляхи IPv4; для конфігурацій із власним хостом лише з IPv6 потрібен допоміжний компонент IPv4 або проксі перед Gateway. SIGUSR1запускає перезапуск усередині процесу, якщо це дозволено.commands.restart(типово: увімкнено) контролює надіслані ззовні сигналиSIGUSR1; установіть значенняfalse, щоб заблокувати ручні перезапуски через сигнал ОС, водночас залишивши можливість перезапуску за допомогою командиgateway restart, інструмента Gateway і застосування або оновлення конфігурації.SIGINT/SIGTERMзупиняють процес, але не відновлюють спеціальний стан термінала — якщо ви обгортаєте CLI у TUI або використовуєте введення в необробленому режимі, самостійно відновіть термінал перед виходом.
Параметри
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Порт WebSocket (типово береться з конфігурації або змінної середовища; зазвичай 18789).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYmluZCA8bW9kZQ
" type="string">
Режим прив’язування: loopback (типово), lan, tailnet, auto, custom.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
Спільний токен для connect.params.auth.token. Типово використовується OPENCLAW_GATEWAY_TOKEN, якщо її встановлено.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYXV0aCA8bW9kZQ
" type="string">
Режим автентифікації: none, token, password, trusted-proxy.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcGFzc3dvcmQgPHBhc3N3b3Jk
" type="string">
Пароль для --auth password.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdGFpbHNjYWxlIDxtb2Rl
" type="string">
Режим доступу через Tailscale: off, serve, funnel.
--tailscale-reset-on-exitbooleanСкинути конфігурацію Tailscale serve/funnel під час завершення роботи.
--allow-unconfiguredbooleanЗапустити без обов’язкової перевірки gateway.mode=local. Лише для спеціальної ініціалізації або ініціалізації середовища розробки; не зберігає та не виправляє конфігурацію.
--devbooleanСтворити конфігурацію та робочий простір для розробки, якщо вони відсутні (пропускає BOOTSTRAP.md).
--resetbooleanСкинути конфігурацію для розробки, облікові дані, сеанси та робочий простір. Потребує --dev.
--forcebooleanПеред запуском завершити роботу всіх наявних слухачів на цільовому порту.
--verbosebooleanДокладне журналювання у stdout/stderr.
--cli-backend-logsbooleanПоказувати в консолі лише журнали серверної частини CLI (також вмикає stdout/stderr).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0td3MtbG9nIDxzdHlsZQ
" type="string" default="auto">
Стиль журналу WebSocket: auto, full, compact.
--compactbooleanПсевдонім для --ws-log compact.
--raw-streambooleanЗаписувати необроблені події потоку моделі у форматі JSONL.
--claude-cli-logs — застарілий псевдонім для --cli-backend-logs.
Для --bind custom установіть gateway.customBindHost на адресу IPv4. Для будь-якої адреси, крім 127.0.0.1 або 0.0.0.0, також потрібна адреса 127.0.0.1 на тому самому порту для клієнтів на тому самому хості; запуск завершиться помилкою, якщо хоча б один зі слухачів не зможе виконати прив’язування. Універсальна адреса 0.0.0.0 не додає окремого обов’язкового псевдоніма. Для конфігурацій із власним хостом лише з IPv6 потрібен допоміжний компонент IPv4 або проксі перед Gateway.
Перезапуск Gateway
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --forceopenclaw gateway restart --wait 30s--safe просить запущений Gateway попередньо перевірити активну роботу та запланувати один об’єднаний перезапуск після її завершення. Очікування обмежене параметром gateway.reload.deferralTimeoutMs (типово: 5 хвилин / 300000); коли відведений час спливає, перезапуск виконується примусово. Установіть deferralTimeoutMs: 0, щоб чекати необмежено довго (з періодичними попередженнями про незавершене очікування) замість примусового перезапуску. --safe не можна поєднувати з --force або --wait.
--skip-deferral обходить перевірку відкладення через активну роботу під час безпечного перезапуску, тому Gateway перезапускається негайно навіть за наявності повідомлених блокувальних чинників. Потребує --safe — використовуйте, коли відкладення зависло через некероване завдання.
--wait <duration> перевизначає час очікування завершення роботи для звичайного (небезпечного) перезапуску. Приймає значення в мілісекундах без суфікса або із суфіксами одиниць ms, s, m, h, d (наприклад, 30s, 5m, 1h30m); --wait 0 очікує необмежено довго. Несумісний із --force або --safe.
--force пропускає очікування завершення активної роботи та виконує перезапуск негайно. Звичайна команда restart (без прапорців) зберігає наявну поведінку перезапуску через диспетчер служб.
Профілювання Gateway
OPENCLAW_GATEWAY_STARTUP_TRACE=1записує тривалість фаз під час запуску, зокрема затримкуeventLoopMaxдля кожної фази та час формування таблиць пошуку плагінів (індекс установлених плагінів, реєстр маніфестів, планування запуску, робота з картою власників).OPENCLAW_GATEWAY_RESTART_TRACE=1записує рядкиrestart trace:, пов’язані з перезапуском: обробку сигналів, очікування завершення активної роботи, фази завершення роботи, наступний запуск, час до готовності та показники пам’яті.OPENCLAW_DIAGNOSTICS=timelineразом ізOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>записує в режимі найкращих зусиль часову шкалу діагностики запуску у форматі JSONL для зовнішніх засобів автоматизації контролю якості (рівнозначно конфігураціїdiagnostics.flags: ["timeline"]; шлях усе ще задається лише через змінну середовища). ДодайтеOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1, щоб включити зразки циклу подій.pnpm build, а потімpnpm test:startup:gateway -- --runs 5 --warmup 1вимірюють продуктивність запуску Gateway через зібрану точку входу CLI: перший вивід процесу,/healthz,/readyz, часові показники трасування запуску, затримку циклу подій і час формування таблиць пошуку плагінів.pnpm build, а потімpnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5вимірюють продуктивність перезапуску всередині процесу в macOS або Linux (не підтримується у Windows; для перезапуску потрібенSIGUSR1). Команда використовуєSIGUSR1, вмикає обидва види трасування в дочірньому процесі та записує наступні/healthzі/readyz, час простою, час до готовності, використання CPU, RSS і показники трасування перезапуску./healthzперевіряє життєздатність;/readyz— готовність до використання. Розглядайте рядки трасування та результати вимірювань як сигнал для визначення відповідального компонента, а не як остаточний висновок про продуктивність на основі одного проміжку чи зразка.
Запити до запущеного Gateway
Усі команди запитів використовують RPC через WebSocket.
Режими виведення
- Типово: зручний для читання людиною формат (кольоровий у TTY).
--json: придатний для машинної обробки JSON (без стилізації та індикатора виконання).--no-color(абоNO_COLOR=1): вимкнути ANSI, зберігши форматування для читання людиною.
Спільні параметри
--url <url>: URL WebSocket для Gateway.--token <token>: токен Gateway.--password <password>: пароль Gateway.--timeout <ms>: час очікування або бюджет (типове значення залежить від команди; дивіться опис кожної команди нижче).--expect-final: очікувати на «остаточну» відповідь (виклики агента).
gateway health
openclaw gateway health --url ws://127.0.0.1:18789openclaw gateway health --port 18789/healthz — це перевірка життєздатності: вона повертає відповідь, щойно сервер може відповідати через HTTP. /readyz суворіша й залишається в стані помилки, доки допоміжні компоненти плагінів запуску, канали або налаштовані хуки ще ініціалізуються. Докладні локальні або автентифіковані відповіді /readyz містять блок діагностики eventLoop (затримка, завантаження, співвідношення до кількості ядер CPU, прапорець degraded).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Звернутися до локального Gateway через local loopback на цьому порту. Перевизначає OPENCLAW_GATEWAY_URL і OPENCLAW_GATEWAY_PORT для цього виклику.
gateway usage-cost
Отримати зведення витрат використання з журналів сеансів.
openclaw gateway usage-costopenclaw gateway usage-cost --days 7openclaw gateway usage-cost --agent work --jsonopenclaw gateway usage-cost --all-agentsopenclaw gateway usage-cost --json"--days"--agent--all-agentsbooleanАгрегувати дані всіх налаштованих агентів. Не можна поєднувати з --agent.
gateway stability
Отримати останні дані реєстратора діагностичної стабільності із запущеного Gateway.
openclaw gateway stabilityopenclaw gateway stability --type payload.largeopenclaw gateway stability --bundle latestopenclaw gateway stability --bundle latest --exportopenclaw gateway stability --jsonOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0
" type="number" default="25">
Максимальна кількість останніх подій для включення (не більше 1000).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
Фільтрувати за типом діагностичної події, наприклад payload.large або diagnostic.memory.pressure.
"--since-seq--bundle [path]stringПрочитати збережений пакет даних стабільності замість звернення до запущеного Gateway. --bundle latest (або просто --bundle) вибирає найновіший пакет у каталозі стану; також можна безпосередньо передати шлях до JSON-файлу пакета.
--exportbooleanЗаписати придатний для передавання ZIP-архів діагностики підтримки замість виведення відомостей про стабільність.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
Шлях виведення для --export.
Конфіденційність і поведінка пакетів
- Записи зберігають операційні метадані: назви подій, кількість, розміри в байтах, показники пам’яті, стан черги та сеансу, ідентифікатори схвалень, назви каналів і плагінів, а також знеособлені зведення сеансів. Вони не містять текст чатів, тіл Webhook, виводу інструментів, необроблених тіл запитів і відповідей, токенів, файлів cookie, секретних значень, імен хостів і необроблених ідентифікаторів сеансів. Установіть
diagnostics.enabled: false, щоб повністю вимкнути реєстратор. - Фатальні завершення Gateway, перевищення часу очікування під час завершення роботи та збої запуску після перезапуску записують той самий діагностичний знімок у
~/.openclaw/logs/stability/openclaw-stability-*.json, якщо реєстратор містить події. Перегляньте найновіший пакет за допомогоюopenclaw gateway stability --bundle latest;--limit,--typeі--since-seqтакож застосовуються до виведення пакета.
gateway diagnostics export
Записати локальний ZIP-архів діагностики, призначений для звітів про помилки. Опис моделі конфіденційності та вмісту пакета дивіться в розділі Експорт діагностики.
openclaw gateway diagnostics exportopenclaw gateway diagnostics export --output openclaw-diagnostics.zipopenclaw gateway diagnostics export --json"--log-lines"--log-bytes"--url"--token"--password"--timeout--no-stability-bundlebooleanПропустити пошук збереженого пакета стабільності.
--jsonbooleanВивести записані шлях, розмір і маніфест у форматі JSON.
Експорт містить: manifest.json (перелік файлів), summary.md (підсумок у форматі Markdown), diagnostics.json (зведення верхнього рівня щодо конфігурації, журналів, виявлення, стабільності, статусу та стану працездатності), config/sanitized.json, status/gateway-status.json, health/gateway-health.json, logs/openclaw-sanitized.jsonl і stability/latest.json, якщо пакет існує.
Експорт призначений для передавання іншим. Він зберігає операційні відомості, корисні для налагодження, — безпечні поля журналів, назви підсистем, коди статусу, тривалості, налаштовані режими, порти, ідентифікатори плагінів і провайдерів, несекретні параметри функцій та операційні повідомлення журналу з вилученими конфіденційними даними — і вилучає або редагує текст чатів, тіла вебхуків, результати інструментів, облікові дані, файли cookie, ідентифікатори облікових записів і повідомлень, текст запитів та інструкцій, імена хостів і секретні значення. Коли повідомлення журналу схоже на текст корисного навантаження користувача, чату чи інструмента (наприклад, «користувач сказав», «текст чату», «результат інструмента», «тіло вебхука»), експорт зберігає лише факт вилучення повідомлення та кількість його байтів.
gateway status
Показує службу Gateway (launchd/systemd/schtasks), а також необов’язкову перевірку підключення та автентифікації.
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc"--url"--token"--password"--timeout--no-probebooleanПропустити перевірку підключення (показати лише службу).
--deepbooleanТакож сканувати служби системного рівня.
--require-rpcbooleanРозширити перевірку підключення до перевірки читання та завершити роботу з ненульовим кодом у разі невдачі. Не можна поєднувати з --no-probe.
Семантика статусу
- Залишається доступною для діагностики, навіть коли локальна конфігурація CLI відсутня або недійсна.
- Типовий вивід підтверджує стан служби, підключення WebSocket і можливість автентифікації, видиму під час рукостискання, — але не операції читання, запису чи адміністрування.
- Перевірки не вносять змін під час первинної автентифікації пристрою: вони повторно використовують наявний кешований токен пристрою, але ніколи не створюють нову ідентичність пристрою CLI або запис сполучення лише для читання тільки заради перевірки статусу.
- За можливості розв’язує налаштовані посилання SecretRef автентифікації для перевірки. Якщо потрібне посилання SecretRef не вдалося розв’язати,
--jsonповідомляєrpc.authWarning, коли перевірка підключення чи автентифікації завершується невдало; явно передайте--token/--passwordабо виправте джерело секрету. Попередження про нерозв’язану автентифікацію приховуються після успішної перевірки. - Вивід JSON містить
gateway.version, коли запущений Gateway повідомляє її;--require-rpcможе використати як резервне джерело корисне навантаження RPCstatus.runtimeVersion, якщо перевірка рукостискання не може надати метадані версії. - Використовуйте
--require-rpcу сценаріях і автоматизації, коли служби, що прослуховує порт, недостатньо й також потрібна працездатність RPC з областю читання. --deepшукає додаткові інсталяції launchd/systemd/schtasks; якщо знайдено кілька служб, схожих на Gateway, текстовий вивід показує підказки щодо очищення (зазвичай слід запускати один Gateway на машину) і, коли це доречно, повідомляє про нещодавню передачу керування під час перезапуску супервізора.--deepтакож виконує перевірку конфігурації в режимі з урахуванням плагінів (pluginValidation: "full") і показує попередження маніфестів плагінів (наприклад, про відсутні метадані конфігурації каналу). Типова командаgateway statusзберігає швидкий шлях лише для читання, що пропускає перевірку плагінів.- Текстовий вивід містить визначений шлях до файлу журналу, а також шляхи й стан дійсності конфігурацій CLI та служби, щоб полегшити діагностику розбіжностей профілю або каталогу стану.
Перевірки розбіжностей автентифікації Linux systemd
- Перевірки розбіжностей автентифікації служби читають із юніта як
Environment=, так іEnvironmentFile=(зокрема%h, шляхи в лапках, кілька файлів і необов’язкові файли з префіксом-). - Розв’язує посилання SecretRef
gateway.auth.token, використовуючи об’єднане середовище виконання (спочатку середовище команди служби, потім резервно — середовище процесу). - Перевірки розбіжностей токена пропускають розв’язання токена з конфігурації, коли автентифікація токеном фактично неактивна (
gateway.auth.modeявно має значенняpassword/none/trusted-proxyабо режим не задано, пароль може мати пріоритет і жоден кандидат на токен не може бути вибраний).
gateway probe
Команда для «налагодження всього». Вона завжди перевіряє:
- налаштований віддалений Gateway (якщо задано) та
- localhost (local loopback), навіть якщо налаштовано віддалений Gateway.
Передавання --url додає цю явну ціль перед обома іншими. У текстовому виводі цілі позначаються як URL (явний), Віддалений (налаштований) / Віддалений (налаштований, неактивний) і Local loopback.
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --port 18789OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Використовувати цей порт для локальної цілі перевірки local loopback і віддаленого порту тунелю SSH. Без --url цей параметр вибирає лише локальну ціль local loopback замість URL середовища налаштованого Gateway, порту середовища або віддалених цілей.
Інтерпретація
Доступний: такозначає, що принаймні одна ціль прийняла підключення WebSocket.Можливості: лише читання|запис дозволено|адміністрування дозволено|очікування сполучення|лише підключенняповідомляє, що перевірка змогла підтвердити щодо автентифікації, окремо від доступності.Перевірка читання: успішноозначає, що деталізовані виклики RPC з областю читання (health/status/system-presence/config.get) також виконано успішно.Перевірка читання: обмежено — відсутня область: operator.readозначає, що підключення успішне, але RPC з областю читання обмежено. Це повідомляється як погіршена доступність, а не повна невдача.Перевірка читання: невдалопісляПідключення: успішноозначає, що WebSocket підключився, але наступна діагностика читання перевищила час очікування або завершилася невдало — це також погіршений стан, а не недоступність.- Як і
gateway status, перевірка повторно використовує наявну кешовану автентифікацію пристрою, але не створює первинну ідентичність пристрою або стан сполучення. - Код завершення є ненульовим, лише коли жодна перевірена ціль не доступна.
Вивід JSON
Верхній рівень:
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 і scopes, повідомлені в hello-ok, коли доступні, а також виведена класифікація capability.
Поширені коди попереджень
ssh_tunnel_failed: не вдалося налаштувати тунель SSH; команда перейшла до прямих перевірок.multiple_gateways: були доступні Gateway з різними ідентичностями або OpenClaw не зміг підтвердити, що доступні цілі є тим самим Gateway. Тунель SSH, URL проксі або налаштований віддалений URL до того самого Gateway не спричиняють цього попередження.auth_secretref_unresolved: не вдалося розв’язати налаштоване посилання SecretRef автентифікації для цілі, перевірка якої завершилася невдало.probe_scope_limited: підключення WebSocket успішне, але перевірку читання обмежено через відсутністьoperator.read.local_tls_runtime_unavailable: локальний TLS Gateway увімкнено, але OpenClaw не зміг завантажити відбиток локального сертифіката.
Віддалене підключення через SSH (відповідність застосунку Mac)
Режим застосунку macOS "Remote over SSH" використовує локальне перенаправлення порту, щоб віддалений Gateway, доступний лише через local loopback, став доступним за адресою ws://127.0.0.1:<port>.
Еквівалент у CLI:
openclaw gateway probe --ssh user@gateway-hostOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host або user@host:port (порт за замовчуванням — 22).
--ssh-autobooleanВибрати перший виявлений хост Gateway як ціль SSH із визначеної кінцевої точки виявлення (local. разом із налаштованим глобальним доменом, якщо він є). Підказки, що містять лише TXT, ігноруються.
Типові параметри конфігурації (необов’язкові): gateway.remote.sshTarget, gateway.remote.sshIdentity.
gateway call <method>
Низькорівневий допоміжний засіб RPC.
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"limit": 200}'"--params"--url"--token"--password"--timeout--expect-finalbooleanПереважно для RPC у стилі агента, які транслюють проміжні події перед остаточним корисним навантаженням.
--jsonbooleanМашиночитаний вивід JSON.
Керування службою Gateway
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstallВстановлення з обгорткою
Використовуйте --wrapper, коли керована служба має запускатися через інший виконуваний файл, наприклад адаптер менеджера секретів або допоміжний засіб запуску від імені іншого користувача. Обгортка отримує звичайні аргументи Gateway і відповідає за те, щоб зрештою виконати openclaw або Node із цими аргументами.
cat > ~/.local/bin/openclaw-doppler <<'EOF'#!/usr/bin/env bashset -euo pipefailexec doppler run --project my-project --config production -- openclaw "$@"EOFchmod +x ~/.local/bin/openclaw-doppler openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --forceopenclaw gateway restartТакож обгортку можна встановити через середовище. gateway install перевіряє, що шлях указує на виконуваний файл, записує обгортку в ProgramArguments служби та зберігає OPENCLAW_WRAPPER у середовищі служби для подальших примусових перевстановлень, оновлень і виправлень через doctor.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctorЩоб видалити збережену обгортку, очистьте OPENCLAW_WRAPPER під час перевстановлення:
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restartПараметри команд
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>(типово:node),--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; використовуйте це, якщо зупинка вручну має зберігатися після перезавантажень. - Команди життєвого циклу приймають
--jsonдля використання у скриптах.
Автентифікація та SecretRef під час установлення
- Коли для автентифікації за токеном потрібен токен, а
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 (Bonjour для глобальної мережі): виберіть домен (наприклад,
openclaw.internal.) і налаштуйте розділену DNS та DNS-сервер; див. Bonjour.
Маяк оголошують лише ті Gateway, для яких увімкнено виявлення Bonjour (типово).
Підказки TXT у кожному маяку: role (підказка щодо ролі Gateway), transport (підказка щодо транспорту, наприклад gateway), gatewayPort (порт WebSocket, зазвичай 18789), tailnetDns (ім’я хоста MagicDNS, якщо доступне), gatewayTls / gatewayTlsSha256 (TLS увімкнено + відбиток сертифіката). sshPort і cliPath публікуються лише в режимі повного виявлення (discovery.mdns.mode: "full"; типовим є "minimal", у якому їх пропущено — тоді клієнти типово використовують порт 22 для цілей SSH).
gateway discover
openclaw gateway discover"--timeout--jsonbooleanМашиночитаний вивід (також вимикає стилізацію та індикатор перебігу).
Приклади:
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'