تطبيق Clawdbot لنظام macOS

يوفر تطبيق Clawdbot المرافق لـ macOS تكاملاً مع شريط القوائم وإدارة الأذونات وإمكانيات macOS الأصلية لمساعد الذكاء الاصطناعي الخاص بك.

نظرة عامة على مرافق Clawdbot لـ macOS

تطبيق Clawdbot لـ macOS هو المرافق في شريط القوائم لـ Clawdbot. يمتلك الأذونات، ويدير/يتصل بالبوابة محلياً (launchd أو يدوياً)، ويكشف إمكانيات macOS للوكيل كعقدة.

ما يقوم به

  • يعرض الإشعارات الأصلية والحالة في شريط القوائم
  • يمتلك طلبات TCC (الإشعارات، إمكانية الوصول، تسجيل الشاشة، الميكروفون، التعرف على الكلام، الأتمتة/AppleScript)
  • يشغّل أو يتصل بالبوابة (محلياً أو عن بُعد)
  • يكشف أدوات macOS الحصرية (Canvas، الكاميرا، تسجيل الشاشة، system.run)
  • يدير خدمة مضيف العقدة المحلية
  • يثبّت CLI العام (clawdbot) عبر npm/pnpm عند الطلب

الوضع المحلي مقابل البعيد

الوضعالوصف
محلي (افتراضي)التطبيق يتصل بالبوابة المحلية العاملة؛ يُفعّل خدمة launchd إذا لزم الأمر
بعيدالتطبيق يتصل بالبوابة عبر SSH/Tailscale؛ يبدأ خدمة مضيف العقدة المحلية

التطبيق لا يُنشئ البوابة كعملية فرعية.

التحكم في Launchd

يدير التطبيق LaunchAgent لكل مستخدم بعلامة bot.molt.gateway (أو bot.molt.<profile> عند استخدام --profile).

# إعادة تشغيل البوابة
launchctl kickstart -k gui/$UID/bot.molt.gateway

# إيقاف البوابة
launchctl bootout gui/$UID/bot.molt.gateway

إذا لم يكن LaunchAgent مثبتاً، فعّله من التطبيق أو نفّذ:

clawdbot gateway install

إمكانيات العقدة (macOS)

يقدم تطبيق macOS نفسه كعقدة بهذه الإمكانيات:

الفئةالأوامر
Canvascanvas.present، canvas.navigate، canvas.eval، canvas.snapshot
الكاميراcamera.snap، camera.clip
الشاشةscreen.record
النظامsystem.run، system.notify

تُبلغ العقدة عن خريطة الأذونات حتى يتمكن الوكلاء من تحديد ما هو مسموح به.

موافقات التنفيذ (system.run)

يتم التحكم في system.run بواسطة موافقات التنفيذ في تطبيق macOS (الإعدادات ← موافقات التنفيذ).

التكوين مخزن في:

~/.clawdbot/exec-approvals.json

مثال على التكوين:

{
  "version": 1,
  "defaults": {
    "security": "deny",
    "ask": "on-miss"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "on-miss",
      "allowlist": [{"pattern": "/opt/homebrew/bin/rg"}]
    }
  }
}

ملاحظات:

  • إدخالات قائمة السماح هي أنماط glob لمسارات الملفات التنفيذية المحللة
  • اختيار "السماح دائماً" في الطلب يضيف هذا الأمر إلى قائمة السماح

الروابط العميقة

يسجل التطبيق مخطط URL clawdbot:// للإجراءات المحلية.

clawdbot://agent

يُطلق طلب وكيل البوابة:

open 'clawdbot://agent?message=Hello%20from%20deep%20link'

معلمات الاستعلام:

المعلمةالوصف
messageمطلوب - الرسالة المراد إرسالها
sessionKeyاختياري - معرف الجلسة
thinkingاختياري - تفعيل وضع التفكير
deliver / to / channelاختياري - هدف التسليم
timeoutSecondsاختياري - مهلة الطلب
keyاختياري - مفتاح الوضع غير المراقب

الأمان: بدون key، يطلب التطبيق التأكيد.

تدفق الإعداد الأولي

  1. ثبّت وشغّل Clawdbot.app
  2. أكمل قائمة التحقق من الأذونات (طلبات TCC)
  3. تأكد من أن الوضع المحلي نشط والبوابة تعمل
  4. ثبّت CLI إذا كنت تريد الوصول من الطرفية

سير عمل البناء والتطوير

cd apps/macos && swift build
swift run Clawdbot  # أو استخدم Xcode

# حزم التطبيق
scripts/package-mac-app.sh

تصحيح اتصال البوابة

استخدم CLI التصحيح لاختبار مصافحة WebSocket للبوابة:

cd apps/macos
swift run clawdbot-mac connect --json
swift run clawdbot-mac discover --timeout 3000 --json

خيارات الاتصال:

الخيارالوصف
--url <ws://host:port>تجاوز التكوين
--mode <local|remote>الحل من التكوين
--probeفرض فحص صحة جديد
--timeout <ms>مهلة الطلب (الافتراضي: 15000)
--jsonإخراج منظم

الاتصال عن بُعد (أنفاق SSH)

للوصول عن بُعد للبوابة:

# نفق التحكم (منفذ WebSocket للبوابة)
ssh -N -L 18789:127.0.0.1:18789 user@host

الخطوات التالية