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 (ör. canvas.*, camera.*, device.*, notifications.*, system.*) sunan yardımcı bir cihazdır (macOS/iOS/Android/başsız). Protokol ayrıntıları: Gateway protocol.
Eski transport: Bridge protocol (TCP JSONL;
yalnızca güncel Node’lar için tarihsel).
macOS ayrıca Node modunda da çalışabilir: menubar uygulaması Gateway’in
WS sunucusuna bağlanır ve yerel canvas/kamera 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 ana makinesi tarafından
(openclaw node run veya kurulu Node servisi) yürütülür.
Notlar:
- Node’lar çevre birimleridir, Gateway değildir. Gateway servisini çalıştırmazlar.
- Telegram/WhatsApp/vb. mesajları Node’lara değil, Gateway’e gelir.
- Sorun giderme çalışma kitabı: /nodes/troubleshooting
Eşleştirme + durum
WS Node’lar cihaz eşleştirmesi kullanır. Node’larconnect sırasında bir cihaz kimliği sunar; Gateway
role: node için bir cihaz eşleştirme isteği oluşturur. Bunu 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şleştirme rolünodeiçerdiğinde bir Node’u paired olarak işaretler.- Cihaz eşleştirme kaydı, kalıcı onaylı rol sözleşmesidir. Token döndürme bu sözleşmenin içinde kalır; eşleştirme onayının hiç vermediği farklı bir role eşleştirilmiş Node’u yükseltemez.
node.pair.*(CLI:openclaw nodes pending/approve/reject/rename) ayrı, Gateway sahipliğinde bir Node eşleştirme deposudur; WSconnectel sıkışmasını kapılamaz.- Onay kapsamı, bekleyen isteğin bildirilmiş komutlarını 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 ana makinesi (system.run)
Gateway’iniz bir makinede çalışırken komutların
başka bir makinede yürütülmesini istiyorsanız bir Node ana makinesi kullanın.
Model yine Gateway ile konuşur; host=node seçildiğinde Gateway
exec çağrılarını Node ana makinesine iletir.
Neyi neresi çalıştırır
- Gateway ana makinesi: mesajları alır, modeli çalıştırır, araç çağrılarını yönlendirir.
- Node ana makinesi: Node makinesinde
system.run/system.whichyürütür. - Onaylar:
~/.openclaw/exec-approvals.jsonüzerinden Node ana makinesinde uygulanır.
- Onay destekli Node çalıştırmaları tam istek bağlamına bağlanır.
- Doğrudan kabuk/çalışma zamanı dosya yürütmeleri için OpenClaw ayrıca mümkün olan en iyi şekilde tek bir somut yerel dosya işlenenini bağlar ve yürütmeden önce bu dosya değişirse çalıştırmayı reddeder.
- OpenClaw bir yorumlayıcı/çalışma zamanı komutu için tam olarak tek bir somut yerel dosya belirleyemezse, tam çalışma zamanı kapsamı varmış gibi yapmak yerine onay destekli yürütme reddedilir. Daha geniş yorumlayıcı davranışı için sandboxing, ayrı ana makineler veya açık bir güvenilen allowlist/tam iş akışı kullanın.
Node ana makinesini başlatma (ön plan)
Node makinesinde:SSH tüneli üzerinden uzak Gateway (loopback bind)
Gateway loopback’e bağlıysa (gateway.bind=loopback, yerel modda varsayılan),
uzak Node ana makineleri doğrudan bağlanamaz. Bir SSH tüneli oluşturun ve
Node ana makinesini tünelin yerel ucuna yönlendirin.
Örnek (Node ana makinesi -> Gateway ana makinesi):
openclaw node run, token veya parola auth destekler.- Env var’lar tercih edilir:
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD. - Config geri dönüşü:
gateway.auth.token/gateway.auth.password. - Yerel modda Node ana makinesi bilerek
gateway.remote.token/gateway.remote.passworddeğerlerini yok sayar. - Uzak modda
gateway.remote.token/gateway.remote.password, uzak öncelik kurallarına göre uygun kabul edilir. - Etkin yerel
gateway.auth.*SecretRef’leri yapılandırılmış ama çözümlenmemişse Node-ana-makinesi auth’ı fail-closed olur. - Node-ana-makinesi auth çözümlemesi yalnızca
OPENCLAW_GATEWAY_*env var’larını dikkate alır.
Node ana makinesini başlatma (servis)
Eşleştirme + ad verme
Gateway ana makinesinde:openclaw devices list
komutunu yeniden çalıştırın ve geçerli requestId’yi 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 geçersiz kılması).
Komutları allowlist’e alın
Exec onayları Node ana makinesi başınadır. Gateway üzerinden allowlist girdileri ekleyin:~/.openclaw/exec-approvals.json konumunda bulunur.
Exec’i Node’a yönlendirin
Varsayılanları yapılandırın (Gateway config’i):host=node kullanan tüm exec çağrıları Node ana makinesinde ç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. Oturum için varsayılanın Node exec 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 seviye (ham RPC):Ekran görüntüleri (Canvas anlık görüntüleri)
Node Canvas’ı gösteriyorsa (WebView),canvas.snapshot { format, base64 } döndürür.
CLI yardımcısı (geçici bir dosyaya yazar ve MEDIA:<path> yazdırır):
Canvas denetimleri
canvas present, URL’leri veya yerel dosya yollarını (--target) kabul eder; konumlandırma için isteğe bağlı--x/--y/--width/--heightde destekler.canvas eval, satır içi JS (--js) veya konumsal bir argüman kabul eder.
A2UI (Canvas)
- Yalnızca A2UI v0.8 JSONL desteklenir (
v0.9/createSurfacereddedilir).
Fotoğraflar + videolar (Node kamera)
Fotoğraflar (jpg):
mp4):
canvas.*vecamera.*için Node’un ön planda olması gerekir (arka plan çağrılarıNODE_BACKGROUND_UNAVAILABLEdöndürür).- Büyük boyutlu base64 yüklerini önlemek için klip süresi sınırlandırılır (şu anda
<= 60s). - Android mümkün olduğunda
CAMERA/RECORD_AUDIOizinlerini ister; 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 çok ekran olduğunda bir ekran seçmek için
--screen <index>kullanın.
Konum (Node’lar)
Node’lar, ayarlarda Location etkin olduğundalocation.get sunar.
CLI yardımcısı:
- Konum varsayılan olarak kapalıdır.
- “Always” sistem izni gerektirir; arka plan getirme mümkün olan en iyi şekilde yapılı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 telefon özelliğini desteklediğindesms.send sunabilir.
Düşük seviye çağrı:
- Yeteneğin ilan edilmesinden önce Android cihazında izin istemi kabul edilmelidir.
- Telefon özelliği olmayan yalnızca Wi‑Fi cihazlar
sms.sendyeteneğini ilan etmez.
Android cihaz + kişisel veri komutları
Android Node’lar, ilgili yetenekler etkin olduğunda ek komut aileleri ilan 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
- Motion komutları, mevcut sensörlere göre yetenek kapılıdır.
Sistem komutları (Node ana makinesi / mac Node)
macOS Node’usystem.run, system.notify ve system.execApprovals.get/set sunar.
Başsız Node ana makinesi system.run, system.which ve system.execApprovals.get/set sunar.
Örnekler:
system.run, yükte stdout/stderr/çıkış kodunu döndürür.- Kabuk yürütmesi artık
host=nodeileexecaracı üzerinden yapılır;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, daha sonra çağıran tarafından düzenlenmiş komut/cwd/oturum alanlarını değil, bu saklanan planı iletir. system.notify, macOS uygulamasındaki bildirim izin durumuna uyar.- Tanınmayan Node
platform/deviceFamilymeta verileri,system.runvesystem.whichkomutlarını hariç tutan muhafazakâr bir varsayılan allowlist kullanır. Bilinmeyen bir platform için bu komutlara bilerek ihtiyacınız varsa, bunlarıgateway.nodes.allowCommandsile açıkça ekleyin. system.run,--cwd,--env KEY=VAL,--command-timeoutve--needs-screen-recordingdestekler.- Kabuk sarmalayıcıları için (
bash|sh|zsh ... -c/-lc), istek kapsamlı--envdeğerleri açık bir allowlist’e indirgenir (TERM,LANG,LC_*,COLORTERM,NO_COLOR,FORCE_COLOR). - Allowlist modunda her zaman izin ver kararları için, bilinen dispatch sarmalayıcıları (
env,nice,nohup,stdbuf,timeout) sarmalayıcı yolları yerine iç yürütülebilir yolları kalıcı hale getirir. Sarmalayıcı açma güvenli değilse hiçbir allowlist girdisi otomatik olarak kalıcı hale getirilmez. - Windows Node ana makinelerinde allowlist modunda,
cmd.exe /cüzerinden kabuk sarmalayıcı çalıştırmaları onay gerektirir (tek başına allowlist girdisi bu sarmalayıcı biçimini otomatik olarak izinli yapmaz). system.notify,--priority <passive|active|timeSensitive>ve--delivery <system|overlay|auto>destekler.- Node ana makineleri
PATHgeçersiz kılmalarını yok sayar ve tehlikeli başlangıç/kabuk anahtarlarını temizler (DYLD_*,LD_*,NODE_OPTIONS,PYTHON*,PERL*,RUBYOPT,SHELLOPTS,PS4). Ek PATH girdilerine ihtiyacınız varsa--envilePATHgeçirmek yerine Node ana makinesi servis ortamını yapılandırın (veya araçları standart konumlara kurun). - macOS Node modunda
system.run, macOS uygulamasındaki exec onayları tarafından kapılanır (Settings → Exec approvals). Ask/allowlist/full, başsız Node ana makinesiyle aynı davranır; reddedilen istemlerSYSTEM_RUN_DENIEDdöndürür. - Başsız Node ana makinesinde
system.run, exec onayları tarafından kapılanır (~/.openclaw/exec-approvals.json).
Exec Node bağlama
Birden çok Node mevcut olduğunda exec’i belirli bir Node’a bağlayabilirsiniz. Bu,exec host=node için varsayılan Node’u ayarlar (ve aracı başına geçersiz kılınabilir).
Genel varsayılan:
İzinler haritası
Node’lar, izin adına göre anahtarlanmış (screenRecording, accessibility gibi) ve boolean değerler (true = verildi) taşıyan bir permissions haritasını node.list / node.describe içinde içerebilir.
Başsız Node ana makinesi (çapraz platform)
OpenClaw, Gateway WebSocket’ine bağlanan vesystem.run / system.which sunan başsız bir Node ana makinesi (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şleştirme yine gereklidir (Gateway bir cihaz eşleştirme istemi gösterecektir).
- Node ana makinesi, Node kimliğini, token’ını, görüntü adını ve Gateway bağlantı bilgilerini
~/.openclaw/node.jsoniçinde saklar. - Exec onayları yerelde
~/.openclaw/exec-approvals.jsonüzerinden uygulanır (bkz. Exec approvals). - macOS’ta başsız Node ana makinesi varsayılan olarak
system.runkomutunu yerelde yürütür.system.runçağrılarını yardımcı uygulama exec ana makinesine yönlendirmek içinOPENCLAW_NODE_EXEC_HOST=appayarlayın; uygulama ana makinesini zorunlu kılmak ve yoksa fail-closed olmak içinOPENCLAW_NODE_EXEC_FALLBACK=0ekleyin. - Gateway WS TLS kullanıyorsa
--tls/--tls-fingerprintekleyin.
Mac Node modu
- macOS menubar 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
localhostadresine bağlanır.