CLI commands
QR
openclaw qr
Создайте QR-код для сопряжения мобильного устройства и код настройки на основе текущей конфигурации Gateway.
openclaw qropenclaw qr --setup-code-onlyopenclaw qr --jsonopenclaw qr --remoteopenclaw qr --limitedopenclaw qr --url wss://gateway.example/wsОфициальные приложения OpenClaw для iOS и Android подключаются автоматически, когда метаданные их кода настройки совпадают. Если запрос остаётся в ожидании (например, для неофициального клиента или при несовпадении метаданных), просмотрите и одобрите его:
openclaw devices listopenclaw devices approve <requestId>Параметры
--remote: предпочтительно использоватьgateway.remote.url; если этот URL не задан, используетсяgateway.tailscale.mode=serve|funnel. Игнорируетdevice-pairплагинаpublicUrl.--url <url>: переопределить URL-адрес Gateway, используемый в полезной нагрузке--public-url <url>: переопределить общедоступный URL-адрес, используемый в полезной нагрузке--token <token>: переопределить токен Gateway, по которому выполняется аутентификация в процессе начальной настройки--password <password>: переопределить пароль Gateway, по которому выполняется аутентификация в процессе начальной настройки--limited: исключить административный доступ к Gateway из передаваемого токена оператора--setup-code-only: вывести только код настройки--no-ascii: не отображать QR-код в формате ASCII--json: вывести JSON (setupCode,gatewayUrl, необязательныйgatewayUrls,auth,access, необязательныйaccessDowngraded,urlSource)
--token и --password являются взаимоисключающими.
Содержимое кода настройки
Код настройки содержит непрозрачный краткосрочный bootstrapToken, а не общий токен или пароль Gateway. Для конечной точки wss:// (или loopback на том же хосте) процесс начальной настройки по умолчанию выдаёт:
- основной токен
nodeсscopes: [] - полнофункциональный токен передачи
operatorдля нативного мобильного приложения сoperator.admin,operator.approvals,operator.read,operator.talk.secretsиoperator.write
Используйте --limited, чтобы сохранить тот же токен узла, исключив operator.admin из передаваемого токена оператора. Область действия для изменения сопряжения никогда не передаётся через код настройки.
Настройка через незашифрованную локальную сеть ws:// по-прежнему доступна, но OpenClaw автоматически использует
ограниченный профиль, поскольку наблюдатель в сети может перехватить bearer-токен
начальной настройки и использовать его раньше клиента. Настройте wss:// или Tailscale Serve, затем создайте новый код,
чтобы получить полный доступ.
Определение URL-адреса Gateway
Сопряжение мобильного устройства завершается отказом для URL-адресов Gateway ws:// в Tailscale или общедоступной сети: используйте Tailscale Serve/Funnel или URL-адрес Gateway wss://. Частные адреса локальной сети и Bonjour-хосты .local по-прежнему поддерживаются через незашифрованный ws://, но с ограниченным доступом оператора, как описано выше.
Когда выбранный URL-адрес Gateway получен из gateway.bind=lan, OpenClaw также проверяет постоянные маршруты tailscale serve status --json. Любой корневой адрес HTTPS Serve, проксирующий loopback-порт активного Gateway, включается в качестве резервного варианта. Команда QR добавляет этот резервный вариант только для lan; custom и tailnet сохраняют явно объявленные маршруты. Текущие клиенты iOS проверяют объявленные маршруты по порядку и сохраняют первый доступный; устаревшее поле url остаётся неизменным для старых клиентов.
При использовании --remote необходимо указать один из параметров: gateway.remote.url или gateway.tailscale.mode=serve|funnel.
Определение аутентификации (без --remote)
Если переопределение аутентификации через CLI не передано, локальные SecretRefs для аутентификации Gateway разрешаются следующим образом:
| Условие | Результат разрешения |
|---|---|
gateway.auth.mode="token" или автоматически определённый режим без приоритетного источника пароля |
gateway.auth.token |
gateway.auth.mode="password" или автоматически определённый режим без приоритетного токена из аутентификации или переменных окружения |
gateway.auth.password |
Настроены и gateway.auth.token, и gateway.auth.password (включая SecretRefs), а gateway.auth.mode не задан |
ошибка; явно задайте gateway.auth.mode |
Определение аутентификации (--remote)
Если фактически активные удалённые учётные данные настроены как SecretRefs и не передан ни --token, ни --password, команда разрешает их из активного снимка состояния Gateway. Если Gateway недоступен, команда немедленно завершается с ошибкой.