OpenClaw

Canal WebChat OpenClaw

Messagerie
Facile

WebChat est l'interface de chat intégrée d'OpenClaw Gateway. Elle se connecte directement via WebSocket — aucun service externe, clé API ou compte tiers requis. Démarrez simplement le Gateway, configurez l'authentification et ouvrez l'interface WebChat pour commencer à discuter avec votre assistant IA. Tous les messages sont routés de manière déterministe, ce qui signifie que les réponses reviennent toujours à la session WebChat qui a initié la conversation.

Info rapide
DifficultéFacile
CatégorieMessagerie
Fonctionnalités prises en charge1 / 6

WebChat Fonctionnalités prises en charge

Messages texte

Pris en charge

Médias et fichiers

Non pris en charge

Réactions

Non pris en charge

Fils de discussion

Non pris en charge

Messages vocaux

Non pris en charge

Discussion de groupe

Non pris en charge

WebChat Prérequis

  • OpenClaw Gateway installé et en fonctionnement
  • Authentification du Gateway configurée (mode token ou mot de passe)
  • Un navigateur web moderne (Control UI) ou le client natif macOS/iOS
  • Accès réseau au port WebSocket du Gateway (par défaut : 3000)

WebChat Configuration rapide

1

Démarrer le Gateway

Lancez votre OpenClaw Gateway. WebChat est intégré — aucune installation séparée ni plugin n'est nécessaire. Exécutez 'openclaw start' pour démarrer le service Gateway.

2

Configurer l'authentification

Configurez gateway.auth.mode avec l'authentification 'token' ou 'password' dans votre openclaw.json. L'authentification est obligatoire pour toutes les connexions, y compris localhost.

3

Ouvrir WebChat

Accédez à l'interface WebChat via l'onglet chat de Control UI dans votre navigateur, ou lancez le client natif macOS/iOS. Connectez-vous au Gateway à l'adresse ws://localhost:3000 (ou votre hôte et port configurés).

4

Commencer à discuter

Envoyez un message de test pour vérifier la connexion. Votre assistant IA répondra via la même session WebChat. L'historique des conversations est géré par le Gateway et persiste entre les reconnexions.

WebChat Exemple de configuration

config.json
{
  "gateway": {
    "port": 3000,
    "bind": "127.0.0.1",
    "auth": {
      "mode": "token",
      "token": "YOUR_SECRET_TOKEN"
    }
  }
}

WebChat Documentation Détaillée

Aperçu de l'architecture

WebChat communique avec le OpenClaw Gateway via une connexion WebSocket utilisant trois opérations principales : • chat.history — Récupérer l'historique de conversation depuis le Gateway • chat.send — Transmettre les messages utilisateur à l'assistant IA • chat.inject — Ajouter des notes de l'assistant directement aux transcriptions et les diffuser vers l'interface sans déclencher d'exécution de l'agent Contrairement aux autres canaux qui s'appuient sur des services externes et des webhooks, WebChat est entièrement natif au Gateway. Les messages ne quittent jamais votre infrastructure — la connexion WebSocket est directe entre le client UI et le processus Gateway. Le routage est déterministe : les réponses de l'IA reviennent toujours à la session WebChat qui a initié la conversation.
WebChat est le canal le plus simple à configurer puisqu'il ne nécessite aucun compte externe ni clé API — uniquement le Gateway lui-même.
L'opération chat.inject est utile pour ajouter des notes système ou du contexte à une conversation sans déclencher de réponse IA.

Authentification du Gateway

L'authentification est requise pour toutes les connexions WebChat, même en boucle locale (localhost). Cela empêche tout accès non autorisé à votre assistant IA. OpenClaw supporte deux modes d'authentification : • token — Un secret partagé transmis lors du handshake WebSocket. Idéal pour l'accès programmatique et les configurations mono-utilisateur. • password — Authentification par mot de passe. Adapté aux environnements multi-utilisateurs où chaque utilisateur possède ses propres identifiants. Au moins un des modes token ou password doit être configuré pour que WebChat accepte les connexions. Configurez-les dans les paramètres gateway.auth de votre openclaw.json.
openclaw.json
{
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "a-strong-random-token-here"
    }
  }
}
L'authentification est obligatoire même pour les connexions localhost. Ne lancez jamais le Gateway sans authentification configurée — n'importe quel processus sur la machine pourrait accéder à votre assistant IA.

Accès distant

WebChat supporte la connectivité distante sans nécessiter de serveur web séparé. Deux approches sont recommandées : • Tunnel SSH — Redirigez le port du Gateway via SSH : ssh -L 3000:localhost:3000 user@remote-host. Cela vous permet d'accéder à WebChat localement tandis que le Gateway fonctionne sur une machine distante. • Tailscale — Connectez vos appareils via le VPN mesh de Tailscale. Le Gateway devient accessible à son adresse IP Tailscale sans redirection de port ni configuration de pare-feu. Pour les connexions distantes, configurez les paramètres gateway.remote avec l'URL WebSocket cible et les identifiants d'authentification. Le client natif gère automatiquement la reconnexion lors des changements de conditions réseau.
openclaw.json
{
  "gateway": {
    "remote": {
      "url": "wss://your-remote-host:3000",
      "token": "YOUR_REMOTE_TOKEN"
    }
  }
}
Le tunnel SSH est le moyen le plus rapide d'obtenir un accès distant sans logiciel supplémentaire — assurez-vous simplement d'avoir un accès SSH à l'hôte du Gateway.
Tailscale fournit un VPN sans configuration qui rend le Gateway accessible sur tous vos appareils sans redirection de port.

Gestion des sessions

WebChat utilise des sessions gérées par le Gateway pour maintenir le contexte de conversation. Chaque connexion WebChat est associée à une session qui stocke l'historique de conversation et le contexte IA. Les sessions sont persistantes entre les reconnexions — si le WebSocket se déconnecte et se reconnecte, la conversation reprend là où elle s'était arrêtée. L'opération chat.history récupère l'intégralité de la conversation depuis le Gateway lors de la reconnexion. La configuration des sessions est gérée via les paramètres session.* dans openclaw.json, incluant le backend de stockage et les clés de session par défaut.
L'historique de conversation provient du Gateway, il n'est pas stocké localement. Cela signifie que vous pouvez changer d'appareil et reprendre la même conversation.
Utilisez session.defaultKey pour attribuer un identifiant de session cohérent à vos conversations WebChat.

Mode lecture seule

Lorsque le Gateway devient injoignable, WebChat passe automatiquement en mode lecture seule. Dans cet état : • L'historique de conversation précédent reste visible • Les nouveaux messages ne peuvent pas être envoyés • L'interface indique le statut de déconnexion • Des tentatives de reconnexion automatique s'effectuent en arrière-plan Une fois le Gateway de nouveau en ligne, WebChat se reconnecte automatiquement et restaure l'ensemble des fonctionnalités. Aucun message n'est perdu dans l'historique de conversation puisque tout l'historique provient du Gateway.
Le mode lecture seule est une dégradation gracieuse — les utilisateurs peuvent toujours consulter les conversations passées pendant que le Gateway est temporairement indisponible.

Fonctionnalités du client natif

WebChat est implémenté en tant qu'application SwiftUI native sur les plateformes Apple : • macOS — Expérience bureau complète avec raccourcis clavier, notifications système et intégration à la barre de menus • iOS — Interface optimisée pour mobile avec notifications push et rafraîchissement en arrière-plan L'implémentation native offre une expérience réactive et spécifique à la plateforme, sans la surcharge d'un navigateur embarqué ou d'un wrapper Electron. Le rendu du texte, le défilement et la gestion des entrées utilisent tous les composants natifs de la plateforme. Pour les autres plateformes (Windows, Linux, Android), accédez à WebChat via l'onglet chat de Control UI dans n'importe quel navigateur web moderne.
Le client natif macOS/iOS offre la meilleure expérience avec des fonctionnalités spécifiques à la plateforme comme les notifications système et les raccourcis clavier.
L'onglet chat de Control UI dans le navigateur fonctionne sur toutes les plateformes et offre les mêmes fonctionnalités de base.

Distribution des messages

WebChat gère la distribution des messages via la connexion WebSocket avec un découpage configurable pour les longues réponses IA : • textChunkLimit — Nombre maximum de caractères par fragment de message (par défaut : 2000). Les réponses longues sont automatiquement découpées. • blockStreaming — Lorsqu'activé, les réponses sont envoyées par blocs au fur et à mesure de leur génération, offrant un retour en temps réel. Les messages sont distribués instantanément via le WebSocket — il n'y a ni polling ni délai de webhook. La connexion WebSocket bidirectionnelle permet l'envoi et la réception en temps réel.
openclaw.json
{
  "channels": {
    "webchat": {
      "textChunkLimit": 2000,
      "blockStreaming": true
    }
  }
}

Bonnes pratiques de sécurité

La sécurité de WebChat repose sur la couche d'authentification du Gateway. Suivez ces bonnes pratiques pour des déploiements sécurisés : • Toujours configurer l'authentification — Aucun accès anonyme n'est autorisé • Utiliser le chiffrement TLS — Connectez-vous via wss:// (WebSocket Secure) pour toutes les connexions distantes • Restreindre l'adresse de liaison — Utilisez gateway.bind: "127.0.0.1" pour un accès local uniquement ; évitez de lier à 0.0.0.0 sauf derrière un reverse proxy • Utiliser des identifiants forts — Générez des tokens aléatoires ou des mots de passe robustes • Reverse proxy — Pour les déploiements en production, placez le Gateway derrière un reverse proxy (nginx, Caddy) avec terminaison TLS Si vous utilisez un reverse proxy sur la même machine, configurez gateway.trustedProxies pour assurer la détection correcte de l'IP du client.
N'exposez jamais le port WebSocket du Gateway directement sur Internet sans chiffrement TLS et authentification forte. Utilisez un reverse proxy avec terminaison TLS pour les déploiements en production.

WebChat Référence de Configuration

gateway.port
Type: numberDefault: 3000

Numéro de port WebSocket du Gateway

gateway.bind
Type: stringDefault: "127.0.0.1"

Adresse hôte sur laquelle le Gateway se lie pour les connexions WebSocket

gateway.auth.mode
Type: stringDefault: "token"

Mode d'authentification : 'token' pour un secret partagé ou 'password' pour une authentification par identifiants

gateway.auth.token
Type: stringDefault: ""

Token secret partagé pour l'authentification WebSocket

gateway.auth.password
Type: stringDefault: ""

Mot de passe pour l'authentification WebSocket

gateway.remote.url
Type: stringDefault: ""

URL WebSocket du Gateway distant (ex: wss://remote-host:3000)

gateway.remote.token
Type: stringDefault: ""

Token d'authentification pour la connexion à un Gateway distant

gateway.remote.password
Type: stringDefault: ""

Mot de passe d'authentification pour la connexion à un Gateway distant

session.defaultKey
Type: stringDefault: ""

Clé de session par défaut pour les conversations WebChat

session.storage
Type: stringDefault: "memory"

Backend de stockage des sessions (memory, file, redis, etc.)

textChunkLimit
Type: numberDefault: 2000

Nombre maximum de caractères par fragment de message sortant

blockStreaming
Type: booleanDefault: false

Envoyer les réponses par blocs pendant la génération pour un retour en temps réel

WebChat Questions Fréquentes

WebChat Dépannage

WebChat affiche « Déconnecté » et ne se reconnecte pas

Le Gateway n'est pas en fonctionnement, ou le port WebSocket est bloqué par un pare-feu.

Vérifiez que le Gateway fonctionne avec 'openclaw status'. Vérifiez que le port configuré dans gateway.port n'est pas bloqué par un pare-feu. Assurez-vous que gateway.bind autorise les connexions depuis l'adresse réseau de votre client.
L'authentification échoue lors de la connexion

Le token ou le mot de passe ne correspond pas à la configuration du Gateway.

Vérifiez que gateway.auth.token ou gateway.auth.password correspond exactement aux identifiants de votre client. Recherchez les espaces en fin de chaîne ou les problèmes d'encodage. Redémarrez le Gateway après avoir modifié les paramètres d'authentification.
Les messages sont envoyés mais aucune réponse IA n'apparaît

L'agent IA n'est pas configuré, ou la clé API du fournisseur IA est invalide.

Consultez les logs du Gateway pour détecter les erreurs. Vérifiez la configuration de votre agent dans openclaw.json. Assurez-vous que la clé API du fournisseur IA (ex: OpenAI, Anthropic) est valide et dispose d'un quota disponible.
La connexion distante via tunnel SSH échoue

Le tunnel SSH ne redirige pas le bon port, ou le Gateway n'écoute pas sur l'adresse attendue.

Assurez-vous que la commande SSH correspond au port du Gateway : ssh -L 3000:localhost:3000 user@host. Sur la machine distante, vérifiez que le Gateway écoute sur le port attendu. Vérifiez que gateway.bind est défini sur 127.0.0.1 pour l'accès via tunnel SSH.
L'historique du chat est vide après reconnexion

La session a expiré ou a été effacée entre les connexions.

Vérifiez les paramètres de configuration des sessions dans openclaw.json. Assurez-vous que le Gateway dispose d'un espace de stockage suffisant pour la persistance des sessions. Vérifiez que la clé de session correspond entre les connexions.