OpenClaw macOS Yardımcısı (menü çubuğu + gateway aracısı)
macOS uygulaması, OpenClaw için menü çubuğu yardımcısıdır. İzinleri yönetir, Gateway’i yerel olarak yönetir/ona bağlanır (launchd veya el ile) ve macOS yeteneklerini ajan için bir düğüm olarak açığa çıkarır.Ne yapar
- Menü çubuğunda yerel bildirimleri ve durumu gösterir.
- TCC istemlerini yönetir (Notifications, Accessibility, Screen Recording, Microphone, Speech Recognition, Automation/AppleScript).
- Gateway’i çalıştırır veya ona bağlanır (yerel ya da uzak).
- Yalnızca macOS’e özgü araçları açığa çıkarır (Canvas, Camera, Screen Recording,
system.run). - Uzak modda yerel düğüm ana makinesi hizmetini başlatır (launchd), yerel modda durdurur.
- İsteğe bağlı olarak UI otomasyonu için PeekabooBridge barındırır.
- İstek üzerine npm, pnpm veya bun üzerinden genel CLI’yi (
openclaw) kurar (uygulama önce npm’i, sonra pnpm’i, sonra bun’ı tercih eder; Node önerilen Gateway çalışma zamanı olmaya devam eder).
Yerel ve uzak mod
- Yerel (varsayılan): uygulama, varsa çalışan yerel bir Gateway’e bağlanır;
aksi halde
openclaw gateway installile launchd hizmetini etkinleştirir. - Uzak: uygulama, SSH/Tailscale üzerinden bir Gateway’e bağlanır ve asla yerel bir işlem başlatmaz. Uzak Gateway’in bu Mac’e ulaşabilmesi için uygulama yerel düğüm ana makinesi hizmetini başlatır. Uygulama Gateway’i alt işlem olarak oluşturmaz. Gateway keşfi artık ham tailnet IP’leri yerine Tailscale MagicDNS adlarını tercih eder, böylece tailnet IP’leri değiştiğinde Mac uygulaması daha güvenilir şekilde toparlanır.
Launchd denetimi
Uygulama,ai.openclaw.gateway etiketli kullanıcı başına bir LaunchAgent yönetir
(--profile/OPENCLAW_PROFILE kullanıldığında ai.openclaw.<profile>; eski com.openclaw.* yine de kaldırılır).
ai.openclaw.<profile> ile değiştirin.
LaunchAgent kurulu 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 eşlemi bildirir.
Düğüm hizmeti + uygulama IPC:
- Başsız düğüm ana makinesi hizmeti çalıştığında (uzak mod), Gateway WS’ye bir düğüm olarak bağlanır.
system.run, yerel bir Unix soketi üzerinden macOS uygulamasında (UI/TCC bağlamı) yürütülür; istemler ve çıktı uygulama içinde kalır.
Yürütme onayları (system.run)
system.run, macOS uygulamasındaki Exec approvals tarafından denetlenir (Settings → Exec approvals).
Güvenlik + sorma + izin listesi Mac üzerinde yerel olarak şurada saklanır:
allowlistgirdileri, çözümlenmiş ikili dosya yolları için glob kalıplarıdır.- Kabuk denetim veya genişletme söz dizimi (
&&,||,;,|,`,$,<,>,(,)) içeren ham kabuk komut metni, izin listesi kaçırması olarak değerlendirilir ve açık onay gerektirir (veya kabuk ikili dosyasının izin listesine alınmasını). - İstemde “Always Allow” seçmek, bu komutu izin listesine ekler.
system.runortam geçersiz kılmaları filtrelenir (PATH,DYLD_*,LD_*,NODE_OPTIONS,PYTHON*,PERL*,RUBYOPT,SHELLOPTS,PS4kaldırılır) ve ardından uygulamanın ortamıyla birleştirilir.- Kabuk sarmalayıcıları için (
bash|sh|zsh ... -c/-lc), istek kapsamlı ortam geçersiz kılmaları küçük ve açık bir izin listesine indirilir (TERM,LANG,LC_*,COLORTERM,NO_COLOR,FORCE_COLOR). - İzin listesi modundaki 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ılaştırır. Sarmalı açmak güvenli değilse, otomatik olarak hiçbir izin listesi girdisi kalıcılaştırılmaz.
Deep link’ler
Uygulama, yerel eylemler içinopenclaw:// URL şemasını kaydeder.
openclaw://agent
Bir Gateway agent isteğini tetikler.
OC_I18N_900004
Sorgu parametreleri:
message(zorunlu)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 mesaj sınırı uygular vedeliver/to/channelparametrelerini yok sayar.- Geçerli bir
keyile çalışma gözetimsizdir (kişisel otomasyonlar için tasarlanmıştır).
Onboarding akışı (tipik)
- OpenClaw.app uygulamasını kurun ve başlatın.
- İzinler kontrol listesini tamamlayın (TCC istemleri).
- Yerel modun etkin olduğundan ve Gateway’in çalıştığından emin olun.
- Terminal erişimi istiyorsanız CLI’yi kurun.
Durum dizini yerleşimi (macOS)
OpenClaw durum dizininizi iCloud veya bulutla eşitlenen başka klasörlere koymaktan kaçının. Eşitleme destekli yollar gecikme ekleyebilir ve zaman zaman oturumlar ile kimlik bilgileri için dosya kilidi/eşitleme yarışlarına neden olabilir. Şu gibi yerel, eşitlenmeyen bir durum yolu tercih edin: OC_I18N_900005openclaw doctor, durum dizinini şuralarda algılarsa:
~/Library/Mobile Documents/com~apple~CloudDocs/...~/Library/CloudStorage/...
Derleme ve geliştirme iş akışı (yerel)
cd apps/macos && swift buildswift run OpenClaw(veya Xcode)- Uygulamayı paketleyin:
scripts/package-mac-app.sh
Gateway bağlantısını hata ayıklama (macOS CLI)
Uygulamayı başlatmadan, macOS uygulamasının kullandığı aynı Gateway WebSocket el sıkışmasını ve keşif mantığını sınamak için hata ayıklama CLI’sini kullanın. OC_I18N_900006 Bağlantı seçenekleri:--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ını 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ı
local. ile yapılandırılmış geniş alan etki alanı,
geniş alan ve Tailscale Serve yedekleriyle birlikte) Node CLI’nin dns-sd tabanlı keşfinden
farklı olup olmadığını görmek için openclaw gateway discover --json ile karşılaştırın.
Uzak bağlantı altyapısı (SSH tünelleri)
macOS uygulaması Uzak modda çalıştığında, yerel UI bileşenlerinin uzak bir Gateway ile sanki localhost üzerindeymiş gibi konuşabilmesi için bir SSH tüneli açar.Kontrol tüneli (Gateway WebSocket portu)
- Amaç: sağlık denetimleri, durum, Web Chat, yapılandırma ve diğer kontrol düzlemi çağrıları.
- Yerel port: Gateway portu (varsayılan
18789), her zaman sabittir. - 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 biçimi: BatchMode +
ExitOnForwardFailure + keepalive seçenekleriyle
ssh -N -L <local>:127.0.0.1:<remote>. - IP bildirimi: SSH tüneli loopback kullanır, bu yüzden 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şımayı kullanın (bkz. macOS uzak erişim).