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.
Overzicht
- Één langlevende Gateway beheert alle berichtenoppervlakken (WhatsApp via Baileys, Telegram via grammY, Slack, Discord, Signal, iMessage, WebChat).
- Besturingsvlakclients (macOS-app, CLI, web-UI, automatiseringen) verbinden met de
Gateway via WebSocket op de geconfigureerde bind-host (standaard
127.0.0.1:18789). - Nodes (macOS/iOS/Android/headless) verbinden ook via WebSocket, maar
declareren
role: nodemet expliciete caps/opdrachten. - Eén Gateway per host; dit is de enige plaats die een WhatsApp-sessie opent.
- De canvas-host wordt aangeboden door de HTTP-server van de Gateway onder:
/__openclaw__/canvas/(door agents bewerkbare HTML/CSS/JS)/__openclaw__/a2ui/(A2UI-host) Deze gebruikt dezelfde poort als de Gateway (standaard18789).
Componenten en flows
Gateway (daemon)
- Onderhoudt providerverbindingen.
- Biedt een getypeerde WS-API (verzoeken, antwoorden, server-push-events).
- Valideert inkomende frames tegen JSON Schema.
- Zendt events uit zoals
agent,chat,presence,health,heartbeat,cron.
Clients (Mac-app / CLI / webbeheer)
- Eén WS-verbinding per client.
- Verzenden verzoeken (
health,status,send,agent,system-presence). - Abonneren zich op events (
tick,agent,presence,shutdown).
Nodes (macOS / iOS / Android / headless)
- Verbinden met dezelfde WS-server met
role: node. - Geven een apparaatidentiteit op in
connect; pairing is apparaatgebaseerd (rolnode) en goedkeuring leeft in de apparaat-pairing-store. - Bieden opdrachten zoals
canvas.*,camera.*,screen.record,location.get.
WebChat
- Statische UI die de Gateway WS-API gebruikt voor chatgeschiedenis en verzenden.
- In externe opstellingen verbindt deze via dezelfde SSH/Tailscale-tunnel als andere clients.
Verbindingslevenscyclus (één client)
Wire-protocol (samenvatting)
- Transport: WebSocket, tekstframes met JSON-payloads.
- Eerste frame moet
connectzijn. - Na handshake:
- Verzoeken:
{type:"req", id, method, params}→{type:"res", id, ok, payload|error} - Events:
{type:"event", event, payload, seq?, stateVersion?}
- Verzoeken:
hello-ok.features.methods/eventszijn discovery-metadata, geen gegenereerde dump van elke aanroepbare helperroute.- Authenticatie met gedeeld geheim gebruikt
connect.params.auth.tokenofconnect.params.auth.password, afhankelijk van de geconfigureerde Gateway-authenticatiemodus. - Modi met identiteit, zoals Tailscale Serve
(
gateway.auth.allowTailscale: true) of niet-loopbackgateway.auth.mode: "trusted-proxy", voldoen aan authenticatie via requestheaders in plaats vanconnect.params.auth.*. - Private-ingress
gateway.auth.mode: "none"schakelt authenticatie met gedeeld geheim volledig uit; houd die modus uit op publieke/niet-vertrouwde ingress. - Idempotentiesleutels zijn vereist voor methoden met neveneffecten (
send,agent) om veilig opnieuw te proberen; de server bewaart een kortlevende deduplicatiecache. - Nodes moeten
role: "node"plus caps/opdrachten/machtigingen opnemen inconnect.
Pairing + lokaal vertrouwen
- Alle WS-clients (operators + nodes) nemen een apparaatidentiteit op bij
connect. - Nieuwe apparaat-ID’s vereisen pairing-goedkeuring; de Gateway geeft een apparaat-token uit voor latere verbindingen.
- Directe local loopback-verbindingen kunnen automatisch worden goedgekeurd om de UX op dezelfde host soepel te houden.
- OpenClaw heeft ook een smal backend-/containerlokaal zelfverbindingspad voor vertrouwde helperflows met gedeeld geheim.
- Tailnet- en LAN-verbindingen, inclusief tailnet-binds op dezelfde host, vereisen nog steeds expliciete pairing-goedkeuring.
- Alle verbindingen moeten de
connect.challenge-nonce ondertekenen. - Handtekeningpayload
v3bindt ookplatform+deviceFamily; de gateway pint gepairde metadata bij opnieuw verbinden en vereist reparatie-pairing voor metadatawijzigingen. - Niet-lokale verbindingen vereisen nog steeds expliciete goedkeuring.
- Gateway-authenticatie (
gateway.auth.*) geldt nog steeds voor alle verbindingen, lokaal of extern.
Protocoltyping en codegen
- TypeBox-schema’s definiëren het protocol.
- JSON Schema wordt uit die schema’s gegenereerd.
- Swift-modellen worden gegenereerd uit het JSON Schema.
Externe toegang
- Voorkeur: Tailscale of VPN.
-
Alternatief: SSH-tunnel
- Dezelfde handshake + auth-token gelden via de tunnel.
- TLS + optionele pinning kunnen worden ingeschakeld voor WS in externe opstellingen.
Operationele momentopname
- Starten:
openclaw gateway(voorgrond, logs naar stdout). - Gezondheid:
healthvia WS (ook opgenomen inhello-ok). - Supervisie: launchd/systemd voor automatisch herstarten.
Invarianten
- Precies één Gateway beheert één Baileys-sessie per host.
- Handshake is verplicht; elk eerste frame dat geen JSON of geen connect is, leidt tot een harde sluiting.
- Events worden niet opnieuw afgespeeld; clients moeten vernieuwen bij hiaten.
Gerelateerd
- Agent Loop — gedetailleerde uitvoeringscyclus van de agent
- Gateway Protocol — WebSocket-protocolcontract
- Queue — opdrachtenwachtrij en concurrency
- Security — vertrouwensmodel en hardening