openclaw qr
現在の Gateway 構成からモバイルペアリング用 QR とセットアップコードを生成します。
オプション
--remote:gateway.remote.urlを優先します。その URL が未設定の場合はgateway.tailscale.mode=serve|funnelにフォールバックします。device-pairplugin のpublicUrlは無視します。--url <url>: ペイロードで使用する gateway URL を上書きします--public-url <url>: ペイロードで使用する公開 URL を上書きします--token <token>: ブートストラップフローが認証に使う gateway トークンを上書きします--password <password>: ブートストラップフローが認証に使う gateway パスワードを上書きします--setup-code-only: セットアップコードのみを出力します--no-ascii: ASCII QR レンダリングをスキップします--json: JSON(setupCode,gatewayUrl, 任意のgatewayUrls,auth,urlSource)を出力します
--token と --password は同時に指定できません。
セットアップコードの内容
セットアップコードには、共有 gateway トークン/パスワードではなく、不透明で短命なbootstrapToken が含まれます。組み込みのブートストラップフローは次を発行します。
scopes: []を持つプライマリnodeトークンoperator.approvals,operator.read,operator.talk.secrets,operator.writeに制限された有界のoperatorハンドオフトークン
operator.admin には、引き続き別途承認済みの operator ペアリングまたはトークンフローが必要です。
Gateway URL 解決
モバイルペアリングは、Tailscale/公開ws:// gateway URL に対してフェイルクローズします。これらには Tailscale Serve/Funnel または wss:// gateway URL を使用してください。プライベート LAN アドレスと .local Bonjour ホストは、プレーンな ws:// で引き続きサポートされます。
選択された Gateway URL が gateway.bind=lan に由来する場合、OpenClaw は永続的な tailscale serve status --json ルートも確認します。アクティブな Gateway のループバックポートをプロキシする HTTPS Serve ルートは、フォールバックとして含められます。特定インターフェースの custom と tailnet バインドは、そのフォールバックを受け取りません。ループバック Serve プロキシがそれらのリスナーに到達できないためです。現在の iOS クライアントは、通知されたルートを順番にプローブし、最初に到達可能なものを保存します。レガシーの url フィールドは、古いクライアント向けに変更されません。
--remote を指定する場合、gateway.remote.url または gateway.tailscale.mode=serve|funnel のいずれかが必要です。
認証解決(--remote なし)
CLI 認証上書きが渡されない場合、ローカル gateway 認証 SecretRefs は次のように解決されます。
| 条件 | 解決先 |
|---|---|
gateway.auth.mode="token"、またはパスワードソースが勝たない推論モード | gateway.auth.token |
gateway.auth.mode="password"、または auth/env から勝つトークンがない推論モード | gateway.auth.password |
gateway.auth.token と gateway.auth.password の両方が構成されている(SecretRefs を含む)かつ gateway.auth.mode が未設定 | 失敗します。gateway.auth.mode を明示的に設定してください |
認証解決(--remote)
実質的にアクティブなリモート認証情報が SecretRefs として構成されていて、--token も --password も渡されていない場合、コマンドはアクティブな gateway スナップショットからそれらを解決します。gateway が利用できない場合、コマンドは即座に失敗します。
このコマンドパスには、
secrets.resolve RPC メソッドをサポートする gateway が必要です。古い gateway は unknown-method エラーを返します。