The Gateway is de WebSocket-server van OpenClaw (kanalen, nodes, sessies, hooks). Subcommando’s op deze pagina vallen onderDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw gateway ….
Bonjour-detectie
Lokale mDNS + wide-area DNS-SD-configuratie.
Overzicht van detectie
Hoe OpenClaw gateways adverteert en vindt.
Configuratie
Gateway-configuratiesleutels op het hoogste niveau.
De Gateway uitvoeren
Voer een lokaal Gateway-proces uit:Opstartgedrag
Opstartgedrag
- Standaard weigert de Gateway te starten tenzij
gateway.mode=localis ingesteld in~/.openclaw/openclaw.json. Gebruik--allow-unconfiguredvoor ad-hoc-/dev-uitvoeringen. - Van
openclaw onboard --mode localenopenclaw setupwordt verwacht dat zegateway.mode=localschrijven. Als het bestand bestaat maargateway.modeontbreekt, behandel dat dan als een kapotte of overschreven configuratie en repareer die in plaats van impliciet de lokale modus aan te nemen. - Als het bestand bestaat en
gateway.modeontbreekt, behandelt de Gateway dat als verdachte configuratieschade en weigert hij voor jou “lokaal te raden”. - Binden buiten loopback zonder authenticatie wordt geblokkeerd (veiligheidsgrens).
SIGUSR1activeert een herstart binnen het proces wanneer die is toegestaan (commands.restartis standaard ingeschakeld; stelcommands.restart: falsein om handmatig herstarten te blokkeren, terwijl toepassen/bijwerken via gateway-tools/configuratie toegestaan blijft).SIGINT/SIGTERM-handlers stoppen het gateway-proces, maar herstellen geen aangepaste terminalstatus. Als je de CLI omwikkelt met een TUI of raw-mode-invoer, herstel dan de terminal vóór afsluiten.
Opties
WebSocket-poort (standaard komt uit configuratie/env; meestal
18789).Bindmodus voor listener.
Overschrijving van authenticatiemodus.
Tokenoverschrijving (stelt ook
OPENCLAW_GATEWAY_TOKEN in voor het proces).Wachtwoordoverschrijving.
Lees het gateway-wachtwoord uit een bestand.
Stel de Gateway beschikbaar via Tailscale.
Reset de Tailscale-serve-/funnel-configuratie bij afsluiten.
Sta toe dat de gateway start zonder
gateway.mode=local in de configuratie. Omzeilt de opstartbeveiliging alleen voor ad-hoc-/dev-bootstrap; schrijft of repareert het configuratiebestand niet.Maak een dev-configuratie + werkruimte aan als die ontbreken (slaat BOOTSTRAP.md over).
Reset dev-configuratie + referenties + sessies + werkruimte (vereist
--dev).Beëindig vóór het starten elke bestaande listener op de geselecteerde poort.
Uitgebreide logs.
Toon alleen CLI-backendlogs in de console (en schakel stdout/stderr in).
Websocket-logstijl.
Alias voor
--ws-log compact.Log ruwe modelstreamgebeurtenissen naar jsonl.
Pad voor ruwe stream-jsonl.
Opstartprofilering
- Stel
OPENCLAW_GATEWAY_STARTUP_TRACE=1in om fasetimings tijdens het opstarten van de Gateway te loggen, inclusief per fase deeventLoopMax-vertraging en plug-in-lookup-table-timings voor installed-index, manifestregister, opstartplanning en owner-map-werk. - Stel
OPENCLAW_DIAGNOSTICS=timelinein metOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>om een best-effort JSONL-opstartdiagnosetijdlijn te schrijven voor externe QA-harnassen. Je kunt de vlag ook inschakelen metdiagnostics.flags: ["timeline"]in de configuratie; het pad wordt nog steeds via env geleverd. VoegOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1toe om event-loop-samples op te nemen. - Voer
pnpm test:startup:gateway -- --runs 5 --warmup 1uit om het opstarten van de Gateway te benchmarken. De benchmark registreert de eerste procesuitvoer,/healthz,/readyz, opstarttracetimings, event-loop-vertraging en timingdetails van de plug-in-lookup-table.
Een draaiende Gateway opvragen
Alle querycommando’s gebruiken WebSocket RPC.- Uitvoermodi
- Gedeelde opties
- Standaard: leesbaar voor mensen (gekleurd in TTY).
--json: machineleesbare JSON (geen styling/spinner).--no-color(ofNO_COLOR=1): schakel ANSI uit maar behoud de menselijke lay-out.
Wanneer je
--url instelt, valt de CLI niet terug op configuratie- of omgevingsreferenties. Geef --token of --password expliciet door. Ontbrekende expliciete referenties zijn een fout.gateway health
/healthz is een liveness-probe: het retourneert zodra de server HTTP kan beantwoorden. Het HTTP-eindpunt /readyz is strikter en blijft rood terwijl opstart-sidecars, kanalen of geconfigureerde hooks nog tot rust komen. Lokale of geauthenticeerde gedetailleerde readiness-responsen bevatten een diagnostisch eventLoop-blok met event-loop-vertraging, event-loop-utilisatie, CPU-kernverhouding en een degraded-vlag.
gateway usage-cost
Haal gebruikskostenoverzichten op uit sessielogs.
Aantal dagen om op te nemen.
gateway stability
Haal de recente diagnostische stabiliteitsrecorder op van een draaiende Gateway.
Maximumaantal recente gebeurtenissen om op te nemen (max
1000).Filter op diagnostisch gebeurtenistype, zoals
payload.large of diagnostic.memory.pressure.Neem alleen gebeurtenissen op na een diagnostisch sequentienummer.
Lees een bewaarde stabiliteitsbundel in plaats van de draaiende Gateway aan te roepen. Gebruik
--bundle latest (of alleen --bundle) voor de nieuwste bundel onder de statusmap, of geef direct een JSON-pad naar een bundel door.Schrijf een deelbare zip met ondersteuningsdiagnostiek in plaats van stabiliteitsdetails af te drukken.
Uitvoerpad voor
--export.Privacy en bundelgedrag
Privacy en bundelgedrag
- Records bewaren operationele metadata: gebeurtenisnamen, aantallen, bytegroottes, geheugenuitlezingen, wachtrij-/sessiestatus, kanaal-/plug-innamen en geredigeerde sessieoverzichten. Ze bewaren geen chattekst, webhook-bodies, tooluitvoer, ruwe aanvraag- of responsbodies, tokens, cookies, geheime waarden, hostnamen of ruwe sessie-id’s. Stel
diagnostics.enabled: falsein om de recorder volledig uit te schakelen. - Bij fatale Gateway-afsluitingen, shutdown-timeouts en mislukte herstartopstarts schrijft OpenClaw dezelfde diagnostische snapshot naar
~/.openclaw/logs/stability/openclaw-stability-*.jsonwanneer de recorder gebeurtenissen heeft. Inspecteer de nieuwste bundel metopenclaw gateway stability --bundle latest;--limit,--typeen--since-seqgelden ook voor bundeluitvoer.
gateway diagnostics export
Schrijf een lokale diagnostiek-zip die is bedoeld om aan bugrapporten toe te voegen. Zie Diagnostiekexport voor het privacymodel en de bundelinhoud.
Pad voor uitvoer-zip. Standaard is een supportexport onder de statusmap.
Maximumaantal geschoonde logregels om op te nemen.
Maximumaantal logbytes om te inspecteren.
Gateway-WebSocket-URL voor de health-snapshot.
Gateway-token voor de health-snapshot.
Gateway-wachtwoord voor de health-snapshot.
Timeout voor status-/health-snapshot.
Sla zoeken naar bewaarde stabiliteitsbundels over.
Druk het geschreven pad, de grootte en het manifest af als JSON.
gateway status
gateway status toont de Gateway-service (launchd/systemd/schtasks) plus een optionele probe van connectiviteit/authenticatiemogelijkheden.
Voeg een expliciet probe-doel toe. Geconfigureerde externe + localhost worden nog steeds geprobed.
Token-authenticatie voor de probe.
Wachtwoordauthenticatie voor de probe.
Probe-timeout.
Sla de connectiviteitsprobe over (alleen serviceweergave).
Scan ook services op systeemniveau.
Upgrade de standaard connectiviteitsprobe naar een leesprobe en sluit af met niet-nul wanneer die leesprobe mislukt. Kan niet worden gecombineerd met
--no-probe.Statussemantiek
Statussemantiek
gateway statusblijft beschikbaar voor diagnostiek, zelfs wanneer de lokale CLI-configuratie ontbreekt of ongeldig is.- Standaard bewijst
gateway statusde servicestatus, WebSocket-verbinding en de auth-capability die zichtbaar is tijdens de handshake. Het bewijst geen lees-/schrijf-/adminbewerkingen. - Diagnostische probes wijzigen niets voor eerste apparaat-auth: ze hergebruiken een bestaande gecachte apparaattoken wanneer die bestaat, maar maken geen nieuwe CLI-apparaatidentiteit of alleen-lezen apparaatkoppelingsrecord aan alleen om de status te controleren.
gateway statuslost geconfigureerde auth SecretRefs waar mogelijk op voor probe-auth.- Als een vereiste auth SecretRef in dit commandopad niet is opgelost, rapporteert
gateway status --jsonrpc.authWarningwanneer probe-connectiviteit/auth mislukt; geef--token/--passwordexpliciet door of los eerst de geheime bron op. - Als de probe slaagt, worden waarschuwingen over onopgeloste auth-refs onderdrukt om fout-positieven te voorkomen.
- Gebruik
--require-rpcin scripts en automatisering wanneer een luisterende service niet genoeg is en RPC-aanroepen met lees-scope ook gezond moeten zijn. --deepvoegt een best-effort scan toe voor extra launchd/systemd/schtasks-installaties. Wanneer meerdere gateway-achtige services worden gedetecteerd, toont menselijke uitvoer opruimhints en waarschuwt dat de meeste opstellingen één gateway per machine zouden moeten draaien.- Menselijke uitvoer bevat het opgeloste pad naar het bestandslogboek plus een snapshot van CLI-versus-service configuratiepaden/geldigheid om profiel- of state-dir-afwijkingen te helpen diagnosticeren.
Linux systemd-controles op auth-afwijking
Linux systemd-controles op auth-afwijking
- Op Linux systemd-installaties lezen controles op service-auth-afwijking zowel
Environment=- alsEnvironmentFile=-waarden uit de unit (inclusief%h, aangehaalde paden, meerdere bestanden en optionele--bestanden). - Afwijkingscontroles lossen
gateway.auth.tokenSecretRefs op met samengevoegde runtime-env (eerst servicecommand-env, daarna process-env als fallback). - Als token-auth niet effectief actief is (expliciete
gateway.auth.modevanpassword/none/trusted-proxy, of modus niet ingesteld waarbij wachtwoord kan winnen en geen tokenkandidaat kan winnen), slaan token-afwijkingscontroles config-tokenresolutie over.
gateway probe
gateway probe is de opdracht “debug alles”. Deze probeert altijd:
- je geconfigureerde externe gateway (indien ingesteld), en
- localhost (loopback), zelfs als remote is geconfigureerd.
--url doorgeeft, wordt dat expliciete doel vóór beide toegevoegd. Menselijke uitvoer labelt de doelen als:
URL (explicit)Remote (configured)ofRemote (configured, inactive)Local loopback
Als meerdere gateways bereikbaar zijn, worden ze allemaal weergegeven. Meerdere gateways worden ondersteund wanneer je geïsoleerde profielen/poorten gebruikt (bijv. een rescue-bot), maar de meeste installaties draaien nog steeds één gateway.
Interpretatie
Interpretatie
Reachable: yesbetekent dat ten minste één doel een WebSocket-verbinding accepteerde.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyrapporteert wat de probe over auth kon bewijzen. Dit staat los van bereikbaarheid.Read probe: okbetekent dat detail-RPC-aanroepen met lees-scope (health/status/system-presence/config.get) ook zijn geslaagd.Read probe: limited - missing scope: operator.readbetekent dat verbinden is gelukt, maar RPC met lees-scope beperkt is. Dit wordt gerapporteerd als verminderde bereikbaarheid, niet als volledige fout.Read probe: failednaConnect: okbetekent dat de Gateway de WebSocket-verbinding accepteerde, maar dat vervolgleesdiagnostiek time-outte of mislukte. Dit is ook verminderde bereikbaarheid, geen onbereikbare Gateway.- Net als
gateway statushergebruikt probe bestaande gecachte apparaat-auth, maar maakt het geen eerste apparaatidentiteit of koppelingsstatus aan. - De exitcode is alleen niet-nul wanneer geen enkel geprobed doel bereikbaar is.
JSON-uitvoer
JSON-uitvoer
Topniveau:
ok: ten minste één doel is bereikbaar.degraded: ten minste één doel accepteerde een verbinding maar voltooide geen volledige detail-RPC-diagnostiek.capability: beste capability gezien over bereikbare doelen (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeofunknown).primaryTargetId: beste doel om als de actieve winnaar te behandelen in deze volgorde: expliciete URL, SSH-tunnel, geconfigureerde remote, daarna local loopback.warnings[]: best-effort waarschuwingsrecords metcode,messageen optioneletargetIds.network: URL-hints voor local loopback/tailnet, afgeleid van huidige config en hostnetwerk.discovery.timeoutMsendiscovery.count: het werkelijke discoverybudget/resultaantal gebruikt voor deze probe-run.
targets[].connect):ok: bereikbaarheid na connect + verminderde classificatie.rpcOk: volledige detail-RPC geslaagd.scopeLimited: detail-RPC mislukte door ontbrekende operator-scope.
targets[].auth):role: auth-rol gerapporteerd inhello-okwanneer beschikbaar.scopes: toegekende scopes gerapporteerd inhello-okwanneer beschikbaar.capability: de weergegeven auth-capabilityclassificatie voor dat doel.
Veelvoorkomende waarschuwingscodes
Veelvoorkomende waarschuwingscodes
ssh_tunnel_failed: SSH-tunnelsetup mislukt; de opdracht viel terug op directe probes.multiple_gateways: meer dan één doel was bereikbaar; dit is ongebruikelijk tenzij je bewust geïsoleerde profielen draait, zoals een rescue-bot.auth_secretref_unresolved: een geconfigureerde auth SecretRef kon niet worden opgelost voor een mislukt doel.probe_scope_limited: WebSocket-verbinding is gelukt, maar de leesprobe werd beperkt door ontbrekendeoperator.read.
Remote via SSH (pariteit met Mac-app)
De macOS-appmodus “Remote over SSH” gebruikt een lokale port-forward zodat de externe gateway (die mogelijk alleen aan loopback is gebonden) bereikbaar wordt opws://127.0.0.1:<port>.
CLI-equivalent:
user@host of user@host:port (poort is standaard 22).Identiteitsbestand.
Kies de eerste ontdekte gatewayhost als SSH-doel uit het opgeloste discovery-eindpunt (
local. plus het geconfigureerde wide-area domein, indien aanwezig). Hints met alleen TXT worden genegeerd.gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
RPC-helper op laag niveau.
JSON-objectstring voor params.
Gateway WebSocket-URL.
Gateway-token.
Gateway-wachtwoord.
Time-outbudget.
Vooral voor agent-achtige RPC’s die tussentijdse gebeurtenissen streamen vóór een uiteindelijke payload.
Machineleesbare JSON-uitvoer.
--params moet geldige JSON zijn.De Gateway-service beheren
Installeren met een wrapper
Gebruik--wrapper wanneer de beheerde service via een ander uitvoerbaar bestand moet starten, bijvoorbeeld een
shim voor een secretsmanager of een run-as-helper. De wrapper ontvangt de normale Gateway-args en is
verantwoordelijk voor het uiteindelijk exec’en van openclaw of Node met die args.
gateway install valideert dat het pad een
uitvoerbaar bestand is, schrijft de wrapper naar service-ProgramArguments en bewaart
OPENCLAW_WRAPPER in de serviceomgeving voor latere geforceerde herinstallaties, updates en doctor-
reparaties.
OPENCLAW_WRAPPER tijdens het opnieuw installeren:
Commando-opties
Commando-opties
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway uninstall|start|stop|restart:--json
Lifecycle-gedrag
Lifecycle-gedrag
- Gebruik
gateway restartom een beheerde service opnieuw te starten. Ketengateway stopengateway startniet als vervanging voor opnieuw starten; op macOS schakeltgateway stopde LaunchAgent bewust uit voordat deze wordt gestopt. - Lifecycle-opdrachten accepteren
--jsonvoor scripting.
Auth en SecretRefs tijdens installatie
Auth en SecretRefs tijdens installatie
- Wanneer token-auth een token vereist en
gateway.auth.tokendoor SecretRef wordt beheerd, valideertgateway installdat de SecretRef oplosbaar is, maar wordt de opgeloste token niet bewaard in serviceomgevingsmetadata. - Als token-auth een token vereist en de geconfigureerde token-SecretRef niet is opgelost, mislukt installatie gesloten in plaats van fallback-platte tekst te bewaren.
- Geef voor password-auth op
gateway runde voorkeur aanOPENCLAW_GATEWAY_PASSWORD,--password-fileof een door SecretRef ondersteundegateway.auth.passwordboven inline--password. - In afgeleide auth-modus versoepelt shell-only
OPENCLAW_GATEWAY_PASSWORDde installatietokenvereisten niet; gebruik duurzame config (gateway.auth.passwordof configenv) bij het installeren van een beheerde service. - Als zowel
gateway.auth.tokenalsgateway.auth.passwordzijn geconfigureerd engateway.auth.modeniet is ingesteld, wordt installatie geblokkeerd totdat de modus expliciet is ingesteld.
Gateways ontdekken (Bonjour)
gateway discover scant naar Gateway-beacons (_openclaw-gw._tcp).
- Multicast DNS-SD:
local. - Unicast DNS-SD (Wide-Area Bonjour): kies een domein (voorbeeld:
openclaw.internal.) en stel split DNS + een DNS-server in; zie Bonjour.
role(hint voor gatewayrol)transport(transporthint, bijv.gateway)gatewayPort(WebSocket-poort, meestal18789)sshPort(optioneel; clients gebruiken standaard22voor SSH-doelen wanneer dit ontbreekt)tailnetDns(MagicDNS-hostnaam, wanneer beschikbaar)gatewayTls/gatewayTlsSha256(TLS ingeschakeld + certificaatvingerafdruk)cliPath(remote-install-hint geschreven naar de wide-area zone)
gateway discover
Time-out per opdracht (browse/resolve).
Machineleesbare uitvoer (schakelt ook styling/spinner uit).
- De CLI scant
local.plus het geconfigureerde wide-area-domein wanneer er een is ingeschakeld. wsUrlin JSON-uitvoer wordt afgeleid van het opgeloste service-eindpunt, niet van hints die alleen uit TXT komen, zoalslanHostoftailnetDns.- Bij
local.mDNS wordensshPortencliPathalleen uitgezonden wanneerdiscovery.mdns.modefullis. Wide-area DNS-SD schrijft nog steedscliPath;sshPortblijft daar ook optioneel.