CLI commands
QR
openclaw qr
Genera un QR de emparejamiento móvil y un código de configuración a partir de tu configuración actual del Gateway.
Uso
openclaw qr
openclaw qr --setup-code-only
openclaw qr --json
openclaw qr --remote
openclaw qr --url wss://gateway.example/ws
Opciones
--remote: prefieregateway.remote.url; si no está definido,gateway.tailscale.mode=serve|funnelaún puede proporcionar la URL pública remota--url <url>: sobrescribe la URL del gateway usada en la carga útil--public-url <url>: sobrescribe la URL pública usada en la carga útil--token <token>: sobrescribe el token del gateway contra el que se autentica el flujo de arranque--password <password>: sobrescribe la contraseña del gateway contra la que se autentica el flujo de arranque--setup-code-only: imprime solo el código de configuración--no-ascii: omite el renderizado ASCII del QR--json: emite JSON (setupCode,gatewayUrl,auth,urlSource)
Notas
--tokeny--passwordson mutuamente excluyentes.- El código de configuración ahora lleva un
bootstrapTokenopaco y de corta duración, no el token/contraseña compartidos del gateway. - En el flujo de arranque de node/operador integrado, el token principal de node todavía queda con
scopes: []. - Si la transferencia de arranque también emite un token de operador, permanece limitado a la lista de permitidos de arranque:
operator.approvals,operator.read,operator.talk.secrets,operator.write. - Las comprobaciones de ámbito de arranque llevan prefijo de rol. Esa lista de permitidos de operador solo satisface solicitudes de operador; los roles que no son de operador siguen necesitando ámbitos bajo su propio prefijo de rol.
- El emparejamiento móvil falla de forma cerrada para URL de gateway
ws://de Tailscale/públicas. Las direcciones LAN privadas y los hosts Bonjour.localsiguen siendo compatibles mediantews://, pero las rutas móviles Tailscale/públicas deberían usar Tailscale Serve/Funnel o una URL de gatewaywss://. - Con
--remote, OpenClaw requieregateway.remote.urlogateway.tailscale.mode=serve|funnel. - Con
--remote, si las credenciales remotas efectivamente activas están configuradas como SecretRefs y no pasas--tokenni--password, el comando las resuelve desde la instantánea activa del gateway. Si el gateway no está disponible, el comando falla rápidamente. - Sin
--remote, los SecretRefs de autenticación del gateway local se resuelven cuando no se pasa ninguna sobrescritura de autenticación de la CLI:gateway.auth.tokense resuelve cuando la autenticación por token puede ganar (gateway.auth.mode="token"explícito o modo inferido en el que no gana ninguna fuente de contraseña).gateway.auth.passwordse resuelve cuando la autenticación por contraseña puede ganar (gateway.auth.mode="password"explícito o modo inferido sin un token ganador desde auth/env).
- Si tanto
gateway.auth.tokencomogateway.auth.passwordestán configurados (incluidos SecretRefs) ygateway.auth.modeno está definido, la resolución del código de configuración falla hasta que el modo se defina explícitamente. - Nota sobre desfase de versión del Gateway: esta ruta de comando requiere un gateway que admita
secrets.resolve; los gateways más antiguos devuelven un error de método desconocido. - Después de escanear, aprueba el emparejamiento del dispositivo con:
openclaw devices listopenclaw devices approve <requestId>