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 manuel) ve macOS yeteneklerini düğüm olarak agente sunar.Ne yapar
- Menü çubuğunda yerel bildirimleri ve durumu gösterir.
- TCC istemlerini yönetir (Bildirimler, Erişilebilirlik, Ekran Kaydı, Mikrofon, Konuşma Tanıma, Otomasyon/AppleScript).
- Gateway’i çalıştırır veya ona bağlanır (yerel ya da uzak).
- Yalnızca macOS’a özgü araçları sunar (Canvas, Camera, Screen Recording,
system.run). - Yerel düğüm ana hizmetini remote modda başlatır (launchd) ve local modda durdurur.
- İsteğe bağlı olarak UI otomasyonu için PeekabooBridge barındırır.
- Genel CLI’ı (
openclaw) istek üzerine npm, pnpm veya bun aracılığıyla kurar (uygulama önce npm’i, sonra pnpm’i, sonra bun’ı tercih eder; önerilen Gateway çalışma zamanı ise hâlâ Node’dur).
Yerel ve uzak mod
- Local (varsayılan): uygulama, varsa çalışan bir yerel Gateway’e bağlanır; yoksa launchd hizmetini
openclaw gateway installile etkinleştirir. - Remote: uygulama, SSH/Tailscale üzerinden bir Gateway’e bağlanır ve asla yerel bir süreç başlatmaz. Uygulama, uzak Gateway’in bu Mac’e erişebilmesi için yerel node host service hizmetini başlatır. Uygulama, Gateway’i alt süreç olarak başlatmaz. Gateway bulma 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 unload edilir).
ai.openclaw.<profile> ile değiştirin.
LaunchAgent kurulu değilse, uygulamadan etkinleştirin veya
openclaw gateway install çalıştırın.
Düğüm yetenekleri (mac)
macOS uygulaması kendini bir düğüm olarak sunar. Yaygın komutlar:- Canvas:
canvas.present,canvas.navigate,canvas.eval,canvas.snapshot,canvas.a2ui.* - Camera:
camera.snap,camera.clip - Screen:
screen.snapshot,screen.record - System:
system.run,system.notify
permissions eşlemesi bildirir.
Düğüm hizmeti + uygulama IPC:
- Başsız düğüm ana hizmeti çalışırken (remote 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 ile denetlenir (Ayarlar → Exec approvals).
Güvenlik + sor + izin listesi, Mac üzerinde yerel olarak şu dosyada saklanır:
allowlistgirdileri, çözümlenmiş ikili dosya yolları için glob desenleridir.- Kabuk denetimi 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 ikilisinin izin listesine alınmasını). - İstemde “Always Allow” seçildiğinde, bu komut izin listesine eklenir.
system.runortam değişkeni geçersiz kılmaları filtrelenir (PATH,DYLD_*,LD_*,NODE_OPTIONS,PYTHON*,PERL*,RUBYOPT,SHELLOPTS,PS4çıkarı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 indirgenir (TERM,LANG,LC_*,COLORTERM,NO_COLOR,FORCE_COLOR). - İzin listesi modunda her zaman izin ver kararları için, bilinen yönlendirme 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. Sarmalayıcının açılması güvenli değilse, otomatik olarak hiçbir izin listesi girdisi kalıcılaştırılmaz.
Derin bağlantılar
Uygulama, yerel işlemler 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 bir mesaj sınırı uygular vedeliver/to/channeldeğerlerini yok sayar.- Geçerli bir
keyile çalıştırma gözetimsiz olur (kişisel otomasyonlar için tasarlanmıştır).
İlk kurulum akışı (tipik)
- OpenClaw.app uygulamasını kurun ve başlatın.
- İzinler denetim listesini tamamlayın (TCC istemleri).
- Local modun etkin ve Gateway’in çalışıyor olduğundan emin olun.
- Terminal erişimi istiyorsanız CLI’ı 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 bazen oturumlar ile kimlik bilgileri için dosya kilidi/eşitleme yarışlarına neden olabilir. Şunun gibi eşitlenmeyen yerel bir durum yolu tercih edin: OC_I18N_900005openclaw doctor, durumun şu yollar altında olduğunu 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ı paketleme:
scripts/package-mac-app.sh
Gateway bağlantısını ayıklama (macOS CLI)
Uygulamayı başlatmadan, macOS uygulamasının kullandığı aynı Gateway WebSocket el sıkışmasını ve bulma mantığını çalıştırmak için hata ayıklama CLI’ını kullanın. OC_I18N_900006 Bağlantı seçenekleri:--url <ws://host:port>: yapılandırmayı geçersiz kılar--mode <local|remote>: yapılandırmadan çözümler (varsayılan: yapılandırma veya local)--probe: yeni bir sağlık yoklamasını zorlar--timeout <ms>: istek zaman aşımı (varsayılan:15000)--json: karşılaştırma için yapılandırılmış çıktı
--include-local: “local” olarak filtrelenecek Gateway’leri dahil eder--timeout <ms>: genel bulma penceresi (varsayılan:2000)--json: karşılaştırma için yapılandırılmış çıktı
local. artı yapılandırılmış geniş alan etki alanı; geniş alan ve Tailscale Serve geri dönüşleriyle birlikte), Node CLI’nın dns-sd tabanlı bulmasından 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ı Remote 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.Denetim 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ı tüneli yeniden kullanır veya gerekirse yeniden başlatır.
- SSH biçimi: BatchMode + ExitOnForwardFailure + keepalive seçenekleri ile
ssh -N -L <local>:127.0.0.1:<remote>. - IP raporlama: SSH tüneli loopback kullandığından, 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).