Kontrol Arayüzü (tarayıcı)
Kontrol Arayüzü, Gateway tarafından sunulan küçük bir Vite + Lit tek sayfalı uygulamadır:- varsayılan:
http://<host>:18789/ - isteğe bağlı önek:
gateway.controlUi.basePathayarlayın (ör./openclaw)
Hızlı açılış (yerel)
Gateway aynı bilgisayarda çalışıyorsa şunu açın: Sayfa yüklenemezse önce Gateway’i başlatın:openclaw gateway.
Kimlik doğrulama, WebSocket el sıkışması sırasında şu yollarla sağlanır:
connect.params.auth.tokenconnect.params.auth.passwordgateway.auth.allowTailscale: trueolduğunda Tailscale Serve kimlik başlıklarıgateway.auth.mode: "trusted-proxy"olduğunda güvenilir proxy kimlik başlıkları
gateway.auth.mode "password" olduğunda parola tabanlı
kimlik doğrulama da çalışır.
Cihaz eşleştirme (ilk bağlantı)
Kontrol Arayüzü’ne yeni bir tarayıcıdan veya cihazdan bağlandığınızda, Gateway aynı Tailnet üzerindegateway.auth.allowTailscale: true olsa bile
tek seferlik bir eşleştirme onayı gerektirir. Bu, yetkisiz erişimi önlemek için
bir güvenlik önlemidir.
Göreceğiniz şey: “disconnected (1008): pairing required”
Cihazı onaylamak için:
requestId
oluşturulur. Onaylamadan önce openclaw devices list komutunu yeniden çalıştırın.
Onaylandıktan sonra cihaz hatırlanır ve
openclaw devices revoke --device <id> --role <role> ile iptal etmediğiniz sürece yeniden onay gerektirmez. Token döndürme ve iptal etme için
Devices CLI bölümüne bakın.
Notlar:
- Doğrudan yerel local loopback tarayıcı bağlantıları (
127.0.0.1/localhost) otomatik olarak onaylanır. - Tailnet ve LAN tarayıcı bağlantıları, aynı makineden gelseler bile yine açık onay gerektirir.
- Her tarayıcı profili benzersiz bir cihaz kimliği üretir; bu nedenle tarayıcı değiştirmek veya tarayıcı verilerini temizlemek yeniden eşleştirme gerektirir.
Dil desteği
Kontrol Arayüzü ilk yüklemede tarayıcı yerel ayarınıza göre kendini yerelleştirebilir ve bunu daha sonra Erişim kartındaki dil seçicisinden geçersiz kılabilirsiniz.- Desteklenen yerel ayarlar:
en,zh-CN,zh-TW,pt-BR,de,es - İngilizce dışındaki çeviriler tarayıcıda tembel yüklenir.
- Seçilen yerel ayar tarayıcı depolamasına kaydedilir ve sonraki ziyaretlerde yeniden kullanılır.
- Eksik çeviri anahtarları İngilizceye geri döner.
Neler yapabilir (bugün)
- Gateway WS üzerinden modelle sohbet (
chat.history,chat.send,chat.abort,chat.inject) - Sohbet içinde araç çağrılarını ve canlı araç çıktı kartlarını akış olarak gösterme (aracı olayları)
- Kanallar: yerleşik ve paketlenmiş/harici plugin kanalları için durum, QR girişi ve kanal başına config (
channels.status,web.login.*,config.patch) - Örnekler: durum listesi + yenileme (
system-presence) - Oturumlar: liste + oturum başına model/düşünme/hızlı/ayrıntılı/akıl yürütme geçersiz kılmaları (
sessions.list,sessions.patch) - Cron işleri: listeleme/ekleme/düzenleme/çalıştırma/etkinleştirme/devre dışı bırakma + çalıştırma geçmişi (
cron.*) - Skills: durum, etkinleştirme/devre dışı bırakma, kurulum, API anahtarı güncellemeleri (
skills.*) - Düğümler: liste + sınırlar (
node.list) exec host=gateway/nodeiçin yürütme onayları: gateway veya düğüm izin listelerini düzenleme + ilke sorma (exec.approvals.*)- Config:
~/.openclaw/openclaw.jsongörüntüleme/düzenleme (config.get,config.set) - Config: doğrulamayla birlikte uygulama + yeniden başlatma (
config.apply) ve son etkin oturumu uyandırma - Config yazımları, eşzamanlı düzenlemelerin üzerine yazmayı önlemek için bir temel hash koruması içerir
- Config yazımları (
config.set/config.apply/config.patch), gönderilen config yükündeki başvurular için etkin SecretRef çözümlemesini de ön kontrol olarak yapar; çözümlenmemiş etkin gönderilmiş başvurular yazmadan önce reddedilir - Config şeması + form oluşturma (
config.schema/config.schema.lookup, alantitle/description, eşleşen arayüz ipuçları, doğrudan alt öğe özetleri, iç içe nesne/joker karakter/dizi/bileşim düğümlerinde doküman meta verileri ve mevcut olduğunda plugin + kanal şemaları dahil); Ham JSON düzenleyicisi yalnızca güvenli bir ham gidiş-dönüş mümkün olduğunda kullanılabilir - Bir anlık görüntü ham metni güvenli şekilde gidiş-dönüş yapamıyorsa, Kontrol Arayüzü Form modunu zorunlu kılar ve o anlık görüntü için Ham modu devre dışı bırakır
- Yapılandırılmış SecretRef nesne değerleri, nesneden dizeye yanlışlıkla bozulmayı önlemek için form metin girişlerinde salt okunur olarak işlenir
- Hata ayıklama: durum/sağlık/model anlık görüntüleri + olay günlüğü + manuel RPC çağrıları (
status,health,models.list) - Günlükler: filtreleme/dışa aktarma ile gateway dosya günlüklerinin canlı takibi (
logs.tail) - Güncelleme: paket/git güncellemesi + yeniden başlatma çalıştırma (
update.run) ve yeniden başlatma raporu
- Yalıtılmış işler için teslim varsayılan olarak duyuru özetidir. Yalnızca dahili çalıştırmalar istiyorsanız bunu hiçbiri olarak değiştirebilirsiniz.
- Duyuru seçildiğinde kanal/hedef alanları görünür.
- Webhook modu
delivery.mode = "webhook"kullanır vedelivery.togeçerli bir HTTP(S) webhook URL’si olarak ayarlanır. - Ana oturum işleri için webhook ve none teslim modları kullanılabilir.
- Gelişmiş düzenleme denetimleri arasında çalıştırma sonrası silme, aracı geçersiz kılmasını temizleme, cron exact/stagger seçenekleri, aracı model/düşünme geçersiz kılmaları ve imkanlar dahilinde teslim anahtarları bulunur.
- Form doğrulaması alan düzeyi hatalarla satır içidir; geçersiz değerler düzeltilene kadar kaydet düğmesi devre dışı kalır.
- Ayrı bir bearer token göndermek için
cron.webhookTokenayarlayın; atlanırsa webhook kimlik doğrulama başlığı olmadan gönderilir. - Kullanımdan kaldırılmış yedek:
notify: trueiçeren saklanan eski işler, taşınana kadar yine decron.webhookkullanabilir.
Sohbet davranışı
chat.sendbloklamaz: hemen{ runId, status: "started" }ile onay verir ve yanıtchatolayları üzerinden akış halinde gelir.- Aynı
idempotencyKeyile yeniden göndermek, çalışma sırasında{ status: "in_flight" }, tamamlandıktan sonra ise{ status: "ok" }döndürür. chat.historyyanıtları, arayüz güvenliği için boyutla sınırlıdır. Döküm girdileri çok büyük olduğunda Gateway uzun metin alanlarını kısaltabilir, ağır meta veri bloklarını atlayabilir ve aşırı büyük mesajları bir yer tutucuyla değiştirebilir ([chat.history omitted: message too large]).chat.history, görünür assistant metninden yalnızca görüntüleme amaçlı satır içi yönerge etiketlerini de kaldırır (örneğin[[reply_to_*]]ve[[audio_as_voice]]), düz metin tool-call XML yüklerini (<tool_call>...</tool_call>,<function_call>...</function_call>,<tool_calls>...</tool_calls>,<function_calls>...</function_calls>ve kesilmiş tool-call blokları dahil) ve sızmış ASCII/tam genişlikli model kontrol belirteçlerini de kaldırır; ayrıca görünür metninin tamamı yalnızca tam sessiz belirteçNO_REPLY/no_replyolan assistant girdilerini atlar.chat.inject, oturum dökümüne bir assistant notu ekler ve yalnızca arayüz güncellemeleri için birchatolayı yayınlar (aracı çalıştırması yok, kanal teslimi yok).- Sohbet üstbilgisindeki model ve düşünme seçicileri etkin oturumu
sessions.patchile hemen yamar; bunlar tek dönüşlük gönderim seçenekleri değil, kalıcı oturum geçersiz kılmalarıdır. - Durdurma:
- Durdur düğmesine tıklayın (
chat.abortçağırır) - Bant dışı iptal için
/stopyazın (veyastop,stop action,stop run,stop openclaw,please stopgibi bağımsız iptal ifadeleri kullanın) chat.abort, o oturum için tüm etkin çalıştırmaları iptal etmek üzere{ sessionKey }desteği sunar (runIdyok)
- Durdur düğmesine tıklayın (
- İptal edilen kısmi içeriğin korunması:
- Bir çalıştırma iptal edildiğinde, kısmi assistant metni yine de arayüzde gösterilebilir
- Gateway, arabelleğe alınmış çıktı varsa iptal edilen kısmi assistant metnini döküm geçmişine kalıcı olarak yazar
- Kalıcı girdiler, döküm tüketicilerinin iptal edilmiş kısmi içerikleri normal tamamlanma çıktısından ayırabilmesi için iptal meta verileri içerir
Tailnet erişimi (önerilir)
Tümleşik Tailscale Serve (tercih edilir)
Gateway’i loopback üzerinde tutun ve Tailscale Serve’ın bunu HTTPS ile proxy etmesini sağlayın:https://<magicdns>/(veya yapılandırılmışgateway.controlUi.basePath)
gateway.auth.allowTailscale true olduğunda Tailscale kimlik başlıkları (tailscale-user-login) ile kimlik doğrulaması yapabilir. OpenClaw,
x-forwarded-for adresini tailscale whois ile çözümleyip başlıkla eşleştirerek kimliği doğrular ve bunları yalnızca istek
Tailscale’in x-forwarded-* başlıklarıyla birlikte loopback’e ulaştığında kabul eder. Açık paylaşılan gizli anahtar
kimlik bilgilerini zorunlu kılmak istiyorsanız gateway.auth.allowTailscale: false ayarlayın. Sonra gateway.auth.mode: "token" veya
"password" kullanın.
Bu eşzamansız Serve kimlik yolunda, aynı istemci IP’si
ve kimlik doğrulama kapsamı için başarısız kimlik doğrulama denemeleri, hız sınırı yazımlarından önce serileştirilir. Bu nedenle aynı tarayıcıdan gelen eşzamanlı hatalı yeniden denemeler,
paralel yarışan iki düz uyuşmazlık yerine ikinci istekte retry later gösterebilir.
Tokensız Serve kimlik doğrulaması, gateway ana bilgisayarının güvenilir olduğunu varsayar. O ana bilgisayarda güvenilmeyen yerel kod çalışabiliyorsa, token/parola kimlik doğrulamasını zorunlu kılın.
Tailnet’e bağlan + token
http://<tailscale-ip>:18789/(veya yapılandırılmışgateway.controlUi.basePath)
connect.params.auth.token veya connect.params.auth.password
olarak gönderilir).
Güvensiz HTTP
Gösterge panelini düz HTTP üzerinden açarsanız (http://<lan-ip> veya http://<tailscale-ip>),
tarayıcı güvenli olmayan bir bağlamda çalışır ve WebCrypto’yu engeller. Varsayılan olarak,
OpenClaw cihaz kimliği olmadan Kontrol Arayüzü bağlantılarını engeller.
Belgelenmiş istisnalar:
gateway.controlUi.allowInsecureAuth=trueile yalnızca localhost için güvensiz HTTP uyumluluğugateway.auth.mode: "trusted-proxy"üzerinden başarılı operatör Kontrol Arayüzü kimlik doğrulaması- acil durum için
gateway.controlUi.dangerouslyDisableDeviceAuth=true
https://<magicdns>/(Serve)http://127.0.0.1:18789/(gateway ana bilgisayarında)
allowInsecureAuth yalnızca yerel bir uyumluluk anahtarıdır:
- Güvenli olmayan HTTP bağlamlarında localhost Kontrol Arayüzü oturumlarının cihaz kimliği olmadan ilerlemesine izin verir.
- Eşleştirme denetimlerini atlamaz.
- Uzak (localhost dışı) cihaz kimliği gereksinimlerini gevşetmez.
dangerouslyDisableDeviceAuth, Kontrol Arayüzü cihaz kimliği denetimlerini devre dışı bırakır ve
ciddi bir güvenlik düşüşüdür. Acil kullanım sonrası bunu hızla geri alın.
Güvenilir proxy notu:
- başarılı güvenilir proxy kimlik doğrulaması, cihaz kimliği olmadan operatör Kontrol Arayüzü oturumlarını kabul edebilir
- bu durum düğüm rolündeki Kontrol Arayüzü oturumlarına uzanmaz
- aynı ana bilgisayardaki loopback ters proxy’leri yine de güvenilir proxy kimlik doğrulamasını karşılamaz; bkz. Trusted Proxy Auth
Arayüzü derleme
Gateway,dist/control-ui dizininden statik dosyalar sunar. Bunları şu komutla derleyin:
ws://127.0.0.1:18789).
Hata ayıklama/test etme: geliştirme sunucusu + uzak Gateway
Kontrol Arayüzü statik dosyalardır; WebSocket hedefi yapılandırılabilir ve HTTP kaynağından farklı olabilir. Bu, Vite geliştirme sunucusunu yerelde kullanmak ama Gateway’i başka bir yerde çalıştırmak istediğinizde kullanışlıdır.- Arayüz geliştirme sunucusunu başlatın:
pnpm ui:dev - Şunun gibi bir URL açın:
gatewayUrlyüklendikten sonra localStorage’da saklanır ve URL’den kaldırılır.tokenmümkün olduğunda URL parçası (#token=...) ile geçirilmelidir. Parçalar sunucuya gönderilmez; bu da istek günlüğü ve Referer sızıntısını önler. Eski?token=sorgu parametreleri uyumluluk için yine bir kez içe aktarılır, ancak yalnızca yedek olarak ve önyüklemeden hemen sonra kaldırılır.passwordyalnızca bellekte tutulur.gatewayUrlayarlandığında, arayüz config veya ortam kimlik bilgilerine geri dönmez.token(veyapassword) açıkça sağlanmalıdır. Açık kimlik bilgilerinin eksik olması bir hatadır.- Gateway TLS arkasındaysa
wss://kullanın (Tailscale Serve, HTTPS proxy vb.). - Tıklama sahtekarlığını önlemek için
gatewayUrlyalnızca üst düzey pencerede kabul edilir (gömülü olarak değil). - Loopback olmayan Kontrol Arayüzü dağıtımları
gateway.controlUi.allowedOriginsdeğerini açıkça ayarlamalıdır (tam origin’ler). Buna uzak geliştirme kurulumları da dahildir. - Sıkı denetimli yerel testler dışında
gateway.controlUi.allowedOrigins: ["*"]kullanmayın. Bu, “kullandığım ana bilgisayarla eşleştir” değil, herhangi bir tarayıcı origin’ine izin ver anlamına gelir. gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback=true, Host başlığı origin geri dönüş modunu etkinleştirir, ancak bu tehlikeli bir güvenlik modudur.
İlgili
- Dashboard — gateway gösterge paneli
- WebChat — tarayıcı tabanlı sohbet arayüzü
- TUI — terminal kullanıcı arayüzü
- Health Checks — gateway sağlık izleme