CLI commands
QR
openclaw qr
Generieren Sie einen QR-Code für die mobile Kopplung und einen Einrichtungscode aus Ihrer aktuellen Gateway-Konfiguration.
openclaw qropenclaw qr --setup-code-onlyopenclaw qr --jsonopenclaw qr --remoteopenclaw qr --limitedopenclaw qr --url wss://gateway.example/wsOffizielle OpenClaw-Apps für iOS und Android stellen automatisch eine Verbindung her, wenn ihre Einrichtungscode-Metadaten übereinstimmen. Wenn eine Anfrage ausstehend bleibt (beispielsweise für einen nicht offiziellen Client oder bei nicht übereinstimmenden Metadaten), prüfen und genehmigen Sie sie:
openclaw devices listopenclaw devices approve <requestId>Optionen
--remote: bevorzugtgateway.remote.url; greift aufgateway.tailscale.mode=serve|funnelzurück, wenn diese URL nicht festgelegt ist. Ignoriertdevice-pair-Plugin-publicUrl.--url <url>: überschreibt die in der Nutzlast verwendete Gateway-URL--public-url <url>: überschreibt die in der Nutzlast verwendete öffentliche URL--token <token>: überschreibt das Gateway-Token, gegenüber dem sich der Bootstrap-Ablauf authentifiziert--password <password>: überschreibt das Gateway-Passwort, gegenüber dem sich der Bootstrap-Ablauf authentifiziert--limited: lässt administrativen Gateway-Zugriff beim übergebenen Operator-Token weg--setup-code-only: gibt nur den Einrichtungscode aus--no-ascii: überspringt die ASCII-QR-Darstellung--json: gibt JSON aus (setupCode,gatewayUrl, optionalgatewayUrls,auth,access, optionalaccessDowngraded,urlSource)
--token und --password schließen sich gegenseitig aus.
Inhalt des Einrichtungscodes
Der Einrichtungscode enthält ein nicht transparentes, kurzlebiges bootstrapToken, nicht das gemeinsam verwendete Gateway-Token/-Passwort. Für einen wss://-Endpunkt (oder einen Loopback auf demselben Host) stellt der standardmäßige Bootstrap-Ablauf Folgendes aus:
- ein primäres
node-Token mitscopes: [] - ein vollständiges natives mobiles
operator-Übergabe-Token mitoperator.admin,operator.approvals,operator.read,operator.talk.secretsundoperator.write
Verwenden Sie --limited, um dasselbe Node-Token beizubehalten und gleichzeitig operator.admin aus der Operator-Übergabe wegzulassen. Der Geltungsbereich für Kopplungsänderungen wird niemals über einen Einrichtungscode übergeben.
Die Klartext-LAN-ws://-Einrichtung bleibt verfügbar, OpenClaw verwendet jedoch automatisch
das eingeschränkte Profil, da ein Netzwerkbeobachter das Bearer-
Bootstrap-Token abfangen und ihm zuvorkommen könnte. Konfigurieren Sie wss:// oder Tailscale Serve und generieren Sie anschließend einen neuen Code,
um vollständigen Zugriff zu erhalten.
Auflösung der Gateway-URL
Die mobile Kopplung schlägt bei Tailscale-/öffentlichen ws://-Gateway-URLs sicher fehl: Verwenden Sie dafür Tailscale Serve/Funnel oder eine wss://-Gateway-URL. Private LAN-Adressen und .local-Bonjour-Hosts werden weiterhin über einfaches ws:// unterstützt, mit eingeschränktem Operator-Zugriff wie oben beschrieben.
Wenn die ausgewählte Gateway-URL aus gateway.bind=lan stammt, prüft OpenClaw außerdem persistente tailscale serve status --json-Routen. Jeder HTTPS-Serve-Stamm, der den Loopback-Port des aktiven Gateways weiterleitet, wird als Ausweichroute aufgenommen. Der QR-Befehl fügt diese Ausweichroute nur für lan hinzu; custom und tailnet behalten ihre explizit bekannt gegebenen Routen bei. Aktuelle iOS-Clients prüfen die bekannt gegebenen Routen der Reihe nach und speichern die erste erreichbare Route; das veraltete Feld url bleibt für ältere Clients unverändert.
Mit --remote ist entweder gateway.remote.url oder gateway.tailscale.mode=serve|funnel erforderlich.
Authentifizierungsauflösung (ohne --remote)
Wenn keine CLI-Authentifizierungsüberschreibung übergeben wird, werden SecretRefs für die lokale Gateway-Authentifizierung wie folgt aufgelöst:
| Bedingung | Wird aufgelöst zu |
|---|---|
gateway.auth.mode="token" oder abgeleiteter Modus ohne vorrangige Passwortquelle |
gateway.auth.token |
gateway.auth.mode="password" oder abgeleiteter Modus ohne vorrangiges Token aus Authentifizierung/Umgebung |
gateway.auth.password |
Sowohl gateway.auth.token als auch gateway.auth.password sind konfiguriert (einschließlich SecretRefs) und gateway.auth.mode ist nicht festgelegt |
schlägt fehl; legen Sie gateway.auth.mode explizit fest |
Authentifizierungsauflösung (--remote)
Wenn tatsächlich aktive Remote-Anmeldedaten als SecretRefs konfiguriert sind und weder --token noch --password übergeben wird, löst der Befehl sie aus dem aktiven Gateway-Snapshot auf. Wenn das Gateway nicht verfügbar ist, schlägt der Befehl sofort fehl.