---
read_when:
    - Вы хотите быстро связать мобильное приложение Node с Gateway
    - Вам нужен вывод кода настройки для удалённой/ручной передачи
summary: Справочник CLI для `openclaw qr` (создание QR-кода для сопряжения с мобильным устройством и кода настройки)
title: QR
x-i18n:
    generated_at: "2026-07-13T18:02:18Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: f9d60a58126eae7eec5979f28bb511a09fa52b68cdd73727fca0b2de74efa84a
    source_path: cli/qr.md
    workflow: 16
---

# `openclaw qr`

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

```bash
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
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 возвращают ошибку неизвестного метода.
</Note>

## См. также

- [Справочник CLI](/ru/cli)
- [Устройства](/ru/cli/devices)
- [Сопряжение](/ru/cli/pairing)
