OpenClaw macOS Yardımcı Uygulaması (menü çubuğu + gateway broker)
macOS uygulaması, OpenClaw için menü çubuğu yardımcı uygulamasıdır. İzinlerin sahipliğini üstlenir, Gateway’e yerel olarak (launchd veya manuel) bağlanır/yönetir ve macOS yeteneklerini bir düğüm olarak ajana sunar.Ne yapar
- Menü çubuğunda yerel bildirimleri ve durumu gösterir.
- TCC istemlerinin (Bildirimler, Erişilebilirlik, Ekran Kaydı, Mikrofon, Konuşma Tanıma, Otomasyon/AppleScript) sahipliğini üstlenir.
- Gateway’i çalıştırır veya ona bağlanır (yerel veya uzak).
- macOS’e özgü araçları açığa çıkarır (Canvas, Kamera, Ekran Kaydı,
system.run). - Yerel düğüm ana makinesi hizmetini remote modda (launchd) başlatır ve local modda durdurur.
- İsteğe bağlı olarak UI otomasyonu için PeekabooBridge barındırır.
- İstek üzerine npm/pnpm aracılığıyla global CLI’yi (
openclaw) kurar (Gateway çalışma zamanı için bun önerilmez).
Yerel vs uzak mod
- Local (varsayılan): uygulama, mevcutsa çalışan yerel bir Gateway’e bağlanır;
aksi halde launchd hizmetini
openclaw gateway installüzerinden etkinleştirir. - Remote: uygulama, SSH/Tailscale üzerinden bir Gateway’e bağlanır ve asla yerel bir süreç başlatmaz. Uzak Gateway’in bu Mac’e erişebilmesi için yerel düğüm ana makinesi hizmetini başlatır. Uygulama, Gateway’i alt süreç olarak başlatmaz.
Launchd denetimi
Uygulama, kullanıcı başına bir LaunchAgent’ibot.molt.gateway etiketiyle yönetir
(--profile/OPENCLAW_PROFILE kullanıldığında bot.molt.<profile>;
eski com.openclaw.* hâlâ unload eder).
bot.molt.<profile> ile değiştirin.
LaunchAgent yüklü değilse, uygulamadan etkinleştirin veya
openclaw gateway install komutunu çalıştırın.
Düğüm yetenekleri (mac)
macOS uygulaması kendisini bir düğüm olarak sunar. Yaygın komutlar:- Canvas:
canvas.present,canvas.navigate,canvas.eval,canvas.snapshot,canvas.a2ui.* - Kamera:
camera.snap,camera.clip - Ekran:
screen.record - Sistem:
system.run,system.notify
permissions haritası raporlar.
Düğüm hizmeti + uygulama IPC:
- Başsız düğüm ana makinesi hizmeti çalıştığında (remote mod), Gateway WS’ye bir düğüm olarak bağlanır.
system.run, macOS uygulamasında (UI/TCC bağlamı) yerel bir Unix soketi üzerinden çalışır; istemler ve çıktı uygulama içinde kalır.
Exec onayları (system.run)
system.run, macOS uygulamasındaki Exec onayları (Ayarlar → Exec onayları) tarafından denetlenir.
Güvenlik + sorma + izin listesi Mac üzerinde yerel olarak şurada saklanır:
allowlistgirdileri, çözümlenmiş ikili dosya yolları için glob desenleridir.- İstemde “Her Zaman İzin Ver” seçilmesi, bu komutu izin listesine ekler.
system.runortam geçersiz kılmaları filtrelenir (PATH,DYLD_*,LD_*,NODE_OPTIONS,PYTHON*,PERL*,RUBYOPTbırakılır) ve ardından uygulamanın ortamıyla birleştirilir.
Derin bağlantılar
Uygulama, yerel eylemler içinopenclaw:// URL şemasını kaydeder.
openclaw://agent
Bir Gateway agent isteğini tetikler.
message(gerekli)sessionKey(isteğe bağlı)thinking(isteğe bağlı)deliver/to/channel(isteğe bağlı)timeoutSeconds(isteğe bağlı)key(isteğe bağlı, gözetimsiz mod anahtarı)
keyolmadan, uygulama onay ister.keyolmadan uygulama, onay istemi için kısa bir mesaj sınırı uygular vedeliver/to/channelalanlarını yok sayar.- Geçerli bir
keyile çalıştırma gözetimsizdir (kişisel otomasyonlar için tasarlanmıştır).
Onboarding akışı (tipik)
- OpenClaw.app’i kurun ve başlatın.
- İzinler kontrol listesini tamamlayın (TCC istemleri).
- Local modun etkin olduğundan ve Gateway’in çalıştığından emin olun.
- Terminal erişimi istiyorsanız CLI’yi kurun.
Build & geliştirme iş akışı (yerel)
cd apps/macos && swift buildswift run OpenClaw(veya Xcode)- Uygulamayı paketleme:
scripts/package-mac-app.sh
Gateway bağlantısını hata ayıklama (macOS CLI)
Uygulamayı başlatmadan, macOS uygulamasının kullandığı Gateway WebSocket el sıkışması ve keşif mantığının aynısını denemek için debug CLI’yi kullanın.--url <ws://host:port>: yapılandırmayı geçersiz kıl--mode <local|remote>: yapılandırmadan çözümle (varsayılan: yapılandırma veya yerel)--probe: yeni bir sağlık yoklaması zorla--timeout <ms>: istek zaman aşımı (varsayılan:15000)--json: karşılaştırma için yapılandırılmış çıktı
--include-local: “yerel” olarak filtrelenecek gateway’leri dahil et--timeout <ms>: genel keşif penceresi (varsayılan:2000)--json: karşılaştırma için yapılandırılmış çıktı
openclaw gateway discover --json ile karşılaştırarak,
macOS uygulamasının keşif hattının (NWBrowser + tailnet DNS‑SD geri dönüşü) Node CLI’nin
dns-sd tabanlı keşfinden farklı olup olmadığını görün.
Uzak bağlantı tesisatı (SSH tünelleri)
macOS uygulaması Remote modda çalıştığında, yerel UI bileşenlerinin uzak bir Gateway ile sanki localhost’taymış gibi konuşabilmesi için bir SSH tüneli açar.Denetim tüneli (Gateway WebSocket portu)
- Amaç: sağlık kontrolleri, durum, Web Chat, yapılandırma ve diğer kontrol düzlemi çağrıları.
- Yerel port: Gateway portu (varsayılan
18789), her zaman sabit. - Uzak port: uzak ana makinedeki aynı Gateway portu.
- Davranış: rastgele yerel port yoktur; uygulama mevcut sağlıklı bir tüneli yeniden kullanır veya gerekirse yeniden başlatır.
- SSH şekli: BatchMode +
ExitOnForwardFailure + keepalive seçenekleriyle
ssh -N -L <local>:127.0.0.1:<remote>. - IP raporlama: SSH tüneli loopback kullanır, bu nedenle gateway düğüm IP’sini
127.0.0.1olarak görür. Gerçek istemci IP’sinin görünmesini istiyorsanız Direct (ws/wss) taşımasını kullanın (bkz. macOS remote access).