Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Le Gateway est le serveur WebSocket d’OpenClaw (canaux, nœuds, sessions, hooks). Les sous-commandes de cette page se trouvent sous openclaw gateway ….

Découverte Bonjour

Configuration mDNS locale + DNS-SD étendue.

Vue d’ensemble de la découverte

Comment OpenClaw annonce et trouve les gateways.

Configuration

Clés de configuration de gateway de premier niveau.

Exécuter le Gateway

Exécuter un processus Gateway local :
openclaw gateway
Alias de premier plan :
openclaw gateway run
  • Par défaut, le Gateway refuse de démarrer sauf si gateway.mode=local est défini dans ~/.openclaw/openclaw.json. Utilisez --allow-unconfigured pour les exécutions ponctuelles/de développement.
  • openclaw onboard --mode local et openclaw setup sont censés écrire gateway.mode=local. Si le fichier existe mais que gateway.mode est absent, considérez cela comme une configuration cassée ou écrasée et réparez-la au lieu de supposer implicitement le mode local.
  • Si le fichier existe et que gateway.mode est absent, le Gateway considère cela comme une altération suspecte de la configuration et refuse de « deviner local » pour vous.
  • L’écoute au-delà du loopback sans authentification est bloquée (garde-fou de sécurité).
  • SIGUSR1 déclenche un redémarrage dans le processus lorsqu’il est autorisé (commands.restart est activé par défaut ; définissez commands.restart: false pour bloquer le redémarrage manuel, tandis que les applications/mises à jour via l’outil/la configuration du gateway restent autorisées).
  • Les gestionnaires SIGINT/SIGTERM arrêtent le processus gateway, mais ils ne restaurent aucun état de terminal personnalisé. Si vous encapsulez la CLI avec une TUI ou une entrée en mode brut, restaurez le terminal avant de quitter.

Options

--port <port>
number
Port WebSocket (la valeur par défaut provient de la configuration/de l’environnement ; généralement 18789).
--bind <loopback|lan|tailnet|auto|custom>
string
Mode d’écoute du listener.
--auth <token|password>
string
Remplacement du mode d’authentification.
--token <token>
string
Remplacement du jeton (définit aussi OPENCLAW_GATEWAY_TOKEN pour le processus).
--password <password>
string
Remplacement du mot de passe.
--password-file <path>
string
Lire le mot de passe du gateway depuis un fichier.
--tailscale <off|serve|funnel>
string
Exposer le Gateway via Tailscale.
--tailscale-reset-on-exit
boolean
Réinitialiser la configuration serve/funnel de Tailscale à l’arrêt.
--allow-unconfigured
boolean
Autoriser le démarrage du gateway sans gateway.mode=local dans la configuration. Contourne la protection de démarrage uniquement pour l’amorçage ponctuel/de développement ; n’écrit pas et ne répare pas le fichier de configuration.
--dev
boolean
Créer une configuration + un espace de travail de développement si absents (ignore BOOTSTRAP.md).
--reset
boolean
Réinitialiser la configuration de développement + les identifiants + les sessions + l’espace de travail (nécessite --dev).
--force
boolean
Tuer tout listener existant sur le port sélectionné avant de démarrer.
--verbose
boolean
Journaux détaillés.
--cli-backend-logs
boolean
Afficher uniquement les journaux du backend CLI dans la console (et activer stdout/stderr).
--ws-log <auto|full|compact>
string
défaut:"auto"
Style de journalisation WebSocket.
--compact
boolean
Alias de --ws-log compact.
--raw-stream
boolean
Journaliser les événements bruts de flux du modèle en jsonl.
--raw-stream-path <path>
string
Chemin jsonl du flux brut.

Redémarrer le Gateway

openclaw gateway restart
openclaw gateway restart --safe
openclaw gateway restart --safe --skip-deferral
openclaw gateway restart --force
openclaw gateway restart --safe demande au Gateway en cours d’exécution de vérifier préalablement le travail OpenClaw actif avant de redémarrer. Si des opérations en file d’attente, la remise de réponses, des exécutions intégrées ou des exécutions de tâches sont actives, le Gateway signale les blocages, regroupe les demandes de redémarrage sûr en double et redémarre une fois le travail actif écoulé. Le simple restart conserve le comportement existant du gestionnaire de service pour compatibilité. Utilisez --force uniquement lorsque vous voulez explicitement le chemin de remplacement immédiat. openclaw gateway restart --safe --skip-deferral exécute le même redémarrage coordonné et conscient d’OpenClaw que --safe, mais contourne la barrière de report liée au travail actif afin que le Gateway émette le redémarrage immédiatement, même lorsque des blocages sont signalés. Utilisez-le comme échappatoire opérateur lorsqu’un report a été bloqué par une exécution de tâche coincée et que --safe seul attendrait indéfiniment. --skip-deferral nécessite --safe.
--password en ligne peut être exposé dans les listes de processus locales. Préférez --password-file, l’environnement ou un gateway.auth.password adossé à SecretRef.

Profilage du démarrage

  • Définissez OPENCLAW_GATEWAY_STARTUP_TRACE=1 pour journaliser les durées des phases pendant le démarrage du Gateway, y compris le délai eventLoopMax par phase et les durées des tables de correspondance des plugins pour l’index installé, le registre des manifestes, la planification du démarrage et le travail de carte des propriétaires.
  • Définissez OPENCLAW_DIAGNOSTICS=timeline avec OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path> pour écrire une chronologie de diagnostics de démarrage JSONL au mieux pour les harnais QA externes. Vous pouvez aussi activer le drapeau avec diagnostics.flags: ["timeline"] dans la configuration ; le chemin reste fourni par l’environnement. Ajoutez OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 pour inclure les échantillons de boucle d’événements.
  • Exécutez pnpm test:startup:gateway -- --runs 5 --warmup 1 pour mesurer le démarrage du Gateway. Le benchmark enregistre la première sortie du processus, /healthz, /readyz, les durées de trace de démarrage, le délai de boucle d’événements et les détails de durée des tables de correspondance des plugins.

Interroger un Gateway en cours d’exécution

Toutes les commandes de requête utilisent le RPC WebSocket.
  • Par défaut : lisible par l’humain (coloré dans un TTY).
  • --json : JSON lisible par machine (sans style/spinner).
  • --no-color (ou NO_COLOR=1) : désactiver ANSI tout en conservant la mise en page humaine.
Lorsque vous définissez --url, la CLI ne se rabat pas sur la configuration ni sur les identifiants d’environnement. Passez --token ou --password explicitement. L’absence d’identifiants explicites est une erreur.

gateway health

openclaw gateway health --url ws://127.0.0.1:18789
Le point de terminaison HTTP /healthz est une sonde de vivacité : il répond dès que le serveur peut répondre en HTTP. Le point de terminaison HTTP /readyz est plus strict et reste rouge tant que les sidecars de plugins de démarrage, les canaux ou les hooks configurés sont encore en cours de stabilisation. Les réponses de disponibilité détaillées locales ou authentifiées incluent un bloc de diagnostic eventLoop avec le délai de boucle d’événements, l’utilisation de la boucle d’événements, le ratio des cœurs CPU et un drapeau degraded.

gateway usage-cost

Récupérer les résumés de coût d’utilisation depuis les journaux de session.
openclaw gateway usage-cost
openclaw gateway usage-cost --days 7
openclaw gateway usage-cost --json
--days <days>
number
défaut:"30"
Nombre de jours à inclure.

gateway stability

Récupérer l’enregistreur de stabilité de diagnostic récent depuis un Gateway en cours d’exécution.
openclaw gateway stability
openclaw gateway stability --type payload.large
openclaw gateway stability --bundle latest
openclaw gateway stability --bundle latest --export
openclaw gateway stability --json
--limit <limit>
number
défaut:"25"
Nombre maximal d’événements récents à inclure (max 1000).
--type <type>
string
Filtrer par type d’événement de diagnostic, tel que payload.large ou diagnostic.memory.pressure.
--since-seq <seq>
number
Inclure uniquement les événements après un numéro de séquence de diagnostic.
--bundle [path]
string
Lire un bundle de stabilité persistant au lieu d’appeler le Gateway en cours d’exécution. Utilisez --bundle latest (ou simplement --bundle) pour le bundle le plus récent sous le répertoire d’état, ou passez directement un chemin JSON de bundle.
--export
boolean
Écrire un zip de diagnostics d’assistance partageable au lieu d’imprimer les détails de stabilité.
--output <path>
string
Chemin de sortie pour --export.
  • Les enregistrements conservent les métadonnées opérationnelles : noms d’événements, nombres, tailles en octets, relevés mémoire, état des files/sessions, noms de canaux/plugins et résumés de sessions expurgés. Ils ne conservent pas le texte des discussions, les corps de webhook, les sorties d’outils, les corps bruts de requête ou de réponse, les jetons, les cookies, les valeurs secrètes, les noms d’hôte ni les ids de session bruts. Définissez diagnostics.enabled: false pour désactiver entièrement l’enregistreur.
  • Lors des sorties fatales du Gateway, des délais d’arrêt dépassés et des échecs de démarrage après redémarrage, OpenClaw écrit le même instantané de diagnostic dans ~/.openclaw/logs/stability/openclaw-stability-*.json lorsque l’enregistreur contient des événements. Inspectez le bundle le plus récent avec openclaw gateway stability --bundle latest ; --limit, --type et --since-seq s’appliquent aussi à la sortie du bundle.

gateway diagnostics export

Écrire un zip de diagnostics local conçu pour être joint aux rapports de bogue. Pour le modèle de confidentialité et le contenu du bundle, consultez Export des diagnostics.
openclaw gateway diagnostics export
openclaw gateway diagnostics export --output openclaw-diagnostics.zip
openclaw gateway diagnostics export --json
--output <path>
string
Chemin du zip de sortie. Par défaut, un export d’assistance est créé sous le répertoire d’état.
--log-lines <count>
number
défaut:"5000"
Nombre maximal de lignes de journaux assainies à inclure.
--log-bytes <bytes>
number
défaut:"1000000"
Nombre maximal d’octets de journaux à inspecter.
--url <url>
string
URL WebSocket du Gateway pour l’instantané d’état/santé.
--token <token>
string
Jeton du Gateway pour l’instantané de santé.
--password <password>
string
Mot de passe du Gateway pour l’instantané de santé.
--timeout <ms>
number
défaut:"3000"
Délai d’attente de l’instantané d’état/santé.
--no-stability-bundle
boolean
Ignorer la recherche de bundle de stabilité persistant.
--json
boolean
Imprimer le chemin écrit, la taille et le manifeste au format JSON.
L’export contient un manifeste, un résumé Markdown, la forme de la configuration, des détails de configuration assainis, des résumés de journaux assainis, des instantanés d’état/santé du Gateway assainis et le bundle de stabilité le plus récent lorsqu’il existe. Il est destiné à être partagé. Il conserve les détails opérationnels qui aident au débogage, comme les champs sûrs des journaux OpenClaw, les noms de sous-systèmes, les codes d’état, les durées, les modes configurés, les ports, les ids de plugins, les ids de providers, les paramètres de fonctionnalités non secrets et les messages de journaux opérationnels expurgés. Il omet ou expurge le texte des discussions, les corps de webhook, les sorties d’outils, les identifiants, les cookies, les identifiants de comptes/messages, le texte de prompts/instructions, les noms d’hôte et les valeurs secrètes. Lorsqu’un message de style LogTape ressemble à du texte de charge utile utilisateur/discussion/outil, l’export conserve uniquement le fait qu’un message a été omis ainsi que son nombre d’octets.

gateway status

gateway status affiche le service Gateway (launchd/systemd/schtasks) ainsi qu’une sonde facultative de connectivité/capacité d’authentification.
openclaw gateway status
openclaw gateway status --json
openclaw gateway status --require-rpc
--url <url>
string
Ajoute une cible de sonde explicite. La cible distante configurée et localhost sont toujours sondés.
--token <token>
string
Authentification par jeton pour la sonde.
--password <password>
string
Authentification par mot de passe pour la sonde.
--timeout <ms>
number
défaut:"10000"
Délai d’expiration de la sonde.
--no-probe
boolean
Ignore la sonde de connectivité (vue limitée au service).
--deep
boolean
Analyse aussi les services au niveau du système.
--require-rpc
boolean
Transforme la sonde de connectivité par défaut en sonde de lecture et quitte avec un code non nul lorsque cette sonde de lecture échoue. Ne peut pas être combiné avec --no-probe.
  • gateway status reste disponible pour le diagnostic même lorsque la configuration CLI locale est manquante ou invalide.
  • Par défaut, gateway status vérifie l’état du service, la connexion WebSocket et la capacité d’authentification visible au moment de la poignée de main. Il ne vérifie pas les opérations de lecture/écriture/administration.
  • Les sondes de diagnostic ne modifient pas l’authentification d’un appareil lors de sa première utilisation : elles réutilisent un jeton d’appareil déjà mis en cache lorsqu’il existe, mais elles ne créent pas une nouvelle identité d’appareil CLI ni un enregistrement d’appairage d’appareil en lecture seule simplement pour vérifier l’état.
  • gateway status résout les SecretRefs d’authentification configurés pour l’authentification de la sonde lorsque c’est possible.
  • Si un SecretRef d’authentification requis n’est pas résolu dans ce chemin de commande, gateway status --json signale rpc.authWarning lorsque la connectivité/l’authentification de la sonde échoue ; passez explicitement --token/--password ou résolvez d’abord la source du secret.
  • Si la sonde réussit, les avertissements d’auth-ref non résolue sont supprimés pour éviter les faux positifs.
  • Utilisez --require-rpc dans les scripts et l’automatisation lorsqu’un service à l’écoute ne suffit pas et que les appels RPC à portée de lecture doivent aussi être sains.
  • --deep ajoute une analyse au mieux des installations launchd/systemd/schtasks supplémentaires. Lorsque plusieurs services de type Gateway sont détectés, la sortie lisible par l’humain affiche des conseils de nettoyage et avertit que la plupart des configurations devraient exécuter un seul Gateway par machine.
  • --deep signale aussi un transfert récent de redémarrage du superviseur du Gateway lorsque le processus du service s’est terminé proprement pour un redémarrage par un superviseur externe.
  • --deep exécute la validation de configuration en mode compatible avec les plugins (pluginValidation: "full") et expose les avertissements de manifeste de plugin configuré (par exemple des métadonnées de configuration de canal manquantes) afin que les vérifications rapides d’installation et de mise à jour les détectent. Par défaut, gateway status conserve le chemin rapide en lecture seule qui ignore la validation des plugins.
  • La sortie lisible par l’humain inclut le chemin résolu du fichier de journal ainsi qu’un instantané des chemins/validités de configuration CLI par rapport au service afin d’aider à diagnostiquer les dérives de profil ou de répertoire d’état.
  • Sur les installations Linux systemd, les vérifications de dérive d’authentification du service lisent les valeurs Environment= et EnvironmentFile= de l’unité (y compris %h, les chemins entre guillemets, plusieurs fichiers et les fichiers optionnels -).
  • Les vérifications de dérive résolvent les SecretRefs gateway.auth.token avec l’environnement d’exécution fusionné (d’abord l’environnement de commande du service, puis l’environnement du processus en solution de repli).
  • Si l’authentification par jeton n’est pas effectivement active (gateway.auth.mode explicite à password/none/trusted-proxy, ou mode non défini lorsque le mot de passe peut l’emporter et qu’aucun candidat de jeton ne peut l’emporter), les vérifications de dérive de jeton ignorent la résolution du jeton de configuration.

gateway probe

gateway probe est la commande « tout déboguer ». Elle sonde toujours :
  • votre Gateway distant configuré (s’il est défini), et
  • localhost (loopback) même si un distant est configuré.
Si vous passez --url, cette cible explicite est ajoutée avant les deux autres. La sortie lisible par l’humain étiquette les cibles ainsi :
  • URL (explicit)
  • Remote (configured) ou Remote (configured, inactive)
  • Local loopback
Si plusieurs Gateways sont joignables, elle les affiche tous. Plusieurs Gateways sont pris en charge lorsque vous utilisez des profils/ports isolés (par exemple un bot de secours), mais la plupart des installations exécutent tout de même un seul Gateway.
openclaw gateway probe
openclaw gateway probe --json
  • Reachable: yes signifie qu’au moins une cible a accepté une connexion WebSocket.
  • Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only indique ce que la sonde a pu vérifier au sujet de l’authentification. C’est distinct de la joignabilité.
  • Read probe: ok signifie que les appels RPC de détail à portée de lecture (health/status/system-presence/config.get) ont également réussi.
  • Read probe: limited - missing scope: operator.read signifie que la connexion a réussi, mais que le RPC à portée de lecture est limité. Cela est signalé comme une joignabilité dégradée, et non comme un échec complet.
  • Read probe: failed après Connect: ok signifie que le Gateway a accepté la connexion WebSocket, mais que les diagnostics de lecture suivants ont expiré ou échoué. Cela est aussi une joignabilité dégradée, et non un Gateway injoignable.
  • Comme gateway status, la sonde réutilise l’authentification d’appareil déjà mise en cache, mais ne crée pas d’identité d’appareil ni d’état d’appairage lors d’une première utilisation.
  • Le code de sortie n’est non nul que lorsqu’aucune cible sondée n’est joignable.
Niveau supérieur :
  • ok : au moins une cible est joignable.
  • degraded : au moins une cible a accepté une connexion mais n’a pas terminé les diagnostics RPC détaillés complets.
  • capability : meilleure capacité observée parmi les cibles joignables (read_only, write_capable, admin_capable, pairing_pending, connected_no_operator_scope ou unknown).
  • primaryTargetId : meilleure cible à traiter comme gagnante active dans cet ordre : URL explicite, tunnel SSH, distant configuré, puis local loopback.
  • warnings[] : enregistrements d’avertissement au mieux avec code, message et targetIds facultatif.
  • network : indices d’URL local loopback/tailnet dérivés de la configuration actuelle et du réseau de l’hôte.
  • discovery.timeoutMs et discovery.count : budget de découverte réel/nombre de résultats utilisé pour ce passage de sonde.
Par cible (targets[].connect) :
  • ok : joignabilité après connexion + classification dégradée.
  • rpcOk : réussite complète du RPC détaillé.
  • scopeLimited : le RPC détaillé a échoué en raison d’une portée opérateur manquante.
Par cible (targets[].auth) :
  • role : rôle d’authentification signalé dans hello-ok lorsqu’il est disponible.
  • scopes : portées accordées signalées dans hello-ok lorsqu’elles sont disponibles.
  • capability : classification de capacité d’authentification exposée pour cette cible.
  • ssh_tunnel_failed : la configuration du tunnel SSH a échoué ; la commande est revenue aux sondes directes.
  • multiple_gateways : plus d’une cible était joignable ; c’est inhabituel sauf si vous exécutez intentionnellement des profils isolés, comme un bot de secours.
  • auth_secretref_unresolved : un SecretRef d’authentification configuré n’a pas pu être résolu pour une cible en échec.
  • probe_scope_limited : la connexion WebSocket a réussi, mais la sonde de lecture a été limitée par l’absence de operator.read.

Distant via SSH (parité avec l’app Mac)

Le mode « Remote over SSH » de l’app macOS utilise une redirection de port locale afin que le Gateway distant (qui peut être lié uniquement à loopback) devienne joignable à ws://127.0.0.1:<port>. Équivalent CLI :
openclaw gateway probe --ssh user@gateway-host
--ssh <target>
string
user@host ou user@host:port (le port par défaut est 22).
--ssh-identity <path>
string
Fichier d’identité.
--ssh-auto
boolean
Choisit le premier hôte Gateway découvert comme cible SSH à partir du point de terminaison de découverte résolu (local. plus le domaine étendu configuré, le cas échéant). Les indices uniquement TXT sont ignorés.
Configuration (facultative, utilisée comme valeurs par défaut) :
  • gateway.remote.sshTarget
  • gateway.remote.sshIdentity

gateway call <method>

Assistant RPC bas niveau.
openclaw gateway call status
openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
--params <json>
string
défaut:"{}"
Chaîne d’objet JSON pour les paramètres.
--url <url>
string
URL WebSocket du Gateway.
--token <token>
string
Jeton du Gateway.
--password <password>
string
Mot de passe du Gateway.
--timeout <ms>
number
Budget de délai d’expiration.
--expect-final
boolean
Principalement pour les RPC de style agent qui diffusent des événements intermédiaires avant une charge utile finale.
--json
boolean
Sortie JSON lisible par machine.
--params doit être du JSON valide.

Gérer le service Gateway

openclaw gateway install
openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw gateway uninstall

Installer avec un wrapper

Utilisez --wrapper lorsque le service géré doit démarrer via un autre exécutable, par exemple un adaptateur de gestionnaire de secrets ou un assistant d’exécution sous un autre utilisateur. Le wrapper reçoit les arguments normaux du Gateway et est responsable, à terme, d’exécuter openclaw ou Node avec ces arguments.
cat > ~/.local/bin/openclaw-doppler <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
exec doppler run --project my-project --config production -- openclaw "$@"
EOF
chmod +x ~/.local/bin/openclaw-doppler

openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --force
openclaw gateway restart
Vous pouvez aussi définir le wrapper via l’environnement. gateway install vérifie que le chemin est un fichier exécutable, écrit le wrapper dans les ProgramArguments du service et conserve OPENCLAW_WRAPPER dans l’environnement du service pour les réinstallations forcées, les mises à jour et les réparations doctor ultérieures.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --force
openclaw doctor
Pour supprimer un wrapper conservé, videz OPENCLAW_WRAPPER lors de la réinstallation :
OPENCLAW_WRAPPER= openclaw gateway install --force
openclaw gateway restart
  • gateway status : --url, --token, --password, --timeout, --no-probe, --require-rpc, --deep, --json
  • gateway install : --port, --runtime <node|bun>, --token, --wrapper <path>, --force, --json
  • gateway restart : --safe, --skip-deferral, --force, --wait <duration>, --json
  • gateway uninstall|start : --json
  • gateway stop : --disable, --json
  • Utilisez gateway restart pour redémarrer un service géré. N’enchaînez pas gateway stop et gateway start comme substitut de redémarrage.
  • Sur macOS, gateway stop utilise launchctl bootout par défaut, ce qui retire le LaunchAgent de la session de démarrage actuelle sans rendre persistante une désactivation — la récupération automatique KeepAlive reste active pour les futurs plantages et gateway start se réactive proprement sans launchctl enable manuel. Passez --disable pour supprimer durablement KeepAlive et RunAtLoad afin que le Gateway ne redémarre pas jusqu’au prochain gateway start explicite ; utilisez cette option lorsqu’un arrêt manuel doit survivre aux redémarrages de la machine ou du système.
  • gateway restart --safe demande au Gateway en cours d’exécution de vérifier en amont le travail OpenClaw actif et de différer le redémarrage jusqu’à ce que la livraison des réponses, les exécutions embarquées et les exécutions de tâches soient terminées. --safe ne peut pas être combiné avec --force ou --wait.
  • gateway restart --wait 30s remplace le budget d’attente configuré pour ce redémarrage. Les nombres nus sont en millisecondes ; les unités comme s, m et h sont acceptées. --wait 0 attend indéfiniment.
  • gateway restart --safe --skip-deferral exécute le redémarrage sûr compatible OpenClaw, mais contourne la barrière de différé afin que le Gateway émette le redémarrage immédiatement même lorsque des blocages sont signalés. Échappatoire opérateur pour les différés d’exécutions de tâches bloquées ; nécessite --safe.
  • gateway restart --force ignore l’attente de vidage du travail actif et redémarre immédiatement. Utilisez cette option lorsqu’un opérateur a déjà inspecté les blocages de tâches listés et veut remettre le Gateway en service maintenant.
  • Les commandes de cycle de vie acceptent --json pour les scripts.
  • Lorsque l’authentification par jeton exige un jeton et que gateway.auth.token est géré par SecretRef, gateway install vérifie que la SecretRef peut être résolue, mais ne persiste pas le jeton résolu dans les métadonnées d’environnement du service.
  • Si l’authentification par jeton exige un jeton et que la SecretRef de jeton configurée n’est pas résolue, l’installation échoue fermée au lieu de persister un texte en clair de secours.
  • Pour l’authentification par mot de passe avec gateway run, préférez OPENCLAW_GATEWAY_PASSWORD, --password-file ou un gateway.auth.password adossé à une SecretRef plutôt que --password en ligne.
  • En mode d’authentification inféré, OPENCLAW_GATEWAY_PASSWORD limité au shell n’assouplit pas les exigences de jeton à l’installation ; utilisez une configuration durable (gateway.auth.password ou env de configuration) lors de l’installation d’un service géré.
  • Si gateway.auth.token et gateway.auth.password sont tous deux configurés et que gateway.auth.mode n’est pas défini, l’installation est bloquée jusqu’à ce que le mode soit défini explicitement.

Découvrir les gateways (Bonjour)

gateway discover recherche les balises Gateway (_openclaw-gw._tcp).
  • DNS-SD multicast : local.
  • DNS-SD unicast (Bonjour étendu) : choisissez un domaine (exemple : openclaw.internal.) et configurez un DNS partagé + un serveur DNS ; consultez Bonjour.
Seuls les gateways avec la découverte Bonjour activée (par défaut) annoncent la balise. Les enregistrements de découverte étendue peuvent inclure ces indices TXT :
  • role (indice de rôle du Gateway)
  • transport (indice de transport, par exemple gateway)
  • gatewayPort (port WebSocket, généralement 18789)
  • sshPort (mode de découverte complet uniquement ; les clients utilisent par défaut 22 comme cible SSH lorsqu’il est absent)
  • tailnetDns (nom d’hôte MagicDNS, lorsqu’il est disponible)
  • gatewayTls / gatewayTlsSha256 (TLS activé + empreinte du certificat)
  • cliPath (mode de découverte complet uniquement)

gateway discover

openclaw gateway discover
--timeout <ms>
number
défaut:"2000"
Délai d’expiration par commande (parcours/résolution).
--json
boolean
Sortie lisible par machine (désactive aussi le style/l’indicateur d’activité).
Exemples :
openclaw gateway discover --timeout 4000
openclaw gateway discover --json | jq '.beacons[].wsUrl'
  • La CLI analyse local. plus le domaine étendu configuré lorsqu’il est activé.
  • wsUrl dans la sortie JSON est dérivé du point de terminaison de service résolu, et non d’indices exclusivement TXT comme lanHost ou tailnetDns.
  • Sur mDNS local. et DNS-SD étendu, sshPort et cliPath ne sont publiés que lorsque discovery.mdns.mode vaut full.

Associés