Skip to main content
De Gateway is de WebSocket-server van OpenClaw (kanalen, nodes, sessies, hooks). Alle onderstaande subopdrachten vallen onder openclaw gateway ....

Bonjour-detectie

Lokale mDNS- en wide-area DNS-SD-configuratie.

Overzicht van detectie

Hoe OpenClaw gateways aankondigt en vindt.

Configuratie

Configuratiesleutels op het hoogste niveau voor de Gateway.

De Gateway uitvoeren

  • Weigert te starten tenzij gateway.mode=local is ingesteld in ~/.openclaw/openclaw.json. Gebruik --allow-unconfigured voor ad-hoc-/ontwikkeluitvoeringen; dit omzeilt de beveiliging zonder configuratie te schrijven of te repareren.
  • Wanneer bij het opstarten een herstelbare ongeldige configuratie wordt gevonden, biedt een interactieve terminal aan om openclaw doctor --fix uit te voeren en wordt na toestemming eenmaal opnieuw geprobeerd op te starten. Niet-interactieve uitvoeringen repareren nooit automatisch; ze tonen in plaats daarvan de opdracht. Als de gerepareerde configuratie nog steeds ongeldig is, blijft het opstarten geblokkeerd.
  • openclaw onboard --mode local en openclaw setup schrijven gateway.mode=local. Als het configuratiebestand bestaat maar gateway.mode ontbreekt, wordt dit behandeld als een beschadigde/overschreven configuratie en weigert de Gateway local voor je te raden — voer de onboarding opnieuw uit, stel de sleutel handmatig in of geef --allow-unconfigured door.
  • Binden buiten loopback zonder authenticatie wordt geblokkeerd.
  • --bind-waarden lan, tailnet en custom worden momenteel via uitsluitend-IPv4-paden omgezet; uitsluitend-IPv6-configuraties met een eigen host vereisen een IPv4-sidecar of proxy vóór de Gateway.
  • SIGUSR1 activeert na autorisatie een herstart binnen het proces. commands.restart (standaard: ingeschakeld) regelt extern verzonden SIGUSR1; stel dit in op false om handmatige herstarts via besturingssysteemsignalen te blokkeren. De agentgerichte tool gateway is alleen-lezen; agents vragen een herstart aan via de door een mens goedgekeurde delegatietool openclaw.
  • SIGINT/SIGTERM stoppen het proces, maar herstellen geen aangepaste terminalstatus — als je de CLI in een TUI of invoer in raw-modus verpakt, herstel je de terminal zelf vóór het afsluiten.

Opties

number
WebSocket-poort (standaard uit configuratie/omgeving; meestal 18789).
string
Bindmodus: loopback (standaard), lan, tailnet, auto, custom.
string
Gedeeld token voor connect.params.auth.token. Standaard OPENCLAW_GATEWAY_TOKEN wanneer dit is ingesteld.
string
Authenticatiemodus: none, token, password, trusted-proxy.
string
Wachtwoord voor --auth password.
string
Lees het Gateway-wachtwoord uit een bestand.
string
Tailscale-blootstelling: off, serve, funnel.
boolean
Stel de serve-/funnelconfiguratie van Tailscale bij het afsluiten opnieuw in.
boolean
Start zonder gateway.mode=local af te dwingen. Alleen voor ad-hoc-/ontwikkelbootstrap; configuratie wordt niet opgeslagen of gerepareerd.
boolean
Maak een ontwikkelconfiguratie en werkruimte als deze ontbreken (slaat BOOTSTRAP.md over).
boolean
Sta toe dat een ontwikkel-Gateway kanalen automatisch configureert vanuit omgevingsvariabelen in de omgeving. Vereist --dev.
boolean
Stel ontwikkelconfiguratie, inloggegevens, sessies en werkruimte opnieuw in. Vereist --dev.
boolean
Beëindig vóór het starten elke bestaande listener op de doelpoort. In een niet-interactieve shell weigert dit een geverifieerde Gateway-listener te beëindigen; gebruik in plaats daarvan --dev of een geïsoleerde --profile met een vrije poort.
boolean
Uitgebreide logboekregistratie naar stdout/stderr.
boolean
Toon alleen logboeken van de CLI-backend in de console (schakelt ook stdout/stderr in).
string
standaard:"auto"
WebSocket-logboekstijl: auto, full, compact.
boolean
Alias voor --ws-log compact.
boolean
Registreer onbewerkte modelstreamgebeurtenissen in JSONL.
string
JSONL-pad voor de onbewerkte stream.
--claude-cli-logs is een verouderde alias voor --cli-backend-logs. Stel voor --bind custom gateway.customBindHost in op een IPv4-adres. Elk ander adres dan 127.0.0.1 of 0.0.0.0 vereist op dezelfde poort ook 127.0.0.1 voor clients op dezelfde host; het opstarten mislukt als een van beide listeners niet kan binden. Jokerteken 0.0.0.0 voegt geen afzonderlijke vereiste alias toe. Uitsluitend-IPv6-configuraties met een eigen host vereisen een IPv4-sidecar of proxy vóór de Gateway.

De Gateway opnieuw starten

--safe vraagt de actieve Gateway om actief werk vooraf te controleren en één samengevoegde herstart te plannen nadat dat werk is afgerond. De wachttijd is begrensd op 5 minuten; wanneer het tijdsbudget verstrijkt, wordt de herstart geforceerd. --safe kan niet worden gecombineerd met --force of --wait. --skip-deferral omzeilt bij een veilige herstart de uitstelblokkering voor actief werk, zodat de Gateway onmiddellijk opnieuw wordt gestart, zelfs als er blokkeringen worden gemeld. Hiervoor is --safe vereist — gebruik dit wanneer uitstel vastzit door een onbeheersbare taak. --wait <duration> overschrijft het budget voor het afronden van werk bij een gewone (niet-veilige) herstart. Accepteert milliseconden zonder eenheid of de eenheidsachtervoegsels ms, s, m, h, d (bijvoorbeeld 30s, 5m, 1h30m); --wait 0 wacht onbeperkt. Niet compatibel met --force of --safe. --force slaat het afronden van actief werk over en start onmiddellijk opnieuw. Gewoon restart (zonder vlaggen) behoudt het bestaande herstartgedrag van de servicebeheerder.
Inline --password kan zichtbaar zijn in lokale proceslijsten. Geef de voorkeur aan --password-file, de omgeving of een door SecretRef ondersteunde gateway.auth.password.

Externe supervisors

Stel OPENCLAW_SUPERVISOR_MODE=external alleen in wanneer een andere procesbeheerder eigenaar is van de Gateway-levenscyclus. In deze modus:
  • openclaw gateway restart behoudt het bestaande veilige, geforceerde en begrensde wachtgedrag, maar richt zich op de geverifieerde actieve Gateway in plaats van launchd, systemd of Taakplanner.
  • Bewerkingen voor het installeren, starten, stoppen en verwijderen van een systeemeigen service worden geweigerd, met de instructie om de externe supervisor te gebruiken.
  • Zelfupdates van OpenClaw worden geweigerd, zodat de supervisor de Gateway kan stoppen, de runtime kan vervangen en voltooien en deze veilig opnieuw kan starten.
  • Bij een herstart met een nieuw proces wordt vóór een nette afsluiting een begrensde SQLite-overdracht geschreven. Als opslag mislukt, valt de Gateway terug op een herstart binnen het proces in plaats van af te sluiten zonder een bruikbare overdracht.
OPENCLAW_SERVICE_REPAIR_POLICY=external blijft een afzonderlijk Doctor-reparatiebeleid. Het verklaart geen eigenaarschap van de runtime; supervisors die beide gedragingen nodig hebben, moeten beide variabelen instellen. Externe supervisors kunnen via het verborgen machinecontract herstartoverdrachten onderhandelen en verwerken:
Protocolversie 1 ondersteunt de bewerking consume. Bij verwerking worden de verwachte PID en begrensde overdrachtsvelden binnen één onmiddellijke SQLite-transactie gevalideerd. Een geaccepteerde overdracht wordt verwijderd voordat succes wordt geretourneerd, zodat gelijktijdige of herhaalde verwerkers deze niet allebei kunnen accepteren. Een niet-overeenkomende PID wordt bewaard voor de overeenkomende eigenaar; ontbrekende, verlopen en ongeldige rijen geven geen toestemming voor een herstart. Geldige machineverzoeken retourneren JSON met afsluitcode 0, inclusief resultaten zonder herstart. Ongeldige argumenten retourneren reason: "invalid-expected-pid" met afsluitcode 2; fouten in de statusopslag retourneren reason: "store-unavailable" met afsluitcode 1. Supervisors moeten capabilities testen op exact de runtime of launcher die ze zullen gebruiken, in plaats van ondersteuning af te leiden uit een OpenClaw-versietekenreeks of het private SQLite-schema rechtstreeks te lezen.

Gateway-profilering

  • OPENCLAW_GATEWAY_STARTUP_TRACE=1 registreert fasetijden tijdens het opstarten, waaronder eventLoopMax-vertraging per fase en tijden van Plugin-opzoektabellen (installed-index, manifestregister, opstartplanning, owner-map-werk).
  • OPENCLAW_GATEWAY_RESTART_TRACE=1 registreert tot de herstart beperkte restart trace:-regels: signaalafhandeling, afronding van actief werk, afsluitfasen, volgende start, tijd tot gereedheid en geheugenstatistieken.
  • OPENCLAW_DIAGNOSTICS=timeline met OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path> schrijft naar beste vermogen een JSONL-tijdlijn met diagnostiek van het opstarten voor externe QA-harnassen (gelijkwaardig aan configuratie diagnostics.flags: ["timeline"]; het pad blijft uitsluitend via de omgeving instelbaar). Voeg OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 toe om event-loop-samples op te nemen.
  • pnpm build en vervolgens pnpm test:startup:gateway -- --runs 5 --warmup 1 benchmarken het opstarten van de Gateway aan de hand van het gebouwde CLI-invoerpunt: eerste procesuitvoer, /healthz, /readyz, tijdmetingen van de opstarttrace, event-loop-vertraging en timing van Plugin-opzoektabellen.
  • pnpm build en vervolgens pnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5 benchmarken een herstart binnen het proces op macOS of Linux (niet ondersteund op Windows; herstart vereist SIGUSR1). Gebruikt SIGUSR1, schakelt beide traces in het onderliggende proces in en registreert volgende /healthz, volgende /readyz, uitvaltijd, tijd tot gereedheid, CPU, RSS en herstarttracestatistieken.
  • /healthz is levendheid; /readyz is bruikbare gereedheid. Behandel traceregels en benchmarkuitvoer als signalen voor toeschrijving aan de eigenaar, niet als een volledige prestatieconclusie op basis van één tijdspanne of sample.

Een actieve Gateway opvragen

Alle opvraagopdrachten gebruiken WebSocket-RPC.
  • Standaard: leesbaar voor mensen (gekleurd in TTY).
  • --json: machineleesbare JSON (geen opmaak/spinner).
  • --no-color (of NO_COLOR=1): schakel ANSI uit met behoud van de menselijke lay-out.
Wanneer je --url instelt, valt de CLI niet terug op inloggegevens uit de configuratie of omgeving. Geef --token of --password expliciet door. Ontbrekende expliciete inloggegevens zijn een fout.

gateway health

/healthz is een livenessprobe: deze retourneert zodra de server HTTP kan beantwoorden. /readyz is strenger en blijft rood terwijl sidecars van opstartende plugins, kanalen of geconfigureerde hooks nog worden geïnitialiseerd. Lokale of geauthenticeerde gedetailleerde /readyz-antwoorden bevatten een diagnostisch eventLoop-blok (vertraging, benutting, verhouding tot CPU-kernen, degraded-vlag).
number
Richt je op een lokale loopback-Gateway op deze poort. Overschrijft OPENCLAW_GATEWAY_URL en OPENCLAW_GATEWAY_PORT voor deze aanroep.

gateway usage-cost

Haal samenvattingen van gebruikskosten op uit sessielogboeken.
number
standaard:"30"
Aantal op te nemen dagen.
string
Beperk de samenvatting tot één geconfigureerde agent-id.
boolean
Aggregeer over alle geconfigureerde agents. Kan niet worden gecombineerd met --agent.

gateway stability

Haal de recente recorder voor diagnostische stabiliteit op uit een actieve Gateway.
number
standaard:"25"
Maximumaantal op te nemen recente gebeurtenissen (max. 1000).
string
Filter op type diagnostische gebeurtenis, bijvoorbeeld payload.large of diagnostic.memory.pressure.
number
Neem alleen gebeurtenissen na een diagnostisch volgnummer op.
string
Lees een opgeslagen stabiliteitsbundel in plaats van de actieve Gateway aan te roepen. --bundle latest (of alleen --bundle) selecteert de nieuwste bundel in de statusmap; je kunt ook rechtstreeks een pad naar een bundel-JSON doorgeven.
boolean
Schrijf een deelbaar ZIP-bestand met ondersteuningsdiagnostiek in plaats van stabiliteitsdetails af te drukken.
string
Uitvoerpad voor --export.
  • Records bewaren operationele metagegevens: gebeurtenisnamen, aantallen, bytegroottes, geheugenmetingen, wachtrij-/sessiestatus, goedkeurings-id’s, kanaal-/pluginnamen en geredigeerde sessiesamenvattingen. Ze sluiten chattekst, Webhook-bodies, tooluitvoer, onbewerkte request-/response-bodies, tokens, cookies, geheime waarden, hostnamen en onbewerkte sessie-id’s uit. Stel diagnostics.enabled: false in om de recorder volledig uit te schakelen.
  • Fatale Gateway-afsluitingen, time-outs bij het afsluiten en opstartfouten na een herstart schrijven dezelfde diagnostische momentopname naar ~/.openclaw/logs/stability/openclaw-stability-*.json wanneer de recorder gebeurtenissen bevat. Inspecteer de nieuwste bundel met openclaw gateway stability --bundle latest; --limit, --type en --since-seq zijn ook van toepassing op bundeluitvoer.

gateway diagnostics export

Schrijf een lokaal diagnostisch ZIP-bestand dat is ontworpen voor bugrapporten. Zie Diagnostische export voor het privacymodel en de inhoud van de bundel.
string
Pad voor het uitgevoerde ZIP-bestand. Standaard wordt een ondersteuningsexport in de statusmap gebruikt.
number
standaard:"5000"
Maximumaantal op te nemen opgeschoonde logboekregels.
number
standaard:"1000000"
Maximumaantal te inspecteren logboekbytes.
string
WebSocket-URL van de Gateway voor de statusmomentopname.
string
Gateway-token voor de statusmomentopname.
string
Gateway-wachtwoord voor de statusmomentopname.
number
standaard:"3000"
Time-out voor de status-/gezondheidsmomentopname.
boolean
Sla het zoeken naar een opgeslagen stabiliteitsbundel over.
boolean
Druk het geschreven pad, de grootte en het manifest af als JSON.
De export bundelt: manifest.json (bestandsinventaris), summary.md (Markdown-samenvatting), diagnostics.json (samenvatting op hoofdniveau van configuratie/logboeken/detectie/stabiliteit/status/gezondheid), config/sanitized.json, status/gateway-status.json, health/gateway-health.json, logs/openclaw-sanitized.jsonl en stability/latest.json wanneer er een bundel bestaat. Deze is ontworpen om te worden gedeeld. De export bewaart operationele details die nuttig zijn voor foutopsporing — veilige logboekvelden, namen van subsystemen, statuscodes, tijdsduren, geconfigureerde modi, poorten, plugin-/provider-id’s, niet-geheime functie-instellingen en geredigeerde operationele logboekberichten — en laat chattekst, Webhook-bodies, tooluitvoer, inloggegevens, cookies, account-/bericht-id’s, prompt-/instructietekst, hostnamen en geheime waarden weg of redigeert deze. Wanneer een logboekbericht lijkt op payloadtekst van een gebruiker, chat of tool (bijvoorbeeld “gebruiker zei”, “chattekst”, “tooluitvoer”, “Webhook-body”), bewaart de export alleen het feit dat een bericht is weggelaten, plus het aantal bytes ervan.

gateway status

Toont de Gateway-service (launchd/systemd/schtasks), plus een optionele verbindings-/authenticatieprobe.
string
Voeg een expliciet probedoel toe. De geconfigureerde externe host en localhost worden nog steeds geprobed.
string
Tokenauthenticatie voor de probe.
string
Wachtwoordauthenticatie voor de probe.
number
standaard:"10000"
Time-out van de probe.
boolean
Sla de verbindingsprobe over (alleen serviceweergave).
boolean
Scan ook services op systeemniveau.
boolean
Breid de verbindingsprobe uit tot een leesprobe en sluit af met een niet-nulcode als deze mislukt. Kan niet worden gecombineerd met --no-probe.
  • Blijft beschikbaar voor diagnostiek, zelfs wanneer de lokale CLI-configuratie ontbreekt of ongeldig is.
  • De standaarduitvoer bewijst de servicestatus, WebSocket-verbinding en de authenticatiecapaciteit die tijdens de handshake zichtbaar is — niet lees-/schrijf-/beheerbewerkingen.
  • Probes wijzigen niets voor de eerste apparaatauthenticatie: ze hergebruiken een bestaand gecachet apparaattoken wanneer dat bestaat, maar maken nooit een nieuwe CLI-apparaatidentiteit of alleen-lezen-koppelingsrecord aan uitsluitend om de status te controleren.
  • Lost geconfigureerde SecretRefs voor probe-authenticatie waar mogelijk op. Als een vereiste SecretRef niet is opgelost, rapporteert --json rpc.authWarning wanneer de probe voor verbinding/authenticatie mislukt; geef --token/--password expliciet door of herstel de geheime bron. Waarschuwingen over niet-opgeloste authenticatie worden onderdrukt zodra de probe slaagt.
  • JSON-uitvoer bevat gateway.version wanneer de actieve Gateway dit rapporteert; --require-rpc kan terugvallen op de RPC-payload status.runtimeVersion als de handshakeprobe geen versiemetagegevens kan leveren.
  • Gebruik --require-rpc in scripts/automatisering wanneer een luisterende service niet voldoende is en RPC met leesbereik ook gezond moet zijn.
  • --deep scant op extra installaties van launchd/systemd/schtasks; wanneer meerdere Gateway-achtige services worden gevonden, drukt de voor mensen leesbare uitvoer opschoontips af (voer doorgaans één Gateway per machine uit) en rapporteert deze indien relevant een recente overdracht bij een herstart door de supervisor.
  • --deep voert ook configuratievalidatie uit in pluginbewuste modus (pluginValidation: "full") en toont waarschuwingen uit pluginmanifesten (bijvoorbeeld ontbrekende metagegevens voor kanaalconfiguratie). De standaardwaarde gateway status behoudt het snelle alleen-lezen-pad dat pluginvalidatie overslaat.
  • De voor mensen leesbare uitvoer bevat het opgeloste pad van het bestandslogboek, plus de configuratiepaden en geldigheid van CLI versus service, om afwijkingen in het profiel of de statusmap te helpen diagnosticeren.
  • De voor mensen leesbare uitvoer bevat Gateway heap: met de toegepaste limiet en de adaptieve afleiding daarvan. JSON-uitvoer stelt hetzelfde rapport beschikbaar als service.gatewayHeap.
  • Controles op afwijkingen in service-authenticatie lezen zowel Environment= als EnvironmentFile= uit de unit (inclusief %h, paden tussen aanhalingstekens, meerdere bestanden en optionele --bestanden).
  • Lost gateway.auth.token-SecretRefs op met behulp van de samengevoegde runtime-omgeving (eerst de omgeving van de serviceopdracht, daarna als terugval de procesomgeving).
  • Controles op tokenafwijkingen slaan het oplossen van het configuratietoken over wanneer tokenauthenticatie niet daadwerkelijk actief is (gateway.auth.mode expliciet password/none/trusted-proxy, of wanneer de modus niet is ingesteld en het wachtwoord kan prevaleren en geen tokenkandidaat kan prevaleren).

gateway probe

De opdracht om “alles te debuggen”. Deze probet altijd:
  • je geconfigureerde externe Gateway (indien ingesteld), en
  • localhost (loopback), zelfs als een externe Gateway is geconfigureerd.
Als je --url doorgeeft, wordt dat expliciete doel vóór beide toegevoegd. De voor mensen leesbare uitvoer labelt doelen als URL (explicit), Remote (configured) / Remote (configured, inactive) en Local loopback.
Als meerdere probedoelen bereikbaar zijn, worden ze allemaal afgedrukt. Een SSH-tunnel, TLS-/proxy-URL en geconfigureerde externe URL kunnen naar dezelfde Gateway verwijzen, zelfs met verschillende transportpoorten; multiple_gateways is gereserveerd voor afzonderlijke of qua identiteit ambigue bereikbare Gateways. Het uitvoeren van meerdere Gateways wordt ondersteund voor geïsoleerde profielen (bijvoorbeeld een herstelbot), maar de meeste installaties voeren één Gateway uit.
number
Gebruik deze poort voor het lokale loopback-probedoel en de externe poort van de SSH-tunnel. Zonder --url selecteert dit alleen het lokale loopback-doel in plaats van de geconfigureerde omgevings-URL van de Gateway, omgevingspoort of externe doelen.
  • Reachable: yes betekent dat ten minste één doel een WebSocket-verbinding heeft geaccepteerd.
  • Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only rapporteert wat de probe over authenticatie kon bewijzen, los van de bereikbaarheid.
  • Read probe: ok betekent dat RPC-detailaanroepen met leesbereik (health/status/system-presence/config.get) ook zijn geslaagd.
  • Read probe: limited - missing scope: operator.read betekent dat de verbinding is geslaagd, maar RPC met leesbereik beperkt is. Dit wordt gerapporteerd als verminderde bereikbaarheid, niet als een volledige mislukking.
  • Read probe: failed na Connect: ok betekent dat de WebSocket verbinding heeft gemaakt, maar dat daaropvolgende leesdiagnostiek een time-out kreeg of mislukte — eveneens verminderd, niet onbereikbaar.
  • Net als gateway status hergebruikt de probe bestaande gecachete apparaatauthenticatie, maar maakt deze geen apparaatidentiteit of koppelingsstatus voor het eerste gebruik aan.
  • De afsluitcode is alleen niet-nul wanneer geen enkel geprobed doel bereikbaar is.
Hoofdniveau:
  • ok: ten minste één doel is bereikbaar.
  • degraded: ten minste één doel heeft een verbinding geaccepteerd, maar heeft de volledige gedetailleerde RPC-diagnostiek niet voltooid.
  • capability: beste mogelijkheid die voor alle bereikbare doelen is waargenomen (read_only, write_capable, admin_capable, pairing_pending, connected_no_operator_scope of unknown).
  • primaryTargetId: beste doel om als actieve winnaar te behandelen, in deze volgorde: expliciete URL, SSH-tunnel, geconfigureerd extern doel, lokale loopback.
  • warnings[]: waarschuwingsrecords op basis van beste inspanning met code, message, optioneel targetIds.
  • network: hints voor lokale loopback-/tailnet-URL’s, afgeleid van de huidige configuratie en het hostnetwerk.
  • discovery.timeoutMs / discovery.count: het daadwerkelijk gebruikte detectiebudget/aantal resultaten voor deze proberonde.
Per doel (targets[].connect): ok (bereikbaarheid + classificatie als gedegradeerd), rpcOk (volledig geslaagde gedetailleerde RPC), scopeLimited (gedetailleerde RPC mislukt door ontbrekend operatorbereik).Per doel (targets[].auth): role en scopes gerapporteerd in hello-ok wanneer beschikbaar, plus de weergegeven classificatie capability.
  • ssh_tunnel_failed: het instellen van de SSH-tunnel is mislukt; de opdracht is teruggevallen op directe probes.
  • multiple_gateways: verschillende Gateway-identiteiten waren bereikbaar, of OpenClaw kon niet aantonen dat de bereikbare doelen dezelfde Gateway zijn. Een SSH-tunnel, proxy-URL of geconfigureerde externe URL naar dezelfde Gateway activeert dit niet.
  • auth_secretref_unresolved: een geconfigureerde SecretRef voor authenticatie kon voor een mislukt doel niet worden omgezet.
  • probe_scope_limited: de WebSocket-verbinding is geslaagd, maar de leesprobe werd beperkt door ontbrekende operator.read.
  • local_tls_runtime_unavailable: TLS voor de lokale Gateway is ingeschakeld, maar OpenClaw kon de vingerafdruk van het lokale certificaat niet laden.

Extern via SSH (gelijkwaardig aan de Mac-app)

De modus “Remote over SSH” van de macOS-app gebruikt lokale poortdoorschakeling, zodat een externe Gateway die alleen via loopback bereikbaar is, toegankelijk wordt op ws://127.0.0.1:<port>. CLI-equivalent:
string
user@host of user@host:port (poort is standaard 22).
string
Identiteitsbestand.
boolean
Kies de eerste gedetecteerde Gateway-host als SSH-doel uit het omgezette detectie-eindpunt (local. plus het geconfigureerde wide-area-domein, indien aanwezig). Hints die alleen in TXT staan, worden genegeerd.
Configuratiestandaarden (optioneel): gateway.remote.sshTarget, gateway.remote.sshIdentity.

gateway call <method>

RPC-hulpprogramma op laag niveau.
string
standaard:"{}"
JSON-objecttekenreeks voor parameters.
string
WebSocket-URL van de Gateway.
string
Gateway-token.
string
Gateway-wachtwoord.
number
standaard:"10000"
Time-outbudget.
boolean
Voornamelijk voor RPC’s in agentstijl die tussentijdse gebeurtenissen streamen vóór een definitieve payload.
boolean
Machineleesbare JSON-uitvoer.
--params moet geldige JSON zijn en elke methode valideert haar eigen parameterstructuur (extra of verkeerd benoemde velden worden geweigerd).

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 geheimenbeheer of een hulpprogramma om als een andere gebruiker uit te voeren. De wrapper ontvangt de normale Gateway-argumenten en is ervoor verantwoordelijk uiteindelijk openclaw of Node met die argumenten uit te voeren via exec.
Je kunt de wrapper ook via de omgeving instellen. gateway install controleert of het pad een uitvoerbaar bestand is, schrijft de wrapper naar de service-ProgramArguments en bewaart OPENCLAW_WRAPPER in de serviceomgeving voor latere gedwongen herinstallaties, updates en reparaties door doctor.
Als je een bewaarde wrapper wilt verwijderen, maak je OPENCLAW_WRAPPER leeg tijdens de herinstallatie:
  • gateway status: --url, --token, --password, --timeout, --no-probe, --require-rpc, --deep, --json
  • gateway install: --port, --runtime <node> (standaard: node), --token, --wrapper <path>, --force, --json
  • gateway restart: --safe, --skip-deferral, --force, --wait <duration>, --json
  • gateway uninstall|start: --json
  • gateway stop: --disable, --force, --json
  • gateway start is idempotent: wanneer de beheerde service al actief is, rapporteert de opdracht het actieve proces en laat dit ongemoeid. Een geladen maar gestopte service wordt zoals voorheen gestart.
  • Gebruik gateway restart om een beheerde service opnieuw te starten. Koppel gateway stop en gateway start niet aan elkaar als vervanging voor opnieuw starten.
  • In een niet-interactieve shell vereist gateway stop de optie --force. Interactieve terminals behouden het bestaande gedrag zonder prompt. Geef voor automatisering en tests de voorkeur aan gateway run --dev of een geïsoleerde --profile met een vrije poort.
  • Op macOS gebruikt gateway stop standaard launchctl bootout, waarmee de LaunchAgent uit de huidige opstartsessie wordt verwijderd zonder een uitschakeling permanent te bewaren — automatisch herstel via KeepAlive blijft actief voor toekomstige crashes en gateway start schakelt de service weer correct in zonder een handmatige launchctl enable. Geef --disable door om KeepAlive en RunAtLoad permanent te onderdrukken, zodat de Gateway pas opnieuw wordt gestart na de volgende expliciete gateway start; gebruik dit wanneer een handmatige stop ook na opnieuw opstarten van het systeem moet blijven gelden.
  • Mutaties in de Gateway-levenscyclus voegen op basis van beste inspanning auditrecords met sleutel-waardeparen toe aan <state-dir>/logs/gateway-restart.log, waaronder start-, stop- en herstartbewerkingen via de CLI, veilige herstartverzoeken, herstarts door de supervisor en losgekoppelde overdrachten.
  • Levenscyclusopdrachten accepteren --json voor scripts.
  • gateway install schrijft een uitsluitend voor de heap bestemde waarde voor NODE_OPTIONS voor de beheerde Gateway-service. De waarde richt zich op 50% van het beperkte geheugen wanneer Node een container- of servicelimiet rapporteert, en anders op 50% van het fysieke geheugen.
  • Het nominale doelbereik is 2048–8192 MiB, met een aanvullende limiet die 75% ruimte voor native geheugen vrijhoudt. Op kleine hosts kan deze limiet ervoor zorgen dat de toegepaste limiet onder de nominale ondergrens van 2048 MiB ligt.
  • Een geldige expliciete --max-old-space-size die al in de geïnstalleerde service is opgeslagen, blijft behouden bij gedwongen herinstallaties en reparaties door doctor. Andere NODE_OPTIONS-vlaggen worden niet overgenomen in de beheerde service.
  • NODE_OPTIONS uit de omringende shell overschrijft dit beleid niet. Gebruik gateway status of doctor om de geïnstalleerde waarde te inspecteren; voer openclaw gateway install --force uit om oudere servicemetadata zonder beheerde heapinstelling opnieuw te genereren.
  • Het beleid geldt alleen voor de beheerde Gateway-service. gateway run op de voorgrond, Node-services en handmatig geschreven supervisoreenheden behouden hun eigen runtimeconfiguratie.
  • Wanneer tokenauthenticatie een token vereist en gateway.auth.token door SecretRef wordt beheerd, controleert gateway install of de SecretRef kan worden omgezet, maar wordt het omgezette token niet opgeslagen in de omgevingsmetadata van de service.
  • Als tokenauthenticatie een token vereist en de geconfigureerde SecretRef voor het token niet kan worden omgezet, wordt de installatie veilig geblokkeerd in plaats van terug te vallen op het opslaan van platte tekst.
  • Geef voor wachtwoordauthenticatie op gateway run de voorkeur aan OPENCLAW_GATEWAY_PASSWORD, --password-file of een door SecretRef ondersteunde gateway.auth.password boven een inline --password.
  • In de afgeleide authenticatiemodus versoepelt OPENCLAW_GATEWAY_PASSWORD die alleen in de shell is ingesteld de tokenvereisten voor installatie niet; gebruik duurzame configuratie (gateway.auth.password of configuratie-env) wanneer je een beheerde service installeert.
  • Als zowel gateway.auth.token als gateway.auth.password zijn geconfigureerd en gateway.auth.mode niet is ingesteld, wordt de installatie geblokkeerd totdat de modus expliciet is ingesteld.

Gateways detecteren (Bonjour)

gateway discover scant naar Gateway-bakens (_openclaw-gw._tcp).
  • Multicast DNS-SD: local.
  • Unicast DNS-SD (wide-area Bonjour): kies een domein (bijvoorbeeld openclaw.internal.) en stel split DNS plus een DNS-server in; zie Bonjour.
Alleen Gateways waarvoor Bonjour-detectie is ingeschakeld (standaard) adverteren het baken. TXT-hints op elk baken: role (hint voor Gateway-rol), transport (transporthint, bijvoorbeeld gateway), gatewayPort (WebSocket-poort, meestal 18789), tailnetDns (MagicDNS-hostnaam, indien beschikbaar), gatewayTls / gatewayTlsSha256 (TLS ingeschakeld + certificaatvingerafdruk). sshPort en cliPath worden alleen gepubliceerd in de volledige detectiemodus (discovery.mdns.mode: "full"; standaard is "minimal", waarin ze worden weggelaten — clients gebruiken dan standaard poort 22 voor SSH-doelen).

gateway discover

number
standaard:"2000"
Time-out per opdracht (bladeren/omzetten).
boolean
Machineleesbare uitvoer (schakelt ook opmaak/spinner uit).
Voorbeelden:
  • Scant local. plus het geconfigureerde wide-area-domein wanneer dit is ingeschakeld.
  • wsUrl in JSON-uitvoer wordt afgeleid van het omgezette service-eindpunt, niet van hints die alleen in TXT staan, zoals lanHost of tailnetDns.
  • discovery.mdns.mode bepaalt de publicatie van sshPort/cliPath op zowel local. mDNS als wide-area DNS-SD (zie hierboven).

Gerelateerd