CLI commands
QR
openclaw qr
Genera un codice QR per l'associazione di un dispositivo mobile e un codice di configurazione dalla configurazione corrente del Gateway.
openclaw qropenclaw qr --setup-code-onlyopenclaw qr --jsonopenclaw qr --remoteopenclaw qr --url wss://gateway.example/wsLe app ufficiali OpenClaw per iOS e Android si connettono automaticamente quando i metadati del codice di configurazione corrispondono. Se una richiesta rimane in sospeso (ad esempio, per un client non ufficiale o metadati non corrispondenti), esaminala e approvala:
openclaw devices listopenclaw devices approve <requestId>Opzioni
--remote: dà la priorità agateway.remote.url; se tale URL non è impostato, usa come alternativagateway.tailscale.mode=serve|funnel. IgnorapublicUrldel Plugindevice-pair.--url <url>: sostituisce l'URL del Gateway usato nel payload--public-url <url>: sostituisce l'URL pubblico usato nel payload--token <token>: sostituisce il token del Gateway rispetto al quale si autentica il flusso di bootstrap--password <password>: sostituisce la password del Gateway rispetto alla quale si autentica il flusso di bootstrap--setup-code-only: stampa solo il codice di configurazione--no-ascii: omette il rendering ASCII del codice QR--json: restituisce JSON (setupCode,gatewayUrl,gatewayUrlsfacoltativo,auth,urlSource)
--token e --password si escludono a vicenda.
Contenuto del codice di configurazione
Il codice di configurazione contiene un bootstrapToken opaco e di breve durata, non il token o la password condivisi del Gateway. Il flusso di bootstrap integrato emette:
- un token
nodeprincipale conscopes: [] - un token di passaggio
operatorcon ambito limitato aoperator.approvals,operator.read,operator.talk.secretseoperator.write
Gli ambiti per le operazioni di modifica dell'associazione e operator.admin richiedono comunque un'associazione operatore approvata separatamente o un flusso di token.
Risoluzione dell'URL del Gateway
L'associazione mobile si interrompe in modo sicuro per gli URL ws:// pubblici o Tailscale del Gateway: per tali URL, usa Tailscale Serve/Funnel oppure un URL wss:// del Gateway. Gli indirizzi LAN privati e gli host Bonjour .local rimangono supportati tramite ws:// semplice.
Quando l'URL del Gateway selezionato proviene da gateway.bind=lan, OpenClaw verifica anche le route persistenti di tailscale serve status --json. Qualsiasi root HTTPS di Serve che inoltri le richieste alla porta local loopback del Gateway attivo viene inclusa come alternativa. Il comando QR aggiunge questa alternativa solo per lan; custom e tailnet mantengono le route pubblicizzate esplicitamente. I client iOS correnti verificano le route pubblicizzate nell'ordine indicato e salvano la prima raggiungibile; il campo url precedente rimane invariato per i client meno recenti.
Con --remote, è necessario specificare gateway.remote.url oppure gateway.tailscale.mode=serve|funnel.
Risoluzione dell'autenticazione (senza --remote)
Quando non viene fornita alcuna sostituzione dell'autenticazione tramite CLI, i SecretRef dell'autenticazione del Gateway locale vengono risolti come segue:
| Condizione | Risultato |
|---|---|
gateway.auth.mode="token" oppure modalità dedotta senza una fonte password prevalente |
gateway.auth.token |
gateway.auth.mode="password" oppure modalità dedotta senza un token prevalente proveniente dall'autenticazione o dall'ambiente |
gateway.auth.password |
Sia gateway.auth.token sia gateway.auth.password sono configurati (inclusi i SecretRef) e gateway.auth.mode non è impostato |
operazione non riuscita; imposta esplicitamente gateway.auth.mode |
Risoluzione dell'autenticazione (--remote)
Se le credenziali remote effettivamente attive sono configurate come SecretRef e non viene fornito né --token né --password, il comando le risolve dallo snapshot attivo del Gateway. Se il Gateway non è disponibile, il comando termina immediatamente con un errore.