CLI commands
Gateway
Il Gateway è il server WebSocket di OpenClaw (canali, nodi, sessioni, hook). Tutti i sottocomandi seguenti sono disponibili in openclaw gateway ....
Configurazione mDNS locale + DNS-SD su rete geografica.
Come OpenClaw pubblicizza e rileva i gateway.
Chiavi di configurazione di primo livello del gateway.
Eseguire il Gateway
openclaw gatewayopenclaw gateway run # forma equivalente ed esplicitaComportamento all'avvio
- Rifiuta di avviarsi a meno che
gateway.mode=localnon sia impostato in~/.openclaw/openclaw.json. Usa--allow-unconfiguredper esecuzioni ad hoc/di sviluppo; l'opzione ignora il controllo senza scrivere né riparare la configurazione. openclaw onboard --mode localeopenclaw setupscrivonogateway.mode=local. Se il file di configurazione esiste magateway.modeè assente, la configurazione viene considerata danneggiata o sovrascritta e il Gateway rifiuta di presumerelocal: esegui nuovamente l'onboarding, imposta manualmente la chiave oppure passa--allow-unconfigured.- L'associazione a interfacce diverse da local loopback senza autenticazione viene bloccata.
- Attualmente i valori
lan,tailnetecustomdi--bindvengono risolti esclusivamente tramite percorsi IPv4; le configurazioni con host personalizzato esclusivamente IPv6 richiedono un sidecar IPv4 o un proxy davanti al Gateway. SIGUSR1attiva un riavvio interno al processo quando autorizzato.commands.restart(predefinito: abilitato) controlla i segnaliSIGUSR1inviati dall'esterno; impostalo sufalseper bloccare i riavvii manuali tramite segnale del sistema operativo, continuando a consentire il riavvio tramite il comandogateway restart, lo strumento gateway e l'applicazione o l'aggiornamento della configurazione.SIGINT/SIGTERMarrestano il processo ma non ripristinano lo stato personalizzato del terminale: se incorpori la CLI in una TUI o usi un input in modalità raw, ripristina autonomamente il terminale prima dell'uscita.
Opzioni
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Porta WebSocket (valore predefinito da configurazione/ambiente; solitamente 18789).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYmluZCA8bW9kZQ
" type="string">
Modalità di associazione: loopback (predefinita), lan, tailnet, auto, custom.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
Token condiviso per connect.params.auth.token. Il valore predefinito è OPENCLAW_GATEWAY_TOKEN, se impostato.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYXV0aCA8bW9kZQ
" type="string">
Modalità di autenticazione: none, token, password, trusted-proxy.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcGFzc3dvcmQgPHBhc3N3b3Jk
" type="string">
Password per --auth password.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdGFpbHNjYWxlIDxtb2Rl
" type="string">
Esposizione tramite Tailscale: off, serve, funnel.
--tailscale-reset-on-exitbooleanReimposta la configurazione serve/funnel di Tailscale all'arresto.
--allow-unconfiguredbooleanAvvia senza imporre gateway.mode=local. Solo per bootstrap ad hoc/di sviluppo; non rende persistente né ripara la configurazione.
--devbooleanCrea una configurazione e un'area di lavoro di sviluppo, se assenti (ignora BOOTSTRAP.md).
--resetbooleanReimposta configurazione di sviluppo, credenziali, sessioni e area di lavoro. Richiede --dev.
--forcebooleanTermina qualsiasi listener esistente sulla porta di destinazione prima dell'avvio.
--verbosebooleanRegistrazione dettagliata su stdout/stderr.
--cli-backend-logsbooleanMostra nella console solo i log del backend della CLI (abilita anche stdout/stderr).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0td3MtbG9nIDxzdHlsZQ
" type="string" default="auto">
Stile dei log WebSocket: auto, full, compact.
--compactbooleanAlias di --ws-log compact.
--raw-streambooleanRegistra in JSONL gli eventi raw del flusso del modello.
--claude-cli-logs è un alias deprecato di --cli-backend-logs.
Per --bind custom, imposta gateway.customBindHost su un indirizzo IPv4. Qualsiasi indirizzo diverso da 127.0.0.1 o 0.0.0.0 richiede anche 127.0.0.1 sulla stessa porta per i client sullo stesso host; l'avvio non riesce se uno dei due listener non può effettuare l'associazione. Il carattere jolly 0.0.0.0 non aggiunge un alias obbligatorio separato. Le configurazioni con host personalizzato esclusivamente IPv6 richiedono un sidecar IPv4 o un proxy davanti al Gateway.
Riavviare il Gateway
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --forceopenclaw gateway restart --wait 30s--safe richiede al Gateway in esecuzione di verificare preliminarmente le attività attive e pianificare un unico riavvio accorpato dopo il loro completamento. L'attesa è limitata da gateway.reload.deferralTimeoutMs (valore predefinito: 5 minuti / 300000); allo scadere del limite, il riavvio viene forzato. Imposta deferralTimeoutMs: 0 per attendere indefinitamente, con avvisi periodici sulle attività ancora in sospeso, anziché forzare il riavvio. --safe non può essere combinato con --force o --wait.
--skip-deferral ignora il controllo di rinvio basato sulle attività attive durante un riavvio sicuro, pertanto il Gateway si riavvia immediatamente anche in presenza di impedimenti segnalati. Richiede --safe: usalo quando un rinvio è bloccato da un'attività fuori controllo.
--wait <duration> sostituisce il limite di attesa per il completamento delle attività durante un normale riavvio non sicuro. Accetta millisecondi senza suffisso oppure i suffissi di unità ms, s, m, h, d (ad esempio 30s, 5m, 1h30m); --wait 0 attende indefinitamente. Non è compatibile con --force o --safe.
--force ignora l'attesa per il completamento delle attività attive e riavvia immediatamente. Il semplice comando restart (senza opzioni) mantiene il comportamento di riavvio esistente del gestore dei servizi.
Profilazione del Gateway
OPENCLAW_GATEWAY_STARTUP_TRACE=1registra le durate delle fasi durante l'avvio, inclusi il ritardoeventLoopMaxper ciascuna fase e le durate delle tabelle di ricerca dei plugin (indice delle installazioni, registro dei manifest, pianificazione dell'avvio, elaborazione della mappa dei proprietari).OPENCLAW_GATEWAY_RESTART_TRACE=1registra righerestart trace:relative al riavvio: gestione dei segnali, attesa per il completamento delle attività attive, fasi di arresto, avvio successivo, tempo necessario per essere pronto e metriche della memoria.OPENCLAW_DIAGNOSTICS=timelineconOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>scrive, secondo il principio del massimo sforzo, una cronologia diagnostica JSONL dell'avvio destinata a sistemi QA esterni (equivalente alla configurazionediagnostics.flags: ["timeline"]; il percorso resta configurabile solo tramite ambiente). AggiungiOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1per includere campioni del ciclo degli eventi.pnpm buildseguito dapnpm test:startup:gateway -- --runs 5 --warmup 1misura le prestazioni di avvio del Gateway rispetto al punto di ingresso della CLI compilata: primo output del processo,/healthz,/readyz, durate della traccia di avvio, ritardo del ciclo degli eventi e durata delle tabelle di ricerca dei plugin.pnpm buildseguito dapnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5misura le prestazioni del riavvio interno al processo su macOS o Linux (non supportato su Windows; il riavvio richiedeSIGUSR1). UsaSIGUSR1, abilita entrambe le tracce nel processo figlio e registra le successive risposte di/healthze/readyz, il periodo di indisponibilità, il tempo necessario per essere pronto, CPU, RSS e le metriche della traccia di riavvio./healthzindica che il servizio è attivo;/readyzindica che è pronto per l'uso. Considera le righe di traccia e l'output dei benchmark come segnali per attribuire la responsabilità ai componenti, non come una conclusione completa sulle prestazioni basata su un singolo intervallo o campione.
Interrogare un Gateway in esecuzione
Tutti i comandi di interrogazione usano RPC tramite WebSocket.
Modalità di output
- Predefinita: leggibile dall'utente (a colori in una TTY).
--json: JSON leggibile dalla macchina (senza stile o indicatore di attività).--no-color(oppureNO_COLOR=1): disabilita ANSI mantenendo il formato leggibile dall'utente.
Opzioni condivise
--url <url>: URL WebSocket del Gateway.--token <token>: token del Gateway.--password <password>: password del Gateway.--timeout <ms>: timeout/limite temporale (il valore predefinito varia in base al comando; consulta ciascun comando di seguito).--expect-final: attende una risposta "finale" (chiamate dell'agente).
gateway health
openclaw gateway health --url ws://127.0.0.1:18789openclaw gateway health --port 18789/healthz è una verifica dell'attività: restituisce una risposta non appena il server è in grado di rispondere tramite HTTP. /readyz è più rigoroso e resta in stato di errore mentre i sidecar dei plugin di avvio, i canali o gli hook configurati sono ancora in fase di inizializzazione. Le risposte dettagliate locali o autenticate di /readyz includono un blocco diagnostico eventLoop (ritardo, utilizzo, rapporto rispetto ai core della CPU, indicatore degraded).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Seleziona un Gateway local loopback su questa porta. Per questa chiamata, sostituisce OPENCLAW_GATEWAY_URL e OPENCLAW_GATEWAY_PORT.
gateway usage-cost
Recupera i riepiloghi dei costi di utilizzo dai log delle sessioni.
openclaw gateway usage-costopenclaw gateway usage-cost --days 7openclaw gateway usage-cost --agent work --jsonopenclaw gateway usage-cost --all-agentsopenclaw gateway usage-cost --json"--days"--agent--all-agentsbooleanAggrega i dati di tutti gli agenti configurati. Non può essere combinato con --agent.
gateway stability
Recupera le registrazioni diagnostiche recenti sulla stabilità da un Gateway in esecuzione.
openclaw gateway stabilityopenclaw gateway stability --type payload.largeopenclaw gateway stability --bundle latestopenclaw gateway stability --bundle latest --exportopenclaw gateway stability --jsonOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0
" type="number" default="25">
Numero massimo di eventi recenti da includere (massimo 1000).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
Filtra per tipo di evento diagnostico, ad esempio payload.large o diagnostic.memory.pressure.
"--since-seq--bundle [path]stringLegge un pacchetto di stabilità persistente anziché chiamare il Gateway in esecuzione. --bundle latest (o il solo --bundle) seleziona il pacchetto più recente nella directory di stato; puoi anche passare direttamente il percorso di un pacchetto JSON.
--exportbooleanScrive un archivio ZIP condivisibile con la diagnostica per l'assistenza anziché stampare i dettagli sulla stabilità.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
Percorso di output per --export.
Privacy e comportamento dei pacchetti
- Le registrazioni conservano metadati operativi: nomi degli eventi, conteggi, dimensioni in byte, rilevazioni della memoria, stato delle code e delle sessioni, ID delle approvazioni, nomi di canali e plugin e riepiloghi anonimizzati delle sessioni. Escludono testo delle chat, corpi dei webhook, output degli strumenti, corpi raw delle richieste e delle risposte, token, cookie, valori segreti, nomi host e ID raw delle sessioni. Imposta
diagnostics.enabled: falseper disabilitare completamente il registratore. - Le uscite irreversibili del Gateway, i timeout di arresto e gli errori di avvio durante un riavvio scrivono la stessa istantanea diagnostica in
~/.openclaw/logs/stability/openclaw-stability-*.jsonquando il registratore contiene eventi. Esamina il pacchetto più recente conopenclaw gateway stability --bundle latest;--limit,--typee--since-seqsi applicano anche all'output dei pacchetti.
gateway diagnostics export
Scrive un archivio ZIP locale con la diagnostica, progettato per le segnalazioni di bug. Per il modello di privacy e il contenuto del pacchetto, consulta Esportazione della diagnostica.
openclaw gateway diagnostics exportopenclaw gateway diagnostics export --output openclaw-diagnostics.zipopenclaw gateway diagnostics export --json"--log-lines"--log-bytes"--url"--token"--password"--timeout--no-stability-bundlebooleanIgnora la ricerca del pacchetto di stabilità persistente.
--jsonbooleanStampa in formato JSON il percorso scritto, le dimensioni e il manifesto.
L'esportazione raggruppa: manifest.json (inventario dei file), summary.md (riepilogo Markdown), diagnostics.json (riepilogo di primo livello di configurazione/log/rilevamento/stabilità/stato/integrità), config/sanitized.json, status/gateway-status.json, health/gateway-health.json, logs/openclaw-sanitized.jsonl e stability/latest.json quando esiste un pacchetto.
È progettata per essere condivisa. Mantiene i dettagli operativi utili per il debug — campi di log sicuri, nomi dei sottosistemi, codici di stato, durate, modalità configurate, porte, ID di plugin/provider, impostazioni non segrete delle funzionalità e messaggi operativi di log oscurati — e omette o oscura il testo delle chat, i corpi dei webhook, gli output degli strumenti, le credenziali, i cookie, gli identificatori di account/messaggi, il testo di prompt/istruzioni, i nomi host e i valori segreti. Quando un messaggio di log sembra contenere il testo di un payload utente/chat/strumento (ad es. "l'utente ha detto", "testo della chat", "output dello strumento", "corpo del webhook"), l'esportazione conserva solo l'indicazione che un messaggio è stato omesso e il relativo numero di byte.
gateway status
Mostra il servizio Gateway (launchd/systemd/schtasks) insieme a una verifica facoltativa di connettività/autenticazione.
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc"--url"--token"--password"--timeout--no-probebooleanSalta la verifica della connettività (visualizzazione del solo servizio).
--deepbooleanAnalizza anche i servizi a livello di sistema.
--require-rpcbooleanEstende la verifica della connettività a una verifica di lettura e termina con un codice diverso da zero in caso di errore. Non può essere combinato con --no-probe.
Semantica dello stato
- Rimane disponibile per la diagnostica anche quando la configurazione CLI locale è mancante o non valida.
- L'output predefinito verifica lo stato del servizio, la connessione WebSocket e la capacità di autenticazione visibile durante l'handshake, non le operazioni di lettura/scrittura/amministrazione.
- Le verifiche non apportano modifiche all'autenticazione iniziale del dispositivo: riutilizzano un token del dispositivo già memorizzato nella cache, se presente, ma non creano mai una nuova identità CLI del dispositivo o un record di associazione in sola lettura al solo scopo di controllare lo stato.
- Quando possibile, risolve i SecretRef di autenticazione configurati per autenticare la verifica. Se un SecretRef obbligatorio non viene risolto,
--jsonsegnalarpc.authWarningquando la connettività/autenticazione della verifica non riesce; passa esplicitamente--token/--passwordoppure correggi l'origine del segreto. Gli avvisi relativi all'autenticazione non risolta vengono soppressi quando la verifica riesce. - L'output JSON include
gateway.versionquando il Gateway in esecuzione lo segnala;--require-rpcpuò ricorrere al payload RPCstatus.runtimeVersionse la verifica dell'handshake non riesce a fornire i metadati della versione. - Usa
--require-rpcnegli script e nelle automazioni quando un servizio in ascolto non è sufficiente ed è necessario che anche l'RPC con ambito di lettura sia operativo. --deepcerca installazioni launchd/systemd/schtasks aggiuntive; quando vengono trovati più servizi simili a Gateway, l'output leggibile mostra suggerimenti per la pulizia (in genere, eseguire un solo Gateway per macchina) e segnala, quando pertinente, un recente passaggio di consegne dovuto al riavvio del supervisore.--deepesegue inoltre la convalida della configurazione in modalità consapevole dei Plugin (pluginValidation: "full") e mostra gli avvisi del manifesto dei Plugin (ad es. metadati mancanti della configurazione del canale). Il comando predefinitogateway statusmantiene il rapido percorso in sola lettura che salta la convalida dei Plugin.- L'output leggibile include il percorso risolto del file di log, oltre ai percorsi e alla validità delle configurazioni della CLI e del servizio, per facilitare la diagnosi delle divergenze del profilo o della directory di stato.
Controlli della divergenza dell'autenticazione di systemd su Linux
- I controlli della divergenza dell'autenticazione del servizio leggono sia
Environment=siaEnvironmentFile=dall'unità (inclusi%h, percorsi tra virgolette, più file e file facoltativi con-). - Risolve i SecretRef di
gateway.auth.tokenusando l'ambiente di runtime unificato (prima l'ambiente del comando del servizio, quindi l'ambiente del processo come ripiego). - I controlli della divergenza del token saltano la risoluzione del token di configurazione quando l'autenticazione tramite token non è effettivamente attiva (
gateway.auth.modeimpostato esplicitamente supassword/none/trusted-proxy, oppure modalità non impostata quando la password può avere la precedenza e nessun token candidato può prevalere).
gateway probe
Il comando per il "debug completo". Verifica sempre:
- il Gateway remoto configurato (se impostato) e
- localhost (local loopback), anche se è configurato un endpoint remoto.
Passare --url aggiunge tale destinazione esplicita prima di entrambe. L'output leggibile etichetta le destinazioni come URL (esplicito), Remoto (configurato) / Remoto (configurato, inattivo) e Local loopback.
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --port 18789OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Usa questa porta per la destinazione di verifica local loopback e come porta remota del tunnel SSH. Senza --url, seleziona solo la destinazione local loopback invece dell'URL dell'ambiente Gateway configurato, della porta dell'ambiente o delle destinazioni remote.
Interpretazione
Raggiungibile: sìsignifica che almeno una destinazione ha accettato una connessione WebSocket.Capacità: sola lettura|con possibilità di scrittura|con possibilità di amministrazione|associazione in sospeso|sola connessioneindica ciò che la verifica ha potuto accertare sull'autenticazione, separatamente dalla raggiungibilità.Verifica di lettura: riuscitasignifica che anche le chiamate RPC di dettaglio con ambito di lettura (health/status/system-presence/config.get) sono riuscite.Verifica di lettura: limitata - ambito mancante: operator.readsignifica che la connessione è riuscita, ma l'RPC con ambito di lettura è limitato. Viene segnalata come raggiungibilità degradata, non come errore completo.Verifica di lettura: non riuscitadopoConnessione: riuscitasignifica che la connessione WebSocket è stata stabilita, ma la diagnostica di lettura successiva è scaduta o non è riuscita; anche in questo caso lo stato è degradato, non irraggiungibile.- Come
gateway status, la verifica riutilizza l'autenticazione del dispositivo già memorizzata nella cache, ma non crea l'identità iniziale del dispositivo o lo stato di associazione. - Il codice di uscita è diverso da zero solo quando nessuna destinazione verificata è raggiungibile.
Output JSON
Livello superiore:
ok: almeno una destinazione è raggiungibile.degraded: almeno una destinazione ha accettato una connessione, ma non ha completato la diagnostica RPC dettagliata.capability: migliore capacità rilevata tra le destinazioni raggiungibili (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeounknown).primaryTargetId: migliore destinazione da considerare come quella attiva, nell'ordine: URL esplicito, tunnel SSH, endpoint remoto configurato, local loopback.warnings[]: record di avviso ottenuti al meglio delle possibilità, concode,messageetargetIdsfacoltativi.network: suggerimenti per gli URL local loopback/tailnet derivati dalla configurazione corrente e dalla rete dell'host.discovery.timeoutMs/discovery.count: budget di rilevamento effettivo e numero di risultati usati per questa sessione di verifica.
Per destinazione (targets[].connect): ok (classificazione di raggiungibilità e degrado), rpcOk (successo completo dell'RPC dettagliato), scopeLimited (RPC dettagliato non riuscito a causa della mancanza dell'ambito operatore).
Per destinazione (targets[].auth): role e scopes segnalati in hello-ok quando disponibili, oltre alla classificazione capability mostrata.
Codici di avviso comuni
ssh_tunnel_failed: la configurazione del tunnel SSH non è riuscita; il comando ha ripiegato sulle verifiche dirette.multiple_gateways: erano raggiungibili identità Gateway distinte oppure OpenClaw non ha potuto verificare che le destinazioni raggiungibili fossero lo stesso Gateway. Un tunnel SSH, un URL proxy o un URL remoto configurato verso lo stesso Gateway non attivano questo avviso.auth_secretref_unresolved: non è stato possibile risolvere un SecretRef di autenticazione configurato per una destinazione non riuscita.probe_scope_limited: la connessione WebSocket è riuscita, ma la verifica di lettura era limitata dalla mancanza dioperator.read.local_tls_runtime_unavailable: TLS del Gateway locale è abilitato, ma OpenClaw non ha potuto caricare l'impronta digitale del certificato locale.
Connessione remota tramite SSH (parità con l'app per Mac)
La modalità "Remote over SSH" dell'app macOS usa un inoltro di porta locale affinché un Gateway remoto accessibile solo tramite loopback diventi raggiungibile all'indirizzo ws://127.0.0.1:<port>.
Equivalente CLI:
openclaw gateway probe --ssh user@gateway-hostOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host o user@host:port (la porta predefinita è 22).
--ssh-autobooleanSeleziona il primo host Gateway rilevato come destinazione SSH dall'endpoint di rilevamento risolto (local. più il dominio geografico configurato, se presente). I suggerimenti solo TXT vengono ignorati.
Valori predefiniti della configurazione (facoltativi): gateway.remote.sshTarget, gateway.remote.sshIdentity.
gateway call <method>
Strumento RPC di basso livello.
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"limit": 200}'"--params"--url"--token"--password"--timeout--expect-finalbooleanPrincipalmente per RPC in stile agente che trasmettono eventi intermedi prima di un payload finale.
--jsonbooleanOutput JSON leggibile dalla macchina.
Gestire il servizio Gateway
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstallInstallazione con un wrapper
Usa --wrapper quando il servizio gestito deve essere avviato tramite un altro eseguibile, ad esempio uno shim per la gestione dei segreti o uno strumento di esecuzione con un altro utente. Il wrapper riceve i normali argomenti del Gateway ed è responsabile dell'esecuzione finale di openclaw o Node con tali argomenti.
cat > ~/.local/bin/openclaw-doppler <<'EOF'#!/usr/bin/env bashset -euo pipefailexec doppler run --project my-project --config production -- openclaw "$@"EOFchmod +x ~/.local/bin/openclaw-doppler openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --forceopenclaw gateway restartPuoi anche impostare il wrapper tramite l'ambiente. gateway install verifica che il percorso sia un file eseguibile, inserisce il wrapper nei ProgramArguments del servizio e rende persistente OPENCLAW_WRAPPER nell'ambiente del servizio per successive reinstallazioni forzate, aggiornamenti e riparazioni eseguite da doctor.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctorPer rimuovere un wrapper persistente, azzera OPENCLAW_WRAPPER durante la reinstallazione:
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restartOpzioni dei comandi
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>(valore predefinito:node),--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
Comportamento del ciclo di vita
- Usa
gateway restartper riavviare un servizio gestito. Non concatenaregateway stopegateway startcome alternativa al riavvio. - Su macOS, per impostazione predefinita
gateway stopusalaunchctl bootout, che rimuove il LaunchAgent dalla sessione di avvio corrente senza rendere persistente la disabilitazione: il ripristino automatico KeepAlive resta attivo per arresti anomali futuri egateway startriabilita correttamente il servizio senza dover eseguire manualmentelaunchctl enable. Passa--disableper disattivare in modo persistente KeepAlive e RunAtLoad, impedendo al Gateway di riavviarsi fino alla successiva esecuzione esplicita digateway start; usa questa opzione quando un arresto manuale deve persistere dopo il riavvio del sistema. - I comandi del ciclo di vita accettano
--jsonper l'uso negli script.
Autenticazione e SecretRef al momento dell'installazione
- Quando l'autenticazione tramite token richiede un token e
gateway.auth.tokenè gestito tramite SecretRef,gateway installverifica che il SecretRef sia risolvibile, ma non rende persistente il token risolto nei metadati dell'ambiente del servizio. - Se l'autenticazione tramite token richiede un token e il SecretRef configurato per il token non è risolto, l'installazione si interrompe in modo sicuro anziché rendere persistente un valore di ripiego in testo normale.
- Per l'autenticazione tramite password con
gateway run, preferisciOPENCLAW_GATEWAY_PASSWORD,--password-fileo ungateway.auth.passwordbasato su SecretRef rispetto a--passwordspecificato direttamente. - Nella modalità di autenticazione dedotta,
OPENCLAW_GATEWAY_PASSWORDimpostata solo nella shell non attenua i requisiti del token per l'installazione; quando installi un servizio gestito, usa una configurazione persistente (gateway.auth.passwordoenvnella configurazione). - Se sono configurati sia
gateway.auth.tokensiagateway.auth.passwordegateway.auth.modenon è impostato, l'installazione viene bloccata finché la modalità non viene specificata esplicitamente.
Individuare i Gateway (Bonjour)
gateway discover esegue la scansione dei beacon dei Gateway (_openclaw-gw._tcp).
- DNS-SD multicast:
local. - DNS-SD unicast (Bonjour su rete geografica): scegli un dominio (esempio:
openclaw.internal.) e configura un DNS suddiviso e un server DNS; consulta Bonjour.
Solo i Gateway con l'individuazione Bonjour abilitata (impostazione predefinita) pubblicizzano il beacon.
Indicazioni TXT presenti in ogni beacon: role (indicazione sul ruolo del Gateway), transport (indicazione sul trasporto, ad esempio gateway), gatewayPort (porta WebSocket, solitamente 18789), tailnetDns (nome host MagicDNS, quando disponibile), gatewayTls / gatewayTlsSha256 (TLS abilitato e impronta digitale del certificato). sshPort e cliPath vengono pubblicati solo nella modalità di individuazione completa (discovery.mdns.mode: "full"; il valore predefinito è "minimal", che li omette; in tal caso, i client usano per impostazione predefinita la porta 22 per le destinazioni SSH).
gateway discover
openclaw gateway discover"--timeout--jsonbooleanOutput leggibile dalla macchina (disabilita anche lo stile e l'indicatore di attività).
Esempi:
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'