CLI commands
Node
openclaw node
Запустіть хост Node без графічного інтерфейсу, який підключається до WebSocket Gateway і надає
system.run / system.which на цій машині.
Навіщо використовувати хост Node?
Використовуйте хост Node, коли потрібно, щоб агенти виконували команди на інших машинах у вашій мережі без встановлення повної супровідної програми macOS на них.
Поширені випадки використання:
- Виконання команд на віддалених Linux/Windows-машинах (сервери збірки, лабораторні машини, NAS).
- Залишати exec ізольованим у sandbox на gateway, але делегувати схвалені запуски іншим хостам.
- Надавати легку ціль виконання без графічного інтерфейсу для автоматизації або CI-вузлів.
Виконання все одно захищене схваленнями exec і allowlist для кожного агента на хості Node, тож доступ до команд можна залишати обмеженим і явним.
Проксі браузера (без налаштування)
Хости Node автоматично оголошують проксі браузера, якщо browser.enabled не
вимкнено на Node. Це дає агенту змогу використовувати автоматизацію браузера на цьому Node
без додаткового налаштування.
За замовчуванням проксі відкриває звичайну поверхню профілю браузера Node. Якщо ви
встановите nodeHost.browserProxy.allowProfiles, проксі стає обмежувальним:
націлювання на профілі поза allowlist відхиляється, а маршрути створення/видалення
сталих профілів блокуються через проксі.
За потреби вимкніть це на Node:
{
nodeHost: {
browserProxy: {
enabled: false,
},
},
}
Запуск (передній план)
openclaw node run --host <gateway-host> --port 18789
Параметри:
--host <host>: хост WebSocket Gateway (за замовчуванням:127.0.0.1)--port <port>: порт WebSocket Gateway (за замовчуванням:18789)--tls: використовувати TLS для з’єднання з gateway--tls-fingerprint <sha256>: очікуваний відбиток сертифіката TLS (sha256)--node-id <id>: перевизначити ідентифікатор Node (очищає токен сполучення)--display-name <name>: перевизначити відображуване ім’я Node
Автентифікація Gateway для хоста Node
openclaw node run і openclaw node install визначають автентифікацію gateway з config/env (без прапорців --token/--password у командах Node):
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORDперевіряються першими.- Далі локальний резервний варіант config:
gateway.auth.token/gateway.auth.password. - У локальному режимі хост Node навмисно не успадковує
gateway.remote.token/gateway.remote.password. - Якщо
gateway.auth.token/gateway.auth.passwordявно налаштовано через SecretRef і не розв’язано, визначення автентифікації Node завершується закрито (без маскування віддаленим резервним варіантом). - У
gateway.mode=remoteполя віддаленого клієнта (gateway.remote.token/gateway.remote.password) також можуть використовуватися згідно з правилами пріоритету віддаленого режиму. - Визначення автентифікації хоста Node враховує лише env vars
OPENCLAW_GATEWAY_*.
Для Node, який підключається до не-loopback Gateway ws:// у довіреній приватній
мережі, встановіть OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1. Без цього запуск Node
завершується закрито й просить використати wss://, тунель SSH або Tailscale.
Це opt-in через середовище процесу, а не ключ config openclaw.json.
openclaw node install зберігає його в контрольованій службі Node, коли він
наявний у середовищі команди встановлення.
Служба (фон)
Встановіть хост Node без графічного інтерфейсу як службу користувача.
openclaw node install --host <gateway-host> --port 18789
Параметри:
--host <host>: хост WebSocket Gateway (за замовчуванням:127.0.0.1)--port <port>: порт WebSocket Gateway (за замовчуванням:18789)--tls: використовувати TLS для з’єднання з gateway--tls-fingerprint <sha256>: очікуваний відбиток сертифіката TLS (sha256)--node-id <id>: перевизначити ідентифікатор Node (очищає токен сполучення)--display-name <name>: перевизначити відображуване ім’я Node--runtime <runtime>: середовище виконання служби (nodeабоbun)--force: перевстановити/перезаписати, якщо вже встановлено
Керування службою:
openclaw node status
openclaw node start
openclaw node stop
openclaw node restart
openclaw node uninstall
Використовуйте openclaw node run для хоста Node у передньому плані (без служби).
Команди служби приймають --json для машиночитаного виводу.
Хост Node повторює спроби після перезапуску Gateway і закриття мережевих з’єднань у межах процесу. Якщо Gateway повідомляє про термінальну паузу автентифікації через токен/пароль/bootstrap, хост Node записує деталі закриття в журнал і завершується з ненульовим кодом, щоб launchd/systemd міг перезапустити його зі свіжими config і обліковими даними. Паузи, що потребують сполучення, залишаються в потоці переднього плану, щоб очікуваний запит можна було схвалити.
Сполучення
Перше з’єднання створює на Gateway очікуваний запит сполучення пристрою (role: node).
Схваліть його через:
openclaw devices list
openclaw devices approve <requestId>
У суворо контрольованих мережах Node оператор Gateway може явно дозволити автоматичне схвалення першого сполучення Node з довірених CIDR:
{
gateway: {
nodes: {
pairing: {
autoApproveCidrs: ["192.168.1.0/24"],
},
},
},
}
За замовчуванням це вимкнено. Це застосовується лише до нового сполучення role: node
без запитаних scopes. Клієнти оператора/браузера, Control UI, WebChat, а також оновлення role,
scope, metadata або public-key все одно потребують ручного схвалення.
Якщо Node повторює спробу сполучення зі зміненими даними автентифікації (role/scopes/public key),
попередній очікуваний запит замінюється, і створюється новий requestId.
Перед схваленням знову виконайте openclaw devices list.
Хост Node зберігає свій ідентифікатор Node, токен, відображуване ім’я та дані з’єднання з gateway у
~/.openclaw/node.json.
Схвалення exec
system.run захищено локальними схваленнями exec:
~/.openclaw/exec-approvals.json- Схвалення exec
openclaw approvals --node <id|name|ip>(редагування з Gateway)
Для схваленого асинхронного exec на Node OpenClaw готує канонічний systemRunPlan
перед запитом. Пізніше схвалене переспрямування system.run повторно використовує цей збережений
план, тому зміни полів command/cwd/session після створення запиту на схвалення
відхиляються замість того, щоб змінити те, що виконує Node.