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 (örn./openclaw)
Hızlı açma (yerel)
Gateway aynı bilgisayarda çalışıyorsa şunu açın: Sayfa yüklenmezse ö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.passwordGösterge paneli ayarlar bölümü bir belirteç saklamanıza izin verir; parolalar kalıcı olarak tutulmaz. Başlangıç sihirbazı varsayılan olarak bir gateway belirteci üretir; ilk bağlantıda bunu buraya yapıştırın.
Cihaz eşleştirme (ilk bağlantı)
Yeni bir tarayıcı veya cihazdan Kontrol Arayüzü’ne bağlandığınızda, Gateway aynı Tailnet’tegateway.auth.allowTailscale: true olsanız bile tek seferlik bir eşleştirme onayı
gerektirir. Bu, yetkisiz erişimi önlemek için bir güvenlik önlemidir.
Göreceğiniz mesaj: “disconnected (1008): pairing required”
Cihazı onaylamak için:
openclaw devices revoke --device <id> --role <role> ile geri almadıkça
yeniden onay gerektirmez. Belirteç döndürme ve iptal için
Devices CLI bölümüne bakın.
Notlar:
- Yerel bağlantılar (
127.0.0.1) otomatik olarak onaylanır. - Uzak bağlantılar (LAN, Tailnet, vb.) 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.
Neler yapabilir (bugün)
- Gateway WS üzerinden modelle sohbet (
chat.history,chat.send,chat.abort,chat.inject) - Chat’te araç çağrılarını ve canlı araç çıktı kartlarını akış halinde yayınlama (ajan olayları)
- Kanallar: WhatsApp/Telegram/Discord/Slack + eklenti kanalları (Mattermost, vb.) durum + QR ile giriş + kanal başına yapılandırma (
channels.status,web.login.*,config.patch) - Örnekler: varlık listesi + yenileme (
system-presence) - Oturumlar: liste + oturum başına düşünme/ayrıntılı geçersiz kılmalar (
sessions.list,sessions.patch) - Cron işleri: listele/ekle/çalıştır/etkinleştir/devre dışı bırak + çalışma geçmişi (
cron.*) - Skills: durum, etkinleştir/devre dışı bırak, yükle, API anahtarı güncellemeleri (
skills.*) - Düğümler: liste + yetenekler (
node.list) - Çalıştırma onayları: gateway veya düğüm izin listelerini düzenleme +
exec host=gateway/nodeiçin politika sorma (exec.approvals.*) - Yapılandırma:
~/.openclaw/openclaw.jsongörüntüleme/düzenleme (config.get,config.set) - Yapılandırma: doğrulama ile uygula + yeniden başlat (
config.apply) ve son etkin oturumu uyandır - Yapılandırma yazımları, eşzamanlı düzenlemelerin üzerine yazılmasını önlemek için bir temel karma (base-hash) koruması içerir
- Yapılandırma şeması + form oluşturma (
config.schema, eklenti + kanal şemaları dahil); Ham JSON düzenleyici kullanılabilir durumda kalır - Hata ayıklama: durum/sağlık/modeller anlık görüntüleri + olay günlüğü + manuel RPC çağrıları (
status,health,models.list) - Günlükler: filtre/dışa aktarma ile gateway dosya günlüklerinin canlı takibi (
logs.tail) - Güncelleme: paket/git güncellemesi çalıştır + yeniden başlat (
update.run) ve yeniden başlatma raporu
- İzole işler için teslimat varsayılan olarak duyuru özeti gönderir. Yalnızca dahili çalıştırmalar istiyorsanız “none” seçebilirsiniz.
- “announce” seçildiğinde kanal/hedef alanları görünür.
Sohbet davranışı
chat.sendengelleyici değildir:{ runId, status: "started" }ile hemen onaylar ve yanıtchatolaylarıyla akış halinde gelir.- Aynı
idempotencyKeyile yeniden gönderme, çalışırken{ status: "in_flight" }, tamamlandıktan sonra{ status: "ok" }döndürür. chat.inject, oturum dökümüne bir asistan notu ekler ve yalnızca arayüz güncellemeleri için (ajan çalıştırma yok, kanal teslimi yok) birchatolayı yayınlar.- Durdur:
- Stop’a tıklayın (
chat.abortçağrılır) - Bant dışı iptal için
/stop(veyastop|esc|abort|wait|exit|interrupt) yazın chat.abort, bu oturum için tüm etkin çalıştırmaları iptal etmek üzere{ sessionKey }’yı destekler (runIdyok)
- Stop’a tıklayın (
Tailnet erişimi (önerilir)
Entegre Tailscale Serve (tercih edilen)
Gateway’i loopback’te tutun ve Tailscale Serve’ün HTTPS ile proxy’lemesine izin verin: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ğrulayabilir. OpenClaw,
x-forwarded-for adresini tailscale whois ile çözümleyerek kimliği doğrular ve
başlıkla eşleştirir; yalnızca istek Tailscale’in x-forwarded-* başlıklarıyla
loopback’e ulaştığında kabul eder. Serve trafiği için bile belirteç/parola
zorunlu kılmak istiyorsanız gateway.auth.allowTailscale: false ayarlayın (veya gateway.auth.mode: "password"’yi zorlayın).
Tailnet’e bağla + belirteç
http://<tailscale-ip>:18789/(veya yapılandırılmışgateway.controlUi.basePath)
connect.params.auth.token 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 bağlamda çalışır ve WebCrypto’yu engeller. Varsayılan
olarak OpenClaw, cihaz kimliği olmadan Kontrol Arayüzü bağlantılarını engeller.
Önerilen çözüm: HTTPS kullanın (Tailscale Serve) veya arayüzü yerel olarak açın:
https://<magicdns>/(Serve)http://127.0.0.1:18789/(gateway ana makinesinde)
UI’yi derleme
Gateway, statik dosyalarıdist/control-ui’ten sunar. Şununla derleyin:
ws://127.0.0.1:18789).
Hata ayıklama/test: 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 tutup Gateway’in başka bir yerde çalıştığı durumlar için kullanışlıdır.- Arayüz geliştirme sunucusunu başlatın:
pnpm ui:dev - Şuna benzer bir URL açın:
gatewayUrl, yüklemeden sonra localStorage’da saklanır ve URL’den kaldırılır.tokenlocalStorage’da saklanır;passwordyalnızca bellekte tutulur.gatewayUrlayarlandığında, arayüz yapılandırma veya ortam kimlik bilgilerine geri dönmez.token’yi (veyapassword) açıkça sağlayın. Açık kimlik bilgileri olmaması hatadır.- Gateway TLS arkasındayken (Tailscale Serve, HTTPS proxy, vb.)
wss://kullanın. - Tıklama kaçırmayı önlemek için
gatewayUrlyalnızca üst düzey pencerede kabul edilir (gömülü değil). - Çapraz kaynaklı geliştirme kurulumları için (örn.
pnpm ui:dev’dan uzak bir Gateway’e), arayüz kaynağınıgateway.controlUi.allowedOrigins’ye ekleyin.