Asosiy tarkibga o'tish

Tugunlar

  1. Tugun — bu Gateway WebSocket’iga (operatorlar bilan bir xil port) role: "node" bilan ulanadigan va node.invoke orqali 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). Notes:
    1. Tugunlar — periferiyalar, shlyuzlar emas. 12. Ular gateway xizmatini ishga tushirmaydi.
    1. Telegram/WhatsApp va boshqalar xabarlari tugunlarga emas, gateway’ga keladi.
    1. 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.
  1. Tezkor CLI:
19. openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>
openclaw nodes status
openclaw nodes describe --node <idOrNameOrIp>
Notes:
    1. nodes status tugunni juftlangan deb belgilaydi, agar uning qurilma juftlash roli nodeni o‘z ichiga olsa.
    1. node.pair.* (CLI: openclaw nodes pending/approve/reject) — gatewayga tegishli alohida tugun juftlash ombori; u WS connect qo‘l siqish jarayonini to‘sib qo‘ymaydi.

23. Masofaviy tugun xosti (system.run)

  1. Gateway bir mashinada ishlayotgan bo‘lsa va buyruqlarni boshqa mashinada bajarishni istasangiz, tugun xostidan foydalaning. 25. Model baribir gateway bilan muloqot qiladi; host=node tanlanganda gateway exec chaqiruvlarini tugun xostiga yo‘naltiradi.

26. Qayerda nima ishlaydi

    1. Gateway xosti: xabarlarni qabul qiladi, modelni ishga tushiradi, asbob chaqiruvlarini marshrutlaydi.
    1. Tugun xosti: tugun mashinasida system.run/system.which ni bajaradi.
    1. Tasdiqlar: tugun xostida ~/.openclaw/exec-approvals.json orqali majburlanadi.

30. Tugun xostini ishga tushirish (oldingi rejim)

  1. Tugun mashinasida:
32. openclaw node run --host <gateway-host> --port 18789 --display-name "Build Node"

33. SSH tunneli orqali masofaviy gateway (loopback bind)

  1. 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.
  2. 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"
Notes:
    1. Token — gateway konfiguratsiyasidagi gateway.auth.token (~/.openclaw/openclaw.json gateway xostida).
    1. openclaw node run autentifikatsiya uchun OPENCLAW_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

  1. Gateway xostida:
45. openclaw nodes pending
openclaw nodes approve <requestId>
openclaw nodes list
  1. Nomlash variantlari:
    1. openclaw node run / openclaw node install dagi --display-name (tugunda ~/.openclaw/node.json ichida saqlanadi).
    1. openclaw nodes rename --node <id|name|ip> --name "Build Node" (gateway darajasida bekor qilish/ustuvor nom).

49. Buyruqlarni ruxsatlar ro‘yxatiga qo‘shish

  1. 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"
  1. Tasdiqlar (approvals) tugun xostida ~/.openclaw/exec-approvals.json da saqlanadi.

4. exec’ni tugunga yo‘naltiring

  1. 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>"
  1. Yoki sessiya bo‘yicha:
8. /exec host=node security=allowlist node=<id-or-name>
  1. O‘rnatilgandan so‘ng, host=node bilan chaqirilgan har qanday exec tugun xostida ishlaydi (tugun allowlist/tasdiqlariga bo‘ysunadi).
  2. Bog‘liq:

14. Buyruqlarni chaqirish

  1. Past daraja (raw RPC):
16. openclaw nodes invoke --node <idOrNameOrIp> --command canvas.eval --params '{"javaScript":"location.href"}'
  1. Keng tarqalgan “agentga MEDIA ilovasini berish” ish jarayonlari uchun yuqori darajadagi yordamchilar mavjud.

18. Skrinshotlar (canvas snapshotlari)

  1. Agar tugun Canvas’ni (WebView) ko‘rsatayotgan bo‘lsa, canvas.snapshot { format, base64 } ni qaytaradi.
  2. 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"
Notes:
  • Eslatmalar:
    1. canvas eval inline 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>
Notes:
    1. Faqat A2UI v0.8 JSONL qo‘llab-quvvatlanadi (v0.9/createSurface rad etiladi).

31. Fotosuratlar + videolar (tugun kamerasi)

  1. 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
  1. Video kliplar (mp4):
35. openclaw nodes camera clip --node <idOrNameOrIp> --duration 10s
openclaw nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio
Notes:
    1. canvas.* va camera.* uchun tugun oldingi rejimda (foregrounded) bo‘lishi kerak (fon chaqiruvlari NODE_BACKGROUND_UNAVAILABLE ni qaytaradi).
    1. Klip davomiyligi haddan oshmasligi uchun cheklanadi (hozirda <= 60s) — katta base64 payloadlarning oldini olish uchun.
    1. Android imkon bo‘lganda CAMERA/RECORD_AUDIO ruxsatlarini so‘raydi; rad etilgan ruxsatlar *_PERMISSION_REQUIRED bilan xato beradi.

40. Ekran yozuvlari (tugunlar)

  1. 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
Notes:
    1. screen.record uchun tugun ilovasi oldingi rejimda bo‘lishi kerak.
    1. Android yozishni boshlashdan oldin tizimning ekran yozib olish oynasini ko‘rsatadi.
    1. Ekran yozuvlari <= 60s bilan cheklanadi.
    1. --no-audio mikrofon yozuvini o‘chiradi (iOS/Android’da qo‘llab-quvvatlanadi; macOS tizim audio yozuvini ishlatadi).
    1. Bir nechta ekran mavjud bo‘lsa, displeyni tanlash uchun --screen <index> dan foydalaning.

50. Joylashuv (tugunlar)

  1. Sozlamalarda Location yoqilgan bo‘lsa, tugunlar location.get ni taqdim etadi.
  2. 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.
    1. Javob lat/lon, aniqlik (metrda) va vaqt tamg‘asini o‘z ichiga oladi.

8. SMS (Android tugunlari)

  1. Android tugunlari foydalanuvchi SMS ruxsatini berganda va qurilma telefoniyani qo‘llab-quvvatlaganda sms.send ni taqdim etishi mumkin.
  2. Past darajadagi chaqirish:
11. openclaw nodes invoke --node <idOrNameOrIp> --command sms.send --params '{"to":"+15555550123","message":"Hello from OpenClaw"}'
Notes:
    1. Imkoniyat e’lon qilinishidan oldin Android qurilmada ruxsat so‘rovi qabul qilinishi kerak.
    1. Telefoniyasiz, faqat Wi‑Fi qurilmalar sms.send ni e’lon qilmaydi.

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.
  1. Misollar:
33. openclaw config set tools.exec.node "node-id-or-name"
Notes:
    1. system.run yuklamada stdout/stderr/chiqish kodini qaytaradi.
    1. system.notify macOS ilovasidagi bildirishnoma ruxsati holatiga amal qiladi.
  • system.run supports --cwd, --env KEY=VAL, --command-timeout, and --needs-screen-recording.
  • system.notify supports --priority <passive|active|timeSensitive> and --delivery <system|overlay|auto>.
  • Node hostlar PATH override larini e’tiborsiz qoldiradi. Agar qo‘shimcha PATH yozuvlari kerak bo‘lsa, --env orqali PATH uzatish o‘rniga node host xizmati muhitini sozlang (yoki vositalarni standart joylarga o‘rnating).
    1. macOS tugun rejimida system.run macOS ilovasidagi exec approvals orqali cheklanadi (Settings → Exec approvals).
    2. Ask/allowlist/full headless tugun xosti bilan bir xil ishlaydi; rad etilgan so‘rovlar SYSTEM_RUN_DENIED ni qaytaradi.
    1. Headless tugun xostida system.run exec approvals orqali cheklanadi (~/.openclaw/exec-approvals.json).

29. Exec tugun bog‘lash

  1. Bir nechta tugun mavjud bo‘lsa, exec’ni muayyan tugunga bog‘lashingiz mumkin.
  2. Bu exec host=node uchun sukutiy tugunni o‘rnatadi (va har bir agent bo‘yicha alohida o‘zgartirilishi mumkin).
  3. Global sukut:
33. openclaw config set tools.exec.node "node-id-or-name"
  1. Agent bo‘yicha override:
35. openclaw config get agents.list
openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
  1. 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

  1. Tugunlar node.list / node.describe da ruxsat nomi (masalan, screenRecording, accessibility) bo‘yicha kalitlangan va mantiqiy qiymatlarga (true = berilgan) ega permissions xaritasini o‘z ichiga olishi mumkin.

40. Headless tugun xosti (kross-platforma)

  1. OpenClaw Gateway WebSocket’iga ulanadigan va system.run / system.which ni taqdim etadigan headless tugun xostini (UI’siz) ishga tushirishi mumkin. 42. Bu Linux/Windows’da yoki server yonida minimal tugunni ishga tushirish uchun foydali.
  2. Uni ishga tushirish:
44. openclaw node run --host <gateway-host> --port 18789
Notes:
    1. Juftlash hali ham talab qilinadi (Gateway tugunni tasdiqlash oynasini ko‘rsatadi).
    1. Tugun xosti o‘z tugun identifikatori, tokeni, ko‘rinadigan nomi va gateway ulanish ma’lumotlarini ~/.openclaw/node.json da saqlaydi.
    1. Exec approvals mahalliy ravishda ~/.openclaw/exec-approvals.json orqali majburiy qilinadi (qarang Exec approvals).
    1. 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=app ni o‘rnating, yoki fallback’ni o‘chirish uchun OPENCLAW_NODE_EXEC_FALLBACK=0 ni belgilang.
    1. Gateway WS TLS dan foydalanganda --tls / --tls-fingerprint qo‘shish.

2. Mac node rejimi

    1. macOS menyu paneli ilovasi Gateway WS serveriga node sifatida ulanadi (shunda openclaw nodes … ushbu Mac’ga nisbatan ishlaydi).
    1. Masofaviy rejimda ilova Gateway porti uchun SSH tunnel ochadi va localhost ga ulanadi.