CLI commands
Gateway
Gateway to serwer WebSocket OpenClaw (kanały, węzły, sesje, hooks). Podpolecenia na tej stronie znajdują się pod openclaw gateway ….
Konfiguracja lokalnego mDNS + rozległego DNS-SD.
Jak OpenClaw ogłasza i znajduje Gateway.
Klucze konfiguracji Gateway najwyższego poziomu.
Uruchamianie Gateway
Uruchom lokalny proces Gateway:
openclaw gatewayAlias trybu pierwszoplanowego:
openclaw gateway runStartup behavior
- Domyślnie Gateway odmawia uruchomienia, chyba że w
~/.openclaw/openclaw.jsonustawionogateway.mode=local. Użyj--allow-unconfigureddo jednorazowych uruchomień ad-hoc/deweloperskich. - Oczekuje się, że
openclaw onboard --mode localiopenclaw setupzapiszągateway.mode=local. Jeśli plik istnieje, ale brakujegateway.mode, potraktuj to jako uszkodzoną lub nadpisaną konfigurację i napraw ją, zamiast domyślnie zakładać tryb lokalny. - Jeśli plik istnieje i brakuje
gateway.mode, Gateway traktuje to jako podejrzane uszkodzenie konfiguracji i odmawia „zgadywania lokalności” za Ciebie. - Bindowanie poza loopback bez uwierzytelniania jest blokowane (zabezpieczenie bezpieczeństwa).
lan,tailneticustomobecnie rozwiązują się przez ścieżki BYOH tylko dla IPv4.- BYOH tylko dla IPv6 nie jest dziś natywnie obsługiwane na tej ścieżce. Użyj sidecara IPv4 lub proxy, jeśli sam host obsługuje tylko IPv6.
SIGUSR1wyzwala restart w procesie, gdy jest autoryzowany (commands.restartjest domyślnie włączone; ustawcommands.restart: false, aby zablokować ręczny restart, podczas gdy narzędzia Gateway/konfiguracja apply/update pozostają dozwolone).- Handlery
SIGINT/SIGTERMzatrzymują proces Gateway, ale nie przywracają żadnego niestandardowego stanu terminala. Jeśli opakowujesz CLI za pomocą TUI lub wejścia w trybie raw, przywróć terminal przed wyjściem.
Opcje
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Port WebSocket (wartość domyślna pochodzi z konfiguracji/env; zwykle 18789).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYmluZCA8bG9vcGJhY2t8bGFufHRhaWxuZXR8YXV0b3xjdXN0b20
" type="string">
Tryb bindowania listenera. lan, tailnet i custom obecnie rozwiązują się przez ścieżki tylko dla IPv4.
"--authOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
Nadpisanie tokena (ustawia też OPENCLAW_GATEWAY_TOKEN dla procesu).
"--password"--tailscale--tailscale-reset-on-exitbooleanResetuj konfigurację Tailscale serve/funnel podczas zamykania.
--bind custom + gateway.customBindHoststringObecnie oczekuje adresu IPv4. W przypadku BYOH tylko dla IPv6 umieść sidecar IPv4 lub proxy przed Gateway i skieruj OpenClaw na ten endpoint IPv4.
--allow-unconfiguredbooleanZezwól na start Gateway bez gateway.mode=local w konfiguracji. Omija zabezpieczenie startowe tylko dla bootstrapu ad-hoc/deweloperskiego; nie zapisuje ani nie naprawia pliku konfiguracji.
--devbooleanUtwórz konfigurację deweloperską + workspace, jeśli ich brakuje (pomija BOOTSTRAP.md).
--resetbooleanZresetuj konfigurację deweloperską + dane uwierzytelniające + sesje + workspace (wymaga --dev).
--forcebooleanZabij istniejący listener na wybranym porcie przed startem.
--verbosebooleanSzczegółowe logi.
--cli-backend-logsbooleanPokazuj w konsoli tylko logi backendu CLI (i włącz stdout/stderr).
"--ws-log--compactbooleanAlias dla --ws-log compact.
--raw-streambooleanLoguj surowe zdarzenia strumienia modelu do jsonl.
Restartowanie Gateway
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --forceopenclaw gateway restart --safe prosi działający Gateway o wstępne sprawdzenie aktywnej pracy i zaplanowanie jednego scalonego restartu po opróżnieniu aktywnej pracy. Domyślny bezpieczny restart czeka na aktywną pracę maksymalnie przez skonfigurowane gateway.reload.deferralTimeoutMs (domyślnie 5 minut); po wyczerpaniu tego budżetu restart jest wymuszany. Ustaw gateway.reload.deferralTimeoutMs na 0, aby uzyskać bezterminowe bezpieczne oczekiwanie, które nigdy nie wymusza restartu. Zwykłe restart zachowuje istniejące zachowanie menedżera usługi; --force pozostaje ścieżką natychmiastowego nadpisania.
openclaw gateway restart --safe --skip-deferral uruchamia ten sam skoordynowany restart świadomy OpenClaw co --safe, ale omija bramkę odroczenia aktywnej pracy, więc Gateway emituje restart natychmiast, nawet gdy zgłaszane są blokery. Użyj tego jako awaryjnego wyjścia operatora, gdy odroczenie zostało przytrzymane przez zablokowane uruchomienie zadania, a samo --safe może być ograniczone przez gateway.reload.deferralTimeoutMs. --skip-deferral wymaga --safe.
Profilowanie Gateway
- Ustaw
OPENCLAW_GATEWAY_STARTUP_TRACE=1, aby logować czasy faz podczas startu Gateway, w tym opóźnienieeventLoopMaxdla każdej fazy oraz czasy tablic wyszukiwania Plugin dla installed-index, rejestru manifestów, planowania startu i pracy owner-map. - Ustaw
OPENCLAW_GATEWAY_RESTART_TRACE=1, aby logować linierestart trace:ograniczone do restartu dla obsługi sygnału restartu, opróżniania aktywnej pracy, faz zamykania, następnego startu, czasu gotowości i metryk pamięci. - Ustaw
OPENCLAW_DIAGNOSTICS=timelinezOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>, aby zapisywać best-effort linię czasu diagnostyki startu JSONL dla zewnętrznych harnessów QA. Możesz też włączyć flagę przezdiagnostics.flags: ["timeline"]w konfiguracji; ścieżka nadal jest dostarczana przez env. DodajOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1, aby dołączyć próbki pętli zdarzeń. - Najpierw uruchom
pnpm build, a potempnpm test:startup:gateway -- --runs 5 --warmup 1, aby benchmarkować start Gateway względem zbudowanego wejścia CLI. Benchmark zapisuje pierwszy output procesu,/healthz,/readyz, czasy trace startu, opóźnienie pętli zdarzeń i szczegóły czasów tablic wyszukiwania Plugin. - Najpierw uruchom
pnpm build, a potempnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5, aby benchmarkować restart Gateway w procesie względem zbudowanego wejścia CLI na macOS lub Linux. Benchmark restartu używa SIGUSR1, włącza w procesie potomnym zarówno trace startu, jak i restartu, oraz zapisuje następne/healthz, następne/readyz, downtime, czas gotowości, CPU, RSS i metryki trace restartu. - Traktuj
/healthzjako liveness, a/readyzjako używalną gotowość. Linie trace i output benchmarku służą do przypisania właściciela; nie traktuj jednego span trace ani jednej próbki jako pełnego wniosku o wydajności.
Odpytywanie działającego Gateway
Wszystkie polecenia zapytań używają RPC WebSocket.
Output modes
- Domyślnie: czytelne dla człowieka (kolorowe w TTY).
--json: czytelny maszynowo JSON (bez stylowania/spinnera).--no-color(lubNO_COLOR=1): wyłącz ANSI, zachowując układ dla człowieka.
Shared options
--url <url>: URL WebSocket Gateway.--token <token>: token Gateway.--password <password>: hasło Gateway.--timeout <ms>: limit czasu/budżet (różni się zależnie od polecenia).--expect-final: czekaj na odpowiedź „final” (wywołania agenta).
gateway health
openclaw gateway health --url ws://127.0.0.1:18789openclaw gateway health --port 18789Endpoint HTTP /healthz jest sondą liveness: zwraca odpowiedź, gdy serwer może odpowiadać przez HTTP. Endpoint HTTP /readyz jest bardziej rygorystyczny i pozostaje czerwony, gdy startowe sidecary Plugin, kanały lub skonfigurowane hooks nadal się stabilizują. Lokalne lub uwierzytelnione szczegółowe odpowiedzi gotowości zawierają blok diagnostyczny eventLoop z opóźnieniem pętli zdarzeń, wykorzystaniem pętli zdarzeń, proporcją rdzeni CPU i flagą degraded.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Kieruj na Gateway local loopback na tym porcie. To nadpisuje OPENCLAW_GATEWAY_URL i OPENCLAW_GATEWAY_PORT dla wywołania health.
gateway usage-cost
Pobierz podsumowania kosztów użycia z logów sesji.
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-agentsbooleanAgreguj podsumowanie kosztów dla wszystkich skonfigurowanych agentów. Nie można łączyć z --agent.
gateway stability
Pobierz ostatni rejestrator stabilności diagnostycznej z działającego Gateway.
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">
Maksymalna liczba ostatnich zdarzeń do uwzględnienia (maks. 1000).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
Filtruj według typu zdarzenia diagnostycznego, takiego jak payload.large lub diagnostic.memory.pressure.
"--since-seq--bundle [path]stringOdczytaj utrwalony pakiet stabilności zamiast wywoływać działający Gateway. Użyj --bundle latest (albo po prostu --bundle) dla najnowszego pakietu w katalogu stanu albo przekaż bezpośrednio ścieżkę JSON pakietu.
--exportbooleanZapisz udostępnialny zip diagnostyki wsparcia zamiast drukować szczegóły stabilności.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
Ścieżka wyjściowa dla --export.
Privacy and bundle behavior
- Rekordy zachowują metadane operacyjne: nazwy zdarzeń, liczby, rozmiary w bajtach, odczyty pamięci, stan kolejki/sesji, identyfikatory zatwierdzeń, nazwy kanałów/Plugin oraz zredagowane podsumowania sesji. Nie zachowują tekstu czatu, treści webhooków, wyników narzędzi, surowych treści żądań lub odpowiedzi, tokenów, ciasteczek, wartości sekretów, nazw hostów ani surowych identyfikatorów sesji. Ustaw
diagnostics.enabled: false, aby całkowicie wyłączyć rejestrator. - Przy krytycznych wyjściach Gateway, timeoutach zamykania i niepowodzeniach startu po restarcie OpenClaw zapisuje tę samą migawkę diagnostyczną do
~/.openclaw/logs/stability/openclaw-stability-*.json, gdy rejestrator ma zdarzenia. Sprawdź najnowszy pakiet za pomocąopenclaw gateway stability --bundle latest;--limit,--typei--since-seqmają też zastosowanie do outputu pakietu.
gateway diagnostics export
Zapisz lokalny zip diagnostyczny zaprojektowany do dołączania do zgłoszeń błędów. Model prywatności i zawartość pakietu opisuje Eksport diagnostyki.
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-bundlebooleanPomiń wyszukiwanie utrwalonego pakietu stabilności.
--jsonbooleanWypisz zapisaną ścieżkę, rozmiar i manifest jako JSON.
Eksport zawiera manifest, podsumowanie Markdown, kształt konfiguracji, oczyszczone szczegóły konfiguracji, oczyszczone podsumowania dzienników, oczyszczone migawki statusu/kondycji Gateway oraz najnowszy pakiet stabilności, jeśli istnieje.
Jest przeznaczony do udostępniania. Zachowuje szczegóły operacyjne pomocne przy debugowaniu, takie jak bezpieczne pola dziennika OpenClaw, nazwy podsystemów, kody statusu, czasy trwania, skonfigurowane tryby, porty, identyfikatory pluginów, identyfikatory dostawców, niesekretne ustawienia funkcji oraz zredagowane operacyjne komunikaty dziennika. Pomija lub redaguje tekst czatu, treści webhooków, wyniki narzędzi, dane uwierzytelniające, pliki cookie, identyfikatory kont/wiadomości, tekst promptów/instrukcji, nazwy hostów i wartości sekretów. Gdy komunikat w stylu LogTape wygląda jak tekst ładunku użytkownika/czatu/narzędzia, eksport zachowuje tylko informację, że komunikat został pominięty, oraz jego liczbę bajtów.
gateway status
gateway status pokazuje usługę Gateway (launchd/systemd/schtasks) oraz opcjonalną próbę łączności/możliwości uwierzytelniania.
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc"--url"--token"--password"--timeout--no-probebooleanPomiń próbę łączności (widok tylko usługi).
--deepbooleanSkanuj także usługi na poziomie systemu.
--require-rpcbooleanPodnieś domyślną próbę łączności do próby odczytu i zakończ z kodem niezerowym, gdy ta próba odczytu się nie powiedzie. Nie można łączyć z --no-probe.
Semantyka statusu
gateway statuspozostaje dostępne do diagnostyki nawet wtedy, gdy lokalna konfiguracja CLI jest brakująca lub nieprawidłowa.- Domyślne
gateway statuspotwierdza stan usługi, połączenie WebSocket oraz możliwość uwierzytelniania widoczną podczas uzgadniania. Nie potwierdza operacji odczytu/zapisu/administracyjnych. - Próby diagnostyczne nie modyfikują uwierzytelniania urządzenia przy pierwszym użyciu: wykorzystują istniejący buforowany token urządzenia, jeśli istnieje, ale nie tworzą nowej tożsamości urządzenia CLI ani rekordu parowania urządzenia tylko do odczytu wyłącznie po to, aby sprawdzić status.
gateway statusw miarę możliwości rozwiązuje skonfigurowane SecretRefs uwierzytelniania na potrzeby uwierzytelnienia próby.- Jeśli wymagany auth SecretRef jest nierozwiązany na tej ścieżce polecenia,
gateway status --jsonzgłaszarpc.authWarning, gdy łączność/uwierzytelnianie próby się nie powiedzie; przekaż jawnie--token/--passwordalbo najpierw rozwiąż źródło sekretu. - Jeśli próba się powiedzie, ostrzeżenia o nierozwiązanych auth-ref są wyciszane, aby uniknąć fałszywych alarmów.
- Gdy próbkowanie jest włączone, wynik JSON zawiera
gateway.version, gdy uruchomiony Gateway ją zgłasza;--require-rpcmoże awaryjnie użyć ładunku RPCstatus.runtimeVersion, jeśli następcza próba uzgadniania nie może dostarczyć metadanych wersji. - Używaj
--require-rpcw skryptach i automatyzacji, gdy nasłuchująca usługa nie wystarcza i wywołania RPC o zakresie odczytu też muszą być zdrowe. --deepdodaje najlepszy możliwy skan dodatkowych instalacji launchd/systemd/schtasks. Gdy wykryto wiele usług podobnych do gateway, wynik czytelny dla człowieka wypisuje wskazówki czyszczenia i ostrzega, że większość konfiguracji powinna uruchamiać jeden gateway na maszynę.--deepzgłasza też niedawne przekazanie restartu nadzorcy Gateway, gdy proces usługi zakończył się poprawnie na potrzeby restartu przez zewnętrznego nadzorcę.--deepuruchamia walidację konfiguracji w trybie świadomym pluginów (pluginValidation: "full") i ujawnia skonfigurowane ostrzeżenia manifestu pluginu (na przykład brakujące metadane konfiguracji kanału), aby testy smoke instalacji i aktualizacji je wykrywały. Domyślnegateway statuszachowuje szybką ścieżkę tylko do odczytu, która pomija walidację pluginów.- Wynik czytelny dla człowieka zawiera rozwiązaną ścieżkę pliku dziennika oraz migawkę ścieżek/poprawności konfiguracji CLI względem usługi, aby pomóc diagnozować rozjazd profilu lub katalogu stanu.
Kontrole dryfu uwierzytelniania Linux systemd
- W instalacjach Linux systemd kontrole dryfu uwierzytelniania usługi odczytują z jednostki zarówno wartości
Environment=, jak iEnvironmentFile=(w tym%h, ścieżki w cudzysłowach, wiele plików oraz opcjonalne pliki-). - Kontrole dryfu rozwiązują SecretRefs
gateway.auth.tokenprzy użyciu scalonego środowiska uruchomieniowego (najpierw środowisko polecenia usługi, potem awaryjnie środowisko procesu). - Jeśli uwierzytelnianie tokenem nie jest efektywnie aktywne (jawny
gateway.auth.moderównypassword/none/trusted-proxyalbo nieustawiony tryb, w którym hasło może wygrać i żaden kandydat tokenu nie może wygrać), kontrole dryfu tokenu pomijają rozwiązywanie tokenu konfiguracji.
gateway probe
gateway probe to polecenie „debuguj wszystko”. Zawsze sprawdza:
- skonfigurowany zdalny gateway (jeśli ustawiony), oraz
- localhost (local loopback) nawet jeśli skonfigurowano zdalny cel.
Jeśli przekażesz --url, ten jawny cel zostanie dodany przed oboma. Wynik czytelny dla człowieka oznacza cele jako:
URL (explicit)Remote (configured)lubRemote (configured, inactive)Local loopback
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --port 18789OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
Użyj tego portu dla celu próby local loopback i zdalnego portu tunelu SSH. Bez --url wybiera to cel local loopback zamiast skonfigurowanego adresu URL środowiska Gateway, portu środowiska lub celów zdalnych.
Interpretacja
Reachable: yesoznacza, że co najmniej jeden cel zaakceptował połączenie WebSocket.Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyzgłasza, co próba mogła potwierdzić o uwierzytelnianiu. Jest to oddzielne od osiągalności.Read probe: okoznacza, że wywołania RPC szczegółów o zakresie odczytu (health/status/system-presence/config.get) również się powiodły.Read probe: limited - missing scope: operator.readoznacza, że połączenie się powiodło, ale RPC o zakresie odczytu jest ograniczone. Jest to zgłaszane jako zdegradowana osiągalność, a nie pełna awaria.Read probe: failedpoConnect: okoznacza, że Gateway zaakceptował połączenie WebSocket, ale następcza diagnostyka odczytu przekroczyła limit czasu lub się nie powiodła. To również jest zdegradowana osiągalność, a nie nieosiągalny Gateway.- Podobnie jak
gateway status, próba wykorzystuje istniejące buforowane uwierzytelnianie urządzenia, ale nie tworzy tożsamości urządzenia przy pierwszym użyciu ani stanu parowania. - Kod wyjścia jest niezerowy tylko wtedy, gdy żaden sprawdzany cel nie jest osiągalny.
Wynik JSON
Poziom najwyższy:
ok: co najmniej jeden cel jest osiągalny.degraded: co najmniej jeden cel zaakceptował połączenie, ale nie ukończył pełnej diagnostyki szczegółów RPC.capability: najlepsza możliwość widziana we wszystkich osiągalnych celach (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopelubunknown).primaryTargetId: najlepszy cel do traktowania jako aktywny zwycięzca w tej kolejności: jawny adres URL, tunel SSH, skonfigurowany zdalny cel, potem local loopback.warnings[]: rekordy ostrzeżeń best-effort zcode,messagei opcjonalnymitargetIds.network: podpowiedzi adresów URL local loopback/tailnet wyprowadzone z bieżącej konfiguracji i sieci hosta.discovery.timeoutMsidiscovery.count: rzeczywisty budżet wykrywania/liczba wyników użyte dla tego przebiegu próby.
Dla celu (targets[].connect):
ok: osiągalność po połączeniu + klasyfikacja degradacji.rpcOk: pełny sukces szczegółów RPC.scopeLimited: szczegóły RPC nie powiodły się z powodu brakującego zakresu operatora.
Dla celu (targets[].auth):
role: rola uwierzytelniania zgłoszona whello-ok, gdy dostępna.scopes: przyznane zakresy zgłoszone whello-ok, gdy dostępne.capability: ujawniona klasyfikacja możliwości uwierzytelniania dla tego celu.
Typowe kody ostrzeżeń
ssh_tunnel_failed: konfiguracja tunelu SSH nie powiodła się; polecenie wróciło do bezpośrednich prób.multiple_gateways: osiągalne były odrębne tożsamości gateway albo OpenClaw nie mógł potwierdzić, że osiągalne cele są tym samym gateway. Tunel SSH, adres URL proxy lub skonfigurowany zdalny adres URL do tego samego gateway nie wywołuje tego ostrzeżenia.auth_secretref_unresolved: skonfigurowany auth SecretRef nie mógł zostać rozwiązany dla nieudanego celu.probe_scope_limited: połączenie WebSocket się powiodło, ale próba odczytu została ograniczona przez brakująceoperator.read.
Zdalnie przez SSH (zgodność z aplikacją Mac)
Tryb „Remote over SSH” aplikacji macOS używa lokalnego przekierowania portu, dzięki czemu zdalny gateway (który może być powiązany tylko z loopback) staje się osiągalny pod ws://127.0.0.1:<port>.
Odpowiednik CLI:
openclaw gateway probe --ssh user@gateway-hostOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host lub user@host:port (port domyślnie 22).
--ssh-autobooleanWybierz pierwszy wykryty host gateway jako cel SSH z rozwiązanego punktu końcowego wykrywania (local. plus skonfigurowana domena rozległa, jeśli istnieje). Podpowiedzi tylko TXT są ignorowane.
Konfiguracja (opcjonalna, używana jako wartości domyślne):
gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Niskopoziomowy pomocnik RPC.
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"sinceMs": 60000}'"--params"--url"--token"--password"--timeout--expect-finalbooleanGłównie dla RPC w stylu agenta, które strumieniują zdarzenia pośrednie przed końcowym ładunkiem.
--jsonbooleanWynik JSON czytelny maszynowo.
Zarządzanie usługą Gateway
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstallInstalacja z wrapperem
Użyj --wrapper, gdy zarządzana usługa musi uruchamiać się przez inny plik wykonywalny, na przykład shim menedżera sekretów albo pomocnik uruchamiania jako inny użytkownik. Wrapper otrzymuje normalne argumenty Gateway i odpowiada za ostateczne wykonanie przez exec openclaw albo Node z tymi argumentami.
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 restartWrapper można też ustawić przez środowisko. gateway install sprawdza, czy ścieżka jest plikiem wykonywalnym, zapisuje wrapper w ProgramArguments usługi i utrwala OPENCLAW_WRAPPER w środowisku usługi na potrzeby późniejszych wymuszonych reinstalacji, aktualizacji i napraw przez doctor.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctorAby usunąć utrwalony wrapper, wyczyść OPENCLAW_WRAPPER podczas reinstalacji:
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restartOpcje polecenia
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
Zachowanie cyklu życia
- Użyj
gateway restart, aby zrestartować zarządzaną usługę. Nie łączgateway stopigateway startjako zamiennika restartu. - Na macOS
gateway stopdomyślnie używalaunchctl bootout, co usuwa LaunchAgent z bieżącej sesji rozruchowej bez trwałego zapisania wyłączenia — automatyczne odzyskiwanie KeepAlive pozostaje aktywne dla przyszłych awarii, agateway startponownie włącza usługę w czysty sposób bez ręcznegolaunchctl enable. Przekaż--disable, aby trwale wstrzymać KeepAlive i RunAtLoad, tak aby gateway nie odradzał się do następnego jawnegogateway start; użyj tego, gdy ręczne zatrzymanie ma przetrwać ponowne uruchomienia komputera lub systemu. gateway restart --safeprosi działający Gateway o wstępne sprawdzenie aktywnej pracy i zaplanowanie jednego scalonego restartu po opróżnieniu aktywnej pracy. Domyślny bezpieczny restart czeka na aktywną pracę do skonfigurowanegogateway.reload.deferralTimeoutMs(domyślnie 5 minut); po wyczerpaniu tego budżetu restart jest wymuszany. Ustawgateway.reload.deferralTimeoutMsna0, aby bezpieczne oczekiwanie było bezterminowe i nigdy nie wymuszało restartu.--safenie można łączyć z--forceani--wait.gateway restart --wait 30szastępuje skonfigurowany budżet opróżniania restartu dla tego restartu. Same liczby są milisekundami; akceptowane są jednostki takie jaks,mih.--wait 0czeka bezterminowo.gateway restart --safe --skip-deferraluruchamia świadomy OpenClaw bezpieczny restart, ale omija bramkę odroczenia, więc Gateway emituje restart natychmiast, nawet gdy zgłoszono blokady. Awaryjne wyjście operatora dla odroczeń zablokowanego uruchomienia zadania; wymaga--safe.gateway restart --forcepomija opróżnianie aktywnej pracy i restartuje natychmiast. Użyj tego, gdy operator sprawdził już wymienione blokady zadań i chce natychmiast przywrócić gateway.- Polecenia cyklu życia akceptują
--jsondo skryptów.
Uwierzytelnianie i SecretRef podczas instalacji
- Gdy uwierzytelnianie tokenem wymaga tokenu, a
gateway.auth.tokenjest zarządzane przez SecretRef,gateway installsprawdza, czy SecretRef można rozwiązać, ale nie utrwala rozwiązanego tokenu w metadanych środowiska usługi. - Jeśli uwierzytelnianie tokenem wymaga tokenu, a skonfigurowany token SecretRef jest nierozwiązany, instalacja kończy się zamknięciem zamiast utrwalać zastępczy tekst jawny.
- Dla uwierzytelniania hasłem w
gateway runpreferujOPENCLAW_GATEWAY_PASSWORD,--password-filealbo wspierane przez SecretRefgateway.auth.passwordzamiast wbudowanego--password. - W trybie uwierzytelniania wnioskowanego wyłącznie powłokowe
OPENCLAW_GATEWAY_PASSWORDnie łagodzi wymagań instalacyjnych dotyczących tokenu; podczas instalowania zarządzanej usługi użyj trwałej konfiguracji (gateway.auth.passwordalboenvw konfiguracji). - Jeśli skonfigurowano zarówno
gateway.auth.token, jak igateway.auth.password, agateway.auth.modenie jest ustawione, instalacja jest blokowana do czasu jawnego ustawienia trybu.
Wykrywanie gateway (Bonjour)
gateway discover skanuje beacony Gateway (_openclaw-gw._tcp).
- Multicast DNS-SD:
local. - Unicast DNS-SD (Wide-Area Bonjour): wybierz domenę (przykład:
openclaw.internal.) i skonfiguruj split DNS + serwer DNS; zobacz Bonjour.
Tylko gatewaye z włączonym wykrywaniem Bonjour (domyślnie) rozgłaszają beacon.
Rekordy wykrywania wide-area mogą zawierać te wskazówki TXT:
role(wskazówka roli gatewaya)transport(wskazówka transportu, np.gateway)gatewayPort(port WebSocket, zwykle18789)sshPort(tylko pełny tryb wykrywania; klienci domyślnie używają celów SSH22, gdy go nie ma)tailnetDns(nazwa hosta MagicDNS, gdy jest dostępna)gatewayTls/gatewayTlsSha256(włączony TLS + odcisk palca certyfikatu)cliPath(tylko pełny tryb wykrywania)
gateway discover
openclaw gateway discover"--timeout--jsonbooleanDane wyjściowe czytelne maszynowo (wyłącza też stylowanie/spinner).
Przykłady:
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'