Gateway CLI
Gateway, OpenClaw’ın WebSocket sunucusudur (kanallar, düğümler, oturumlar, hook’lar). Bu sayfadaki alt komutlaropenclaw gateway … altında bulunur.
İlgili belgeler:
Gateway’i çalıştırın
Yerel bir Gateway işlemi çalıştırın:- Varsayılan olarak Gateway,
~/.openclaw/openclaw.jsoniçindegateway.mode=localayarlanmadıkça başlamayı reddeder. Geçici/geliştirme çalıştırmaları için--allow-unconfiguredkullanın. openclaw onboard --mode localveopenclaw setupkomutlarınıngateway.mode=localyazması beklenir. Dosya varsa ancakgateway.modeeksikse, bunu örtülmüş veya bozulmuş bir yapılandırma olarak değerlendirin ve yerel modu örtük olarak varsaymak yerine onarın.- Dosya varsa ve
gateway.modeeksikse, Gateway bunu şüpheli yapılandırma bozulması olarak değerlendirir ve sizin yerinize “yerel modu tahmin etmeyi” reddeder. - Kimlik doğrulama olmadan loopback dışına bağlama engellenir (güvenlik korkuluğu).
SIGUSR1, yetkili olduğunda süreç içi yeniden başlatmayı tetikler (commands.restartvarsayılan olarak etkindir; manuel yeniden başlatmayı engellemek içincommands.restart: falseayarlayın, ancak gateway tool/config apply/update yine izinli kalır).SIGINT/SIGTERMişleyicileri gateway işlemini durdurur, ancak özel terminal durumunu geri yüklemez. CLI’yi bir TUI veya raw-mode girdiyle sarmalıyorsanız, çıkıştan önce terminali geri yükleyin.
Seçenekler
--port <port>: WebSocket portu (varsayılan yapılandırma/ortamdan gelir; genellikle18789).--bind <loopback|lan|tailnet|auto|custom>: dinleyici bağlama modu.--auth <token|password>: kimlik doğrulama modu geçersiz kılması.--token <token>: token geçersiz kılması (ayrıca işlem içinOPENCLAW_GATEWAY_TOKENayarlar).--password <password>: parola geçersiz kılması. Uyarı: satır içi parolalar yerel işlem listelerinde açığa çıkabilir.--password-file <path>: gateway parolasını bir dosyadan oku.--tailscale <off|serve|funnel>: Gateway’i Tailscale üzerinden erişime aç.--tailscale-reset-on-exit: kapanışta Tailscale serve/funnel yapılandırmasını sıfırla.--allow-unconfigured: yapılandırmadagateway.mode=localolmadan gateway’in başlamasına izin ver. Bu yalnızca geçici/geliştirme önyüklemesi için başlangıç korkuluğunu atlar; yapılandırma dosyasını yazmaz veya onarmaz.--dev: eksikse geliştirme yapılandırması + çalışma alanı oluştur (BOOTSTRAP.md atlanır).--reset: geliştirme yapılandırması + kimlik bilgileri + oturumlar + çalışma alanını sıfırla (--devgerektirir).--force: başlatmadan önce seçili porttaki mevcut dinleyiciyi sonlandır.--verbose: ayrıntılı günlükler.--cli-backend-logs: konsolda yalnızca CLI backend günlüklerini göster (ve stdout/stderr’ı etkinleştir).--claude-cli-logs:--cli-backend-logsiçin kullanımdan kaldırılmış takma ad.--ws-log <auto|full|compact>: websocket günlük stili (varsayılanauto).--compact:--ws-log compacttakma adı.--raw-stream: ham model akış olaylarını jsonl olarak günlüğe kaydet.--raw-stream-path <path>: ham akış jsonl yolu.
Çalışan bir Gateway’i sorgulayın
Tüm sorgu komutları WebSocket RPC kullanır. Çıktı modları:- Varsayılan: insan tarafından okunabilir (TTY’de renklendirilmiş).
--json: makine tarafından okunabilir JSON (stil/spinner yok).--no-color(veyaNO_COLOR=1): insan düzenini korurken ANSI’yi devre dışı bırakır.
--url <url>: Gateway WebSocket URL’si.--token <token>: Gateway token’ı.--password <password>: Gateway parolası.--timeout <ms>: zaman aşımı/bütçe (komuta göre değişir).--expect-final: “final” yanıtı bekle (agent çağrıları).
--url ayarladığınızda CLI, yapılandırma veya ortam kimlik bilgilerine geri dönmez.
--token veya --password değerini açıkça geçin. Açık kimlik bilgisi eksikliği hatadır.
gateway health
gateway usage-cost
Oturum günlüklerinden kullanım maliyeti özetlerini getirir.
--days <days>: dahil edilecek gün sayısı (varsayılan30).
gateway status
gateway status, Gateway hizmetini (launchd/systemd/schtasks) ve isteğe bağlı bir RPC probunu gösterir.
--url <url>: açık bir prob hedefi ekler. Yapılandırılmış uzak hedef + localhost yine de problanır.--token <token>: prob için token kimlik doğrulaması.--password <password>: prob için parola kimlik doğrulaması.--timeout <ms>: prob zaman aşımı (varsayılan10000).--no-probe: RPC probunu atla (yalnızca hizmet görünümü).--deep: sistem düzeyindeki hizmetleri de tara.--require-rpc: RPC probu başarısız olursa sıfır olmayan çıkışla çık.--no-probeile birlikte kullanılamaz.
gateway status, yerel CLI yapılandırması eksik veya geçersiz olduğunda bile tanılama için kullanılabilir olmaya devam eder.gateway status, mümkün olduğunda prob kimlik doğrulaması için yapılandırılmış auth SecretRef’leri çözümler.- Gerekli bir auth SecretRef bu komut yolunda çözümlenemezse, prob bağlantısı/kimlik doğrulaması başarısız olduğunda
gateway status --json,rpc.authWarningbildirir;--token/--passworddeğerini açıkça geçin veya önce gizli kaynağı çözümleyin. - Prob başarılı olursa, yanlış pozitifleri önlemek için çözümlenmemiş auth-ref uyarıları bastırılır.
- Dinleyen bir hizmetin yeterli olmadığı ve Gateway RPC’nin de sağlıklı olmasının gerektiği betiklerde ve otomasyonda
--require-rpckullanın. --deep, ek launchd/systemd/schtasks kurulumları için best-effort bir tarama ekler. Birden fazla gateway benzeri hizmet algılandığında, insan tarafından okunabilir çıktı temizleme ipuçları yazdırır ve çoğu kurulumun makine başına tek bir gateway çalıştırması gerektiği konusunda uyarır.- İnsan tarafından okunabilir çıktı; profil veya durum dizini kaymasını teşhis etmeye yardımcı olmak için çözümlenen dosya günlük yolunu ve CLI ile hizmet yapılandırma yolları/geçerlilik anlık görüntüsünü içerir.
- Linux systemd kurulumlarında, hizmet kimlik doğrulama kayması denetimleri birimdeki hem
Environment=hem deEnvironmentFile=değerlerini okur (%h, tırnaklı yollar, birden çok dosya ve isteğe bağlı-dosyalar dahil). - Kayma denetimleri,
gateway.auth.tokenSecretRef’lerini birleştirilmiş çalışma zamanı ortamı kullanarak çözümler (önce hizmet komut ortamı, ardından işlem ortamı yedeği). - Token kimlik doğrulaması fiilen etkin değilse (açık
gateway.auth.modedeğeripassword/none/trusted-proxyise veya mod ayarsızken parola kazanabiliyorsa ve hiçbir token adayı kazanamıyorsa), token kayma denetimleri yapılandırma token çözümlemesini atlar.
gateway probe
gateway probe, “her şeyi hata ayıkla” komutudur. Her zaman şunları problar:
- yapılandırılmış uzak gateway’inizi (ayarlıysa) ve
- localhost’u (loopback) uzak hedef yapılandırılmış olsa bile.
--url geçirirseniz, bu açık hedef her ikisinin önüne eklenir. İnsan tarafından okunabilir çıktı hedefleri şu şekilde etiketler:
URL (explicit)Remote (configured)veyaRemote (configured, inactive)Local loopback
Reachable: yes, en az bir hedefin WebSocket bağlantısını kabul ettiği anlamına gelir.RPC: ok, ayrıntılı RPC çağrılarının (health/status/system-presence/config.get) da başarılı olduğu anlamına gelir.RPC: limited - missing scope: operator.read, bağlantının başarılı olduğu ancak ayrıntılı RPC’nin kapsamla sınırlandığı anlamına gelir. Bu, tam başarısızlık değil, azalmış erişilebilirlik olarak raporlanır.- Çıkış kodu yalnızca problanan hedeflerin hiçbiri erişilebilir olmadığında sıfır değildir.
--json):
- Üst düzey:
ok: en az bir hedef erişilebilir.degraded: en az bir hedefte kapsamla sınırlı ayrıntılı RPC vardı.primaryTargetId: şu sırayla etkin kazanan olarak değerlendirilecek en iyi hedef: açık URL, SSH tüneli, yapılandırılmış uzak hedef, ardından yerel loopback.warnings[]:code,messageve isteğe bağlıtargetIdsiçeren best-effort uyarı kayıtları.network: mevcut yapılandırma ve ana bilgisayar ağından türetilen yerel loopback/tailnet URL ipuçları.discovery.timeoutMsvediscovery.count: bu prob geçişi için kullanılan gerçek keşif bütçesi/sonuç sayısı.
- Hedef başına (
targets[].connect):ok: bağlantı + azalmış sınıflandırmadan sonraki erişilebilirlik.rpcOk: tam ayrıntılı RPC başarısı.scopeLimited: ayrıntılı RPC, eksik operator scope nedeniyle başarısız oldu.
ssh_tunnel_failed: SSH tüneli kurulumu başarısız oldu; komut doğrudan problara geri döndü.multiple_gateways: birden fazla hedef erişilebilirdi; rescue bot gibi kasıtlı olarak izole profiller çalıştırmıyorsanız bu alışılmadık bir durumdur.auth_secretref_unresolved: yapılandırılmış bir auth SecretRef, başarısız bir hedef için çözümlenemedi.probe_scope_limited: WebSocket bağlantısı başarılı oldu, ancak ayrıntılı RPCoperator.readeksikliği nedeniyle sınırlıydı.
SSH üzerinden uzak erişim (Mac uygulaması eşdeğeri)
macOS uygulamasındaki “Remote over SSH” modu, uzak gateway’in (yalnızca loopback’e bağlı olabilir)ws://127.0.0.1:<port> adresinde erişilebilir olması için yerel bir port yönlendirme kullanır.
CLI eşdeğeri:
--ssh <target>:user@hostveyauser@host:port(port varsayılan olarak22).--ssh-identity <path>: kimlik dosyası.--ssh-auto: çözümlenen keşif uç noktasından (local.ve varsa yapılandırılmış geniş alan etki alanı) keşfedilen ilk gateway ana bilgisayarını SSH hedefi olarak seçer. Yalnızca TXT ipuçları yok sayılır.
gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
Düşük seviyeli RPC yardımcısı.
--params <json>: parametreler için JSON nesne dizesi (varsayılan{})--url <url>--token <token>--password <password>--timeout <ms>--expect-final--json
--paramsgeçerli JSON olmalıdır.--expect-final, esas olarak nihai bir yükten önce ara olaylar akıtan agent tarzı RPC’ler içindir.
Gateway hizmetini yönetin
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--force,--jsongateway uninstall|start|stop|restart:--json
gateway install,--port,--runtime,--token,--force,--jsondestekler.- Token kimlik doğrulaması bir token gerektiriyorsa ve
gateway.auth.tokenSecretRef tarafından yönetiliyorsa,gateway installSecretRef’in çözümlenebilir olduğunu doğrular ancak çözümlenen token’ı hizmet ortamı meta verisine kalıcı olarak yazmaz. - Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılmış token SecretRef çözümlenemiyorsa, kurulum yedek düz metni kalıcı hale getirmek yerine kapalı olarak başarısız olur.
gateway runüzerinde parola kimlik doğrulaması için satır içi--passwordyerineOPENCLAW_GATEWAY_PASSWORD,--password-fileveya SecretRef destekligateway.auth.passwordtercih edin.- Çıkarımsal kimlik doğrulama modunda, yalnızca kabuk düzeyindeki
OPENCLAW_GATEWAY_PASSWORD, kurulum token gereksinimlerini gevşetmez; yönetilen bir hizmet kurarken kalıcı yapılandırma (gateway.auth.passwordveya yapılandırmaenv) kullanın. - Hem
gateway.auth.tokenhem degateway.auth.passwordyapılandırılmışsa vegateway.auth.modeayarlı değilse, mod açıkça ayarlanana kadar kurulum engellenir. - Yaşam döngüsü komutları betik yazımı için
--jsonkabul eder.
Ağ geçitlerini keşfedin (Bonjour)
gateway discover, Gateway beacon’larını (_openclaw-gw._tcp) tarar.
- Multicast DNS-SD:
local. - Unicast DNS-SD (Geniş Alan Bonjour): bir etki alanı seçin (örnek:
openclaw.internal.) ve split DNS + DNS sunucusu kurun; bkz. /gateway/bonjour
role(gateway rol ipucu)transport(taşıma ipucu, ör.gateway)gatewayPort(WebSocket portu, genellikle18789)sshPort(isteğe bağlı; istemciler yoksa varsayılan SSH hedefini22olarak alır)tailnetDns(varsa MagicDNS ana bilgisayar adı)gatewayTls/gatewayTlsSha256(TLS etkin + sertifika parmak izi)cliPath(geniş alan bölgesine yazılan uzak kurulum ipucu)
gateway discover
--timeout <ms>: komut başına zaman aşımı (browse/resolve); varsayılan2000.--json: makine tarafından okunabilir çıktı (stil/spinner’ı da devre dışı bırakır).
- CLI, etkin olduğunda
local.ile birlikte yapılandırılmış geniş alan etki alanını tarar. - JSON çıktısındaki
wsUrl,lanHostveyatailnetDnsgibi yalnızca TXT ipuçlarından değil, çözümlenen hizmet uç noktasından türetilir. local.mDNS üzerindesshPortvecliPath, yalnızcadiscovery.mdns.modedeğerifullolduğunda yayınlanır. Geniş alan DNS-SD yine decliPathyazar;sshPortorada da isteğe bağlı kalır.