CLI commands
QR
openclaw qr
Wygeneruj kod QR do parowania urządzenia mobilnego oraz kod konfiguracji na podstawie bieżącej konfiguracji Gateway.
openclaw qropenclaw qr --setup-code-onlyopenclaw qr --jsonopenclaw qr --remoteopenclaw qr --url wss://gateway.example/wsOficjalne aplikacje OpenClaw na iOS i Androida łączą się automatycznie, gdy ich metadane kodu konfiguracji są zgodne. Jeśli żądanie nadal oczekuje (na przykład w przypadku nieoficjalnego klienta lub niezgodnych metadanych), sprawdź je i zatwierdź:
openclaw devices listopenclaw devices approve <requestId>Opcje
--remote: preferujegateway.remote.url; jeśli ten adres URL nie jest ustawiony, używagateway.tailscale.mode=serve|funnel. IgnorujepublicUrlPluginudevice-pair.--url <url>: zastępuje adres URL Gateway używany w ładunku--public-url <url>: zastępuje publiczny adres URL używany w ładunku--token <token>: zastępuje token Gateway, względem którego uwierzytelnia się przepływ inicjalizacji--password <password>: zastępuje hasło Gateway, względem którego uwierzytelnia się przepływ inicjalizacji--setup-code-only: wyświetla tylko kod konfiguracji--no-ascii: pomija renderowanie kodu QR w ASCII--json: zwraca dane JSON (setupCode,gatewayUrl, opcjonalnegatewayUrls,auth,urlSource)
Opcje --token i --password wzajemnie się wykluczają.
Zawartość kodu konfiguracji
Kod konfiguracji zawiera nieprzejrzysty, krótkotrwały bootstrapToken, a nie współdzielony token ani hasło Gateway. Wbudowany przepływ inicjalizacji wystawia:
- podstawowy token
nodezscopes: [] - ograniczony token przekazania
operator, zawężony dooperator.approvals,operator.read,operator.talk.secretsioperator.write
Zakresy modyfikacji parowania oraz operator.admin nadal wymagają osobno zatwierdzonego parowania operatora lub przepływu tokenu.
Ustalanie adresu URL Gateway
Parowanie urządzeń mobilnych jest bezpiecznie odrzucane w przypadku publicznych lub obsługiwanych przez Tailscale adresów URL Gateway korzystających z ws://: w takich przypadkach użyj Tailscale Serve/Funnel albo adresu URL Gateway z wss://. Prywatne adresy LAN i hosty Bonjour z domeną .local nadal są obsługiwane przez zwykłe ws://.
Gdy wybrany adres URL Gateway pochodzi z gateway.bind=lan, OpenClaw sprawdza również trwałe trasy zwracane przez tailscale serve status --json. Każdy główny adres HTTPS usługi Serve, który przekazuje ruch do portu local loopback aktywnego Gateway, jest uwzględniany jako trasa zapasowa. Polecenie QR dodaje tę trasę zapasową tylko dla lan; ustawienia custom i tailnet zachowują jawnie anonsowane trasy. Obecne klienty iOS sprawdzają anonsowane trasy w podanej kolejności i zapisują pierwszą osiągalną; starsze pole url pozostaje bez zmian dla starszych klientów.
W przypadku użycia --remote wymagane jest ustawienie gateway.remote.url lub gateway.tailscale.mode=serve|funnel.
Ustalanie uwierzytelniania (bez --remote)
Jeśli nie przekazano w CLI wartości zastępującej dane uwierzytelniające, odwołania SecretRef lokalnego uwierzytelniania Gateway są rozwiązywane następująco:
| Warunek | Rozwiązywana wartość |
|---|---|
gateway.auth.mode="token" lub tryb wywnioskowany bez nadrzędnego źródła hasła |
gateway.auth.token |
gateway.auth.mode="password" lub tryb wywnioskowany bez nadrzędnego tokenu z konfiguracji uwierzytelniania lub środowiska |
gateway.auth.password |
Skonfigurowano zarówno gateway.auth.token, jak i gateway.auth.password (w tym SecretRefs), a gateway.auth.mode nie ustawiono |
operacja kończy się niepowodzeniem; ustaw jawnie gateway.auth.mode |
Ustalanie uwierzytelniania (--remote)
Jeśli faktycznie aktywne zdalne dane uwierzytelniające są skonfigurowane jako SecretRefs i nie przekazano ani --token, ani --password, polecenie rozwiązuje je na podstawie aktywnej migawki Gateway. Jeśli Gateway jest niedostępny, polecenie natychmiast kończy się niepowodzeniem.