Bir node, Gateway WebSocket’ine (operatörlerle aynı port)Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
role: "node" ile bağlanan ve node.invoke üzerinden bir komut yüzeyi (örn. canvas.*, camera.*, device.*, notifications.*, system.*) sunan eşlikçi bir cihazdır (macOS/iOS/Android/headless). Protokol ayrıntıları: Gateway protokolü.
Eski taşıma: Bridge protokolü (TCP JSONL;
mevcut node’lar için yalnızca tarihsel).
macOS ayrıca node modunda da çalışabilir: menü çubuğu uygulaması Gateway’in
WS sunucusuna bağlanır ve yerel canvas/camera komutlarını bir node olarak sunar (böylece
openclaw nodes … bu Mac’e karşı çalışır). Uzak gateway modunda, tarayıcı
otomasyonu yerel uygulama node’u tarafından değil, CLI node host’u (openclaw node run veya
kurulu node hizmeti) tarafından yönetilir.
Notlar:
- Node’lar çevre birimleridir, gateway değildir. Gateway hizmetini çalıştırmazlar.
- Telegram/WhatsApp/vb. mesajlar node’lara değil gateway’e ulaşır.
- Sorun giderme çalıştırma kitabı: /nodes/troubleshooting
Eşleme + durum
WS node’ları cihaz eşlemesi kullanır. Node’larconnect sırasında bir cihaz kimliği sunar; Gateway
role: node için bir cihaz eşleme isteği oluşturur. Cihazlar CLI’si (veya UI) üzerinden onaylayın.
Hızlı CLI:
requestId oluşturulur. Onaylamadan önce
openclaw devices list komutunu yeniden çalıştırın.
Notlar:
nodes status, cihaz eşleme rolünodeiçerdiğinde bir node’u paired olarak işaretler.- Cihaz eşleme kaydı, dayanıklı onaylanmış rol sözleşmesidir. Token rotasyonu bu sözleşmenin içinde kalır; eşlenmiş bir node’u, eşleme onayının hiç vermediği farklı bir role yükseltemez.
node.pair.*(CLI:openclaw nodes pending/approve/reject/remove/rename) gateway’e ait ayrı bir node eşleme deposudur; WSconnectel sıkışmasını denetlemez.openclaw nodes remove --node <id|name|ip>, bu ayrı gateway’e ait node eşleme deposundan eski girdileri siler.- Onay kapsamı, bekleyen isteğin bildirdiği komutları izler:
- komutsuz istek:
operator.pairing - exec olmayan node komutları:
operator.pairing+operator.write system.run/system.run.prepare/system.which:operator.pairing+operator.admin
- komutsuz istek:
Uzak node host’u (system.run)
Gateway’iniz bir makinede çalışırken komutların başka bir makinede çalışmasını istediğinizde bir node host’u kullanın. Model yine gateway ile konuşur; gatewayhost=node seçildiğinde exec çağrılarını node host’una iletir.
Nerede ne çalışır
- Gateway host’u: mesajları alır, modeli çalıştırır, araç çağrılarını yönlendirir.
- Node host’u: node makinesinde
system.run/system.whichçalıştırır. - Onaylar: node host’unda
~/.openclaw/exec-approvals.jsonüzerinden uygulanır.
- Onay destekli node çalıştırmaları tam istek bağlamına bağlanır.
- Doğrudan shell/runtime dosya çalıştırmaları için OpenClaw ayrıca en iyi çabayla tek bir somut yerel dosya operandını bağlar ve bu dosya yürütmeden önce değişirse çalıştırmayı reddeder.
- OpenClaw bir yorumlayıcı/runtime komutu için tam olarak bir somut yerel dosya belirleyemezse, tam runtime kapsamı varmış gibi davranmak yerine onay destekli yürütme reddedilir. Daha geniş yorumlayıcı semantiği için sandboxing, ayrı host’lar veya açıkça güvenilen bir allowlist/tam iş akışı kullanın.
Bir node host’u başlatın (foreground)
Node makinesinde:SSH tüneliyle uzak gateway (loopback bind)
Gateway loopback’e bağlanıyorsa (gateway.bind=loopback, yerel modda varsayılan),
uzak node host’ları doğrudan bağlanamaz. Bir SSH tüneli oluşturun ve
node host’unu tünelin yerel ucuna yöneltin.
Örnek (node host -> gateway host):
openclaw node runtoken veya parola kimlik doğrulamasını destekler.- Env var’lar tercih edilir:
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD. - Config fallback’i
gateway.auth.token/gateway.auth.passworddeğeridir. - Yerel modda node host’u bilerek
gateway.remote.token/gateway.remote.passworddeğerlerini yok sayar. - Uzak modda
gateway.remote.token/gateway.remote.password, uzak öncelik kurallarına göre uygundur. - Etkin yerel
gateway.auth.*SecretRef’leri yapılandırılmış ancak çözümlenmemişse, node-host kimlik doğrulaması güvenli biçimde başarısız olur. - Node-host kimlik doğrulama çözümlemesi yalnızca
OPENCLAW_GATEWAY_*env var’larını dikkate alır.
Bir node host’u başlatın (hizmet)
Eşle + adlandır
Gateway host’unda:openclaw devices list
komutunu yeniden çalıştırın ve mevcut requestId değerini onaylayın.
Adlandırma seçenekleri:
openclaw node run/openclaw node installüzerinde--display-name(node üzerinde~/.openclaw/node.jsoniçinde kalıcı olur).openclaw nodes rename --node <id|name|ip> --name "Build Node"(gateway override’ı).
Komutları allowlist’e ekleyin
Exec onayları node host’u başına geçerlidir. Gateway’den allowlist girdileri ekleyin:~/.openclaw/exec-approvals.json konumunda bulunur.
Exec’i node’a yöneltin
Varsayılanları yapılandırın (gateway config):host=node içeren her exec çağrısı node host’unda çalışır (node
allowlist/onaylarına tabidir).
host=auto node’u kendi başına örtük olarak seçmez, ancak auto içinden açık bir çağrı başına host=node isteğine izin verilir. Node exec’in oturum için varsayılan olmasını istiyorsanız, tools.exec.host=node veya /exec host=node ... değerini açıkça ayarlayın.
İlgili:
Komut çağırma
Düşük düzey (ham RPC):Komut politikası
Node komutları çağrılabilmeden önce iki kapıdan geçmelidir:- Node, komutu WebSocket
connect.commandslistesinde bildirmelidir. - Gateway’in platform politikası bildirilen komuta izin vermelidir.
canvas.*, camera.list, location.get ve screen.snapshot gibi güvenli bildirilen komutlara izin verir.
talk capability’sinin reklamını yapan veya talk.* komutlarını bildiren güvenilir node’lar
ayrıca platform etiketinden bağımsız olarak bildirilen push-to-talk komutlarına (talk.ptt.start, talk.ptt.stop,
talk.ptt.cancel, talk.ptt.once) varsayılan olarak izin verir.
camera.snap, camera.clip ve
screen.record gibi tehlikeli veya gizlilik açısından ağır komutlar yine
gateway.nodes.allowCommands ile açık opt-in gerektirir. gateway.nodes.denyCommands her zaman
varsayılanların ve ek allowlist girdilerinin önüne geçer.
Plugin’e ait node komutları bir Gateway node-invoke politikası ekleyebilir. Bu politika
allowlist denetiminden sonra ve node’a iletmeden önce çalışır; böylece ham
node.invoke, CLI yardımcıları ve özel ajan araçları aynı plugin
izin sınırını paylaşır. Tehlikeli plugin node komutları yine açık
gateway.nodes.allowCommands opt-in’i gerektirir.
Bir node bildirilen komut listesini değiştirdikten sonra, eski cihaz eşlemesini reddedin
ve gateway’in güncellenmiş komut anlık görüntüsünü saklaması için yeni isteği onaylayın.
Ekran görüntüleri (canvas anlık görüntüleri)
Node Canvas’ı (WebView) gösteriyorsa,canvas.snapshot { format, base64 } döndürür.
CLI yardımcısı (geçici dosyaya yazar ve MEDIA:<path> yazdırır):
Canvas kontrolleri
canvas present, URL’leri veya yerel dosya yollarını (--target) ve konumlandırma için isteğe bağlı--x/--y/--width/--heightdeğerlerini kabul eder.canvas eval, satır içi JS (--js) veya konumsal bir arg kabul eder.
A2UI (Canvas)
- Yalnızca A2UI v0.8 JSONL desteklenir (v0.9/createSurface reddedilir).
Fotoğraflar + videolar (node kamerası)
Fotoğraflar (jpg):
mp4):
canvas.*vecamera.*için node foregrounded olmalıdır (arka plan çağrılarıNODE_BACKGROUND_UNAVAILABLEdöndürür).- Aşırı büyük base64 payload’larını önlemek için klip süresi sınırlandırılır (şu anda
<= 60s). - Android mümkün olduğunda
CAMERA/RECORD_AUDIOizinlerini sorar; reddedilen izinler*_PERMISSION_REQUIREDile başarısız olur.
Ekran kayıtları (node’lar)
Desteklenen node’larscreen.record (mp4) sunar. Örnek:
screen.recordkullanılabilirliği node platformuna bağlıdır.- Ekran kayıtları
<= 60sile sınırlandırılır. --no-audio, desteklenen platformlarda mikrofon yakalamayı devre dışı bırakır.- Birden fazla ekran varsa ekran seçmek için
--screen <index>kullanın.
Konum (node’lar)
Node’lar, ayarlarda Konum etkinleştirildiğindelocation.get sunar.
CLI yardımcısı:
- Konum varsayılan olarak kapalıdır.
- “Always” sistem izni gerektirir; arka plan getirmesi en iyi çabadır.
- Yanıt lat/lon, doğruluk (metre) ve zaman damgası içerir.
SMS (Android node’ları)
Android node’ları, kullanıcı SMS izni verdiğinde ve cihaz telefoniyi desteklediğindesms.send sunabilir.
Düşük düzey çağrı:
- Capability reklamı yapılmadan önce izin istemi Android cihazda kabul edilmelidir.
- Telefonisi olmayan yalnızca Wi-Fi cihazlar
sms.sendreklamını yapmaz.
Android cihaz + kişisel veri komutları
Android node’ları, ilgili capability’ler etkinleştirildiğinde ek komut ailelerini reklam edebilir. Kullanılabilir aileler:device.status,device.info,device.permissions,device.healthnotifications.list,notifications.actionsphotos.latestcontacts.search,contacts.addcalendar.events,calendar.addcallLog.searchsms.searchmotion.activity,motion.pedometer
- Hareket komutları, kullanılabilir sensörlere göre yetenek kapılıdır.
Sistem komutları (node host / mac node)
macOS node,system.run, system.notify ve system.execApprovals.get/set sunar.
Headless node host, system.run, system.which ve system.execApprovals.get/set sunar.
Örnekler:
system.run, payload içinde stdout/stderr/çıkış kodu döndürür.- Shell yürütmesi artık
host=nodeileexecaracı üzerinden geçer;nodes, açık node komutları için doğrudan RPC yüzeyi olarak kalır. nodes invoke,system.runveyasystem.run.preparesunmaz; bunlar yalnızca exec yolunda kalır.- Exec yolu, onaydan önce kanonik bir
systemRunPlanhazırlar. Bir onay verildiğinde Gateway, sonradan çağıran tarafından düzenlenmiş command/cwd/session alanlarını değil, saklanan o planı iletir. system.notify, macOS uygulamasındaki bildirim izni durumuna uyar.- Tanınmayan node
platform/deviceFamilymetadata’sı,system.runvesystem.whichkomutlarını dışarıda bırakan korumacı bir varsayılan izin listesi kullanır. Bilinmeyen bir platform için bu komutlara bilerek ihtiyaç duyuyorsanız, bunlarıgateway.nodes.allowCommandsüzerinden açıkça ekleyin. system.run,--cwd,--env KEY=VAL,--command-timeoutve--needs-screen-recordingdestekler.- Shell sarmalayıcıları (
bash|sh|zsh ... -c/-lc) için istek kapsamlı--envdeğerleri açık bir izin listesine indirgenir (TERM,LANG,LC_*,COLORTERM,NO_COLOR,FORCE_COLOR). - İzin listesi modunda her zaman izin ver kararlarında, bilinen gönderim sarmalayıcıları (
env,nice,nohup,stdbuf,timeout) sarmalayıcı yolları yerine iç yürütülebilir dosya yollarını kalıcı hale getirir. Sarmalamayı açmak güvenli değilse, hiçbir izin listesi girdisi otomatik olarak kalıcı hale getirilmez. - İzin listesi modundaki Windows node host’larında,
cmd.exe /cüzerinden shell sarmalayıcı çalıştırmaları onay gerektirir (izin listesi girdisi tek başına sarmalayıcı biçimini otomatik olarak izinli yapmaz). system.notify,--priority <passive|active|timeSensitive>ve--delivery <system|overlay|auto>destekler.- Node host’ları
PATHgeçersiz kılmalarını yok sayar ve tehlikeli başlangıç/shell anahtarlarını ayıklar (DYLD_*,LD_*,NODE_OPTIONS,PYTHON*,PERL*,RUBYOPT,SHELLOPTS,PS4). Ek PATH girdilerine ihtiyacınız varsa,PATHdeğerini--envile geçirmek yerine node host hizmet ortamını yapılandırın (veya araçları standart konumlara yükleyin). - macOS node modunda
system.run, macOS uygulamasındaki exec onayları tarafından kapılanır (Settings → Exec approvals). Ask/allowlist/full, headless node host ile aynı davranır; reddedilen istemlerSYSTEM_RUN_DENIEDdöndürür. - Headless node host’ta
system.run, exec onayları (~/.openclaw/exec-approvals.json) tarafından kapılanır.
Exec node bağlama
Birden fazla node kullanılabilir olduğunda exec’i belirli bir node’a bağlayabilirsiniz. Bu,exec host=node için varsayılan node’u ayarlar (ve ajan başına geçersiz kılınabilir).
Global varsayılan:
İzinler haritası
Node’lar,node.list / node.describe içinde izin adına göre anahtarlanmış (örn. screenRecording, accessibility) ve boolean değerlere sahip (true = verilmiş) bir permissions haritası içerebilir.
Headless node host (platformlar arası)
OpenClaw, Gateway WebSocket’e bağlanan vesystem.run / system.which sunan bir headless node host (UI yok) çalıştırabilir. Bu, Linux/Windows üzerinde
veya bir sunucunun yanında minimal bir node çalıştırmak için kullanışlıdır.
Başlatın:
- Eşleme hâlâ gereklidir (Gateway bir cihaz eşleme istemi gösterir).
- Node host, node kimliğini, token’ını, görünen adını ve gateway bağlantı bilgilerini
~/.openclaw/node.jsoniçinde saklar. - Exec onayları yerel olarak
~/.openclaw/exec-approvals.jsonüzerinden uygulanır (bkz. Exec onayları). - macOS’te headless node host, varsayılan olarak
system.runkomutunu yerel olarak yürütür.system.runkomutunu eşlikçi uygulama exec host’u üzerinden yönlendirmek içinOPENCLAW_NODE_EXEC_HOST=appayarlayın; uygulama host’unu zorunlu kılmak ve kullanılamıyorsa kapalı başarısız olmak içinOPENCLAW_NODE_EXEC_FALLBACK=0ekleyin. - Gateway WS TLS kullanıyorsa
--tls/--tls-fingerprintekleyin.
Mac node modu
- macOS menü çubuğu uygulaması Gateway WS sunucusuna bir node olarak bağlanır (böylece
openclaw nodes …bu Mac’e karşı çalışır). - Uzak modda uygulama, Gateway portu için bir SSH tüneli açar ve
localhostkonumuna bağlanır.