Tugunlar¶
- Tugun — bu Gateway WebSocket’iga (operatorlar bilan bir xil port)
role: "node"bilan ulanadigan vanode.invokeorqali buyruqlar sirtini (masalan,canvas.*,camera.*,system.*) taqdim etadigan hamroh qurilma (macOS/iOS/Android/headless). 7. Protokol tafsilotlari: Gateway protocol.
Eski transport: Bridge protocol (TCP JSONL; joriy tugunlar uchun eskirgan/olib tashlangan).
macOS shuningdek tugun rejimida ham ishlashi mumkin: menubar ilovasi Gateway’ning WS serveriga ulanadi va o‘zining mahalliy canvas/camera buyruqlarini tugun sifatida taqdim etadi (shunda openclaw nodes … ushbu Mac’ga nisbatan ishlaydi).
Eslatmalar:
-
- Tugunlar — periferiyalar, shlyuzlar emas. 12. Ular gateway xizmatini ishga tushirmaydi.
-
- Telegram/WhatsApp va boshqalar xabarlari tugunlarga emas, gateway’ga keladi.
-
- Nosozliklarni bartaraf etish qo‘llanmasi: /nodes/troubleshooting
Juftlash + holat¶
WS nodes use device pairing. Nodes present a device identity during connect; the Gateway
creates a device pairing request for role: node. 17. Qurilmalar CLI (yoki UI) orqali tasdiqlang.
- Tezkor CLI:
19. openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>
openclaw nodes status
openclaw nodes describe --node <idOrNameOrIp>
- Eslatmalar:
-
nodes statustugunni juftlangan deb belgilaydi, agar uning qurilma juftlash rolinodeni o‘z ichiga olsa.
-
node.pair.*(CLI:openclaw nodes pending/approve/reject) — gatewayga tegishli alohida tugun juftlash ombori; u WSconnectqo‘l siqish jarayonini to‘sib qo‘ymaydi.
23. Masofaviy tugun xosti (system.run)¶
- Gateway bir mashinada ishlayotgan bo‘lsa va buyruqlarni boshqa mashinada bajarishni istasangiz, tugun xostidan foydalaning. 25. Model baribir gateway bilan muloqot qiladi;
host=nodetanlanganda gatewayexecchaqiruvlarini tugun xostiga yo‘naltiradi.
26. Qayerda nima ishlaydi¶
-
- Gateway xosti: xabarlarni qabul qiladi, modelni ishga tushiradi, asbob chaqiruvlarini marshrutlaydi.
-
- Tugun xosti: tugun mashinasida
system.run/system.whichni bajaradi.
- Tugun xosti: tugun mashinasida
-
- Tasdiqlar: tugun xostida
~/.openclaw/exec-approvals.jsonorqali majburlanadi.
- Tasdiqlar: tugun xostida
30. Tugun xostini ishga tushirish (oldingi rejim)¶
- Tugun mashinasida:
32. openclaw node run --host <gateway-host> --port 18789 --display-name "Build Node"
33. SSH tunneli orqali masofaviy gateway (loopback bind)¶
-
Agar Gateway loopback’ga bog‘lansa (
gateway.bind=loopback, lokal rejimda sukut bo‘yicha), masofaviy tugun xostlari to‘g‘ridan-to‘g‘ri ulana olmaydi. 35. SSH tunnel yarating va tugun xostini tunnelning lokal uchiga yo‘naltiring. -
Misol (tugun xosti -> gateway xosti):
37. # Terminal A (ishlab tursin): lokal 18790 -> gateway 127.0.0.1:18789 yo‘naltirish
ssh -N -L 18790:127.0.0.1:18789 user@gateway-host
# Terminal B: gateway tokenini eksport qiling va tunnel orqali ulaning
export OPENCLAW_GATEWAY_TOKEN="<gateway-token>"
openclaw node run --host 127.0.0.1 --port 18790 --display-name "Build Node"
- Eslatmalar:
-
- Token — gateway konfiguratsiyasidagi
gateway.auth.token(~/.openclaw/openclaw.jsongateway xostida).
- Token — gateway konfiguratsiyasidagi
-
openclaw node runautentifikatsiya uchunOPENCLAW_GATEWAY_TOKENni o‘qiydi.
41. Tugun xostini ishga tushirish (xizmat)¶
42. openclaw node install --host <gateway-host> --port 18789 --display-name "Build Node"
openclaw node restart
43. Juftlash + nomlash¶
- Gateway xostida:
45. openclaw nodes pending
openclaw nodes approve <requestId>
openclaw nodes list
- Nomlash variantlari:
-
openclaw node run/openclaw node installdagi--display-name(tugunda~/.openclaw/node.jsonichida saqlanadi).
-
openclaw nodes rename --node <id|name|ip> --name "Build Node"(gateway darajasida bekor qilish/ustuvor nom).
49. Buyruqlarni ruxsatlar ro‘yxatiga qo‘shish¶
- Exec tasdiqlari har bir tugun xosti uchun alohida. 1. Shlyuzdan allowlist yozuvlarini qo‘shing:
2. openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"
- Tasdiqlar (approvals) tugun xostida
~/.openclaw/exec-approvals.jsonda saqlanadi.
4. exec’ni tugunga yo‘naltiring¶
- Standart sozlamalarni sozlang (gateway config):
6. openclaw config set tools.exec.host node
openclaw config set tools.exec.security allowlist
openclaw config set tools.exec.node "<id-or-name>"
- Yoki sessiya bo‘yicha:
8. /exec host=node security=allowlist node=<id-or-name>
-
O‘rnatilgandan so‘ng,
host=nodebilan chaqirilgan har qandayexectugun xostida ishlaydi (tugun allowlist/tasdiqlariga bo‘ysunadi). -
Bog‘liq:
14. Buyruqlarni chaqirish¶
- Past daraja (raw RPC):
16. openclaw nodes invoke --node <idOrNameOrIp> --command canvas.eval --params '{"javaScript":"location.href"}'
- Keng tarqalgan “agentga MEDIA ilovasini berish” ish jarayonlari uchun yuqori darajadagi yordamchilar mavjud.
18. Skrinshotlar (canvas snapshotlari)¶
-
Agar tugun Canvas’ni (WebView) ko‘rsatayotgan bo‘lsa,
canvas.snapshot{ format, base64 }ni qaytaradi. -
CLI yordamchisi (vaqtinchalik faylga yozadi va
MEDIA:<path>ni chiqaradi):
21. openclaw nodes canvas snapshot --node <idOrNameOrIp> --format png
openclaw nodes canvas snapshot --node <idOrNameOrIp> --format jpg --max-width 1200 --quality 0.9
22. Canvas boshqaruvlari¶
openclaw nodes canvas present --node <idOrNameOrIp> --target https://example.com
openclaw nodes canvas hide --node <idOrNameOrIp>
openclaw nodes canvas navigate https://example.com --node <idOrNameOrIp>
openclaw nodes canvas eval --node <idOrNameOrIp> --js "document.title"
- Eslatmalar:
-
canvas presentURL’larni yoki lokal fayl yo‘llarini (--target) qabul qiladi, shuningdek joylashuv uchun ixtiyoriy--x/--y/--width/--heightparametrlarini qo‘llab-quvvatlaydi.
-
canvas evalinline JS (--js) yoki pozitsion argumentni qabul qiladi.
27. A2UI (Canvas)¶
28. openclaw nodes canvas a2ui push --node <idOrNameOrIp> --text "Hello"
openclaw nodes canvas a2ui push --node <idOrNameOrIp> --jsonl ./payload.jsonl
openclaw nodes canvas a2ui reset --node <idOrNameOrIp>
- Eslatmalar:
-
- Faqat A2UI v0.8 JSONL qo‘llab-quvvatlanadi (v0.9/createSurface rad etiladi).
31. Fotosuratlar + videolar (tugun kamerasi)¶
- Fotosuratlar (
jpg):
33. openclaw nodes camera list --node <idOrNameOrIp>
openclaw nodes camera snap --node <idOrNameOrIp> # standart: ikkala tomoni (2 ta MEDIA qatori)
openclaw nodes camera snap --node <idOrNameOrIp> --facing front
- Video kliplar (
mp4):
35. openclaw nodes camera clip --node <idOrNameOrIp> --duration 10s
openclaw nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio
- Eslatmalar:
-
canvas.*vacamera.*uchun tugun oldingi rejimda (foregrounded) bo‘lishi kerak (fon chaqiruvlariNODE_BACKGROUND_UNAVAILABLEni qaytaradi).
-
- Klip davomiyligi haddan oshmasligi uchun cheklanadi (hozirda
<= 60s) — katta base64 payloadlarning oldini olish uchun.
- Klip davomiyligi haddan oshmasligi uchun cheklanadi (hozirda
-
- Android imkon bo‘lganda
CAMERA/RECORD_AUDIOruxsatlarini so‘raydi; rad etilgan ruxsatlar*_PERMISSION_REQUIREDbilan xato beradi.
- Android imkon bo‘lganda
40. Ekran yozuvlari (tugunlar)¶
- Tugunlar
screen.record(mp4) ni taqdim etadi. 42. Misol:
43. openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10
openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10 --no-audio
- Eslatmalar:
-
screen.recorduchun tugun ilovasi oldingi rejimda bo‘lishi kerak.
-
- Android yozishni boshlashdan oldin tizimning ekran yozib olish oynasini ko‘rsatadi.
-
- Ekran yozuvlari
<= 60sbilan cheklanadi.
- Ekran yozuvlari
-
--no-audiomikrofon yozuvini o‘chiradi (iOS/Android’da qo‘llab-quvvatlanadi; macOS tizim audio yozuvini ishlatadi).
-
- Bir nechta ekran mavjud bo‘lsa, displeyni tanlash uchun
--screen <index>dan foydalaning.
- Bir nechta ekran mavjud bo‘lsa, displeyni tanlash uchun
50. Joylashuv (tugunlar)¶
-
Sozlamalarda Location yoqilgan bo‘lsa, tugunlar
location.getni taqdim etadi. -
CLI yordamchisi:
3. openclaw nodes location get --node <idOrNameOrIp>
openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000
Notes:
- Location is off by default.
- “Always” requires system permission; background fetch is best-effort.
-
- Javob lat/lon, aniqlik (metrda) va vaqt tamg‘asini o‘z ichiga oladi.
8. SMS (Android tugunlari)¶
-
Android tugunlari foydalanuvchi SMS ruxsatini berganda va qurilma telefoniyani qo‘llab-quvvatlaganda
sms.sendni taqdim etishi mumkin. -
Past darajadagi chaqirish:
11. openclaw nodes invoke --node <idOrNameOrIp> --command sms.send --params '{"to":"+15555550123","message":"Hello from OpenClaw"}'
- Eslatmalar:
-
- Imkoniyat e’lon qilinishidan oldin Android qurilmada ruxsat so‘rovi qabul qilinishi kerak.
-
- Telefoniyasiz, faqat Wi‑Fi qurilmalar
sms.sendni e’lon qilmaydi.
- Telefoniyasiz, faqat Wi‑Fi qurilmalar
15. Tizim buyruqlari (tugun xosti / mac tuguni)¶
The macOS node exposes system.run, system.notify, and system.execApprovals.get/set.
17. Headless tugun xosti system.run, system.which va system.execApprovals.get/set ni taqdim etadi.
- Misollar:
19. openclaw nodes run --node <idOrNameOrIp> -- echo "Hello from mac node"
openclaw nodes notify --node <idOrNameOrIp> --title "Ping" --body "Gateway ready"
Eslatmalar:
-
system.runyuklamada stdout/stderr/chiqish kodini qaytaradi.
-
system.notifymacOS ilovasidagi bildirishnoma ruxsati holatiga amal qiladi.
system.run--cwd,--env KEY=VAL,--command-timeoutva--needs-screen-recordingparametrlarini qo‘llab-quvvatlaydi.system.notify--priority <passive|active|timeSensitive>va--delivery <system|overlay|auto>parametrlarini qo‘llab-quvvatlaydi.-
- macOS tugunlari
PATHoverride’larini tashlab yuboradi; headless tugun xostlariPATHni faqat tugun xosti PATH’iga prefiks sifatida qo‘shilganda qabul qiladi.
- macOS tugunlari
-
- macOS tugun rejimida
system.runmacOS ilovasidagi exec approvals orqali cheklanadi (Settings → Exec approvals). - Ask/allowlist/full headless tugun xosti bilan bir xil ishlaydi; rad etilgan so‘rovlar
SYSTEM_RUN_DENIEDni qaytaradi.
- macOS tugun rejimida
-
- Headless tugun xostida
system.runexec approvals orqali cheklanadi (~/.openclaw/exec-approvals.json).
- Headless tugun xostida
29. Exec tugun bog‘lash¶
- Bir nechta tugun mavjud bo‘lsa, exec’ni muayyan tugunga bog‘lashingiz mumkin.
-
Bu
exec host=nodeuchun sukutiy tugunni o‘rnatadi (va har bir agent bo‘yicha alohida o‘zgartirilishi mumkin). -
Global sukut:
33. openclaw config set tools.exec.node "node-id-or-name"
- Agent bo‘yicha override:
35. openclaw config get agents.list
openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
- Istalgan tugunga ruxsat berish uchun olib tashlash:
37. openclaw config unset tools.exec.node
openclaw config unset agents.list[0].tools.exec.node
38. Ruxsatlar xaritasi¶
- Tugunlar
node.list/node.describeda ruxsat nomi (masalan,screenRecording,accessibility) bo‘yicha kalitlangan va mantiqiy qiymatlarga (true= berilgan) egapermissionsxaritasini o‘z ichiga olishi mumkin.
40. Headless tugun xosti (kross-platforma)¶
-
OpenClaw Gateway WebSocket’iga ulanadigan va
system.run/system.whichni taqdim etadigan headless tugun xostini (UI’siz) ishga tushirishi mumkin. 42. Bu Linux/Windows’da yoki server yonida minimal tugunni ishga tushirish uchun foydali. -
Uni ishga tushirish:
44. openclaw node run --host <gateway-host> --port 18789
- Eslatmalar:
-
- Juftlash hali ham talab qilinadi (Gateway tugunni tasdiqlash oynasini ko‘rsatadi).
-
- Tugun xosti o‘z tugun identifikatori, tokeni, ko‘rinadigan nomi va gateway ulanish ma’lumotlarini
~/.openclaw/node.jsonda saqlaydi.
- Tugun xosti o‘z tugun identifikatori, tokeni, ko‘rinadigan nomi va gateway ulanish ma’lumotlarini
-
- Exec approvals mahalliy ravishda
~/.openclaw/exec-approvals.jsonorqali majburiy qilinadi (qarang Exec approvals).
- Exec approvals mahalliy ravishda
-
- macOS’da headless tugun xosti, agar mavjud bo‘lsa, hamroh ilova exec xostini afzal ko‘radi va
ilova mavjud bo‘lmasa, mahalliy bajarishga qaytadi. 50. Ilovani majburiy qilish uchun
OPENCLAW_NODE_EXEC_HOST=appni o‘rnating, yoki fallback’ni o‘chirish uchunOPENCLAW_NODE_EXEC_FALLBACK=0ni belgilang.
- macOS’da headless tugun xosti, agar mavjud bo‘lsa, hamroh ilova exec xostini afzal ko‘radi va
ilova mavjud bo‘lmasa, mahalliy bajarishga qaytadi. 50. Ilovani majburiy qilish uchun
-
- Gateway WS TLS dan foydalanganda
--tls/--tls-fingerprintqo‘shish.
- Gateway WS TLS dan foydalanganda
2. Mac node rejimi¶
-
- macOS menyu paneli ilovasi Gateway WS serveriga node sifatida ulanadi (shunda
openclaw nodes …ushbu Mac’ga nisbatan ishlaydi).
- macOS menyu paneli ilovasi Gateway WS serveriga node sifatida ulanadi (shunda
-
- Masofaviy rejimda ilova Gateway porti uchun SSH tunnel ochadi va
localhostga ulanadi.
- Masofaviy rejimda ilova Gateway porti uchun SSH tunnel ochadi va