> ## 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.

# QR

# `openclaw qr`

Создайте QR-код для сопряжения мобильного устройства и код настройки на основе текущей конфигурации Gateway.

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw qr
openclaw qr --setup-code-only
openclaw qr --json
openclaw qr --remote
openclaw qr --limited
openclaw qr --url wss://gateway.example/ws
```

Официальные приложения OpenClaw для iOS и Android подключаются автоматически, когда метаданные их
кода настройки совпадают. Если запрос остаётся в ожидании (например, для
неофициального клиента или при несовпадении метаданных), просмотрите и одобрите его:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw devices list
openclaw 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 недоступен, команда немедленно завершается с ошибкой.

> [!NOTE]
>
> Для этого пути выполнения команды требуется Gateway, поддерживающий RPC-метод `secrets.resolve`. Старые версии Gateway возвращают ошибку неизвестного метода.

## См. также

* [Справочник CLI](https://docs2.openclaw.ai/ru/cli.md)
* [Устройства](https://docs2.openclaw.ai/ru/cli/devices.md)
* [Сопряжение](https://docs2.openclaw.ai/ru/cli/pairing.md)
