دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

استعمل Claude Code من Spotlight وSiri فـ macOS

تعلّم كيفاش تثبّت Claude ديال Siri، تربطو بحساب Claude Code موثّق، تفعّل اكتشاف المزوّدين التجريبي، وتصيفط التعليمات النصّية عبر Spotlight. هاد الدليل كيشرح حتى البنية ديال المشروع، قيود الأمان، أدوات الاختبار، خطوات حلّ المشاكل، والحدود الحالية.

استعمل Claude Code من Spotlight وSiri فـ macOS

شنو كيدير Claude مع Siri

Claude مع Siri هو مشروع تجريبي فـ macOS كيخلي حساب Claude Code اللي داخل به متاح كمزوّد فـ macOS Spotlight والواجهات المرتابطة بـ Siri. التطبيق ديالو فشريط القوائم كيشغّل جسر Swift مدمج، كيتلقى الطلبات من إضافة مزوّد خدامة فـ sandbox، كينادي على Claude Code CLI المحلي، وكيدوز الردود النصية بالتدريج لواجهة الرد الأصلية ديال Apple.

تحذير أمني: المشروع كيحتاج macOS 27 مع تعطيل System Integrity Protection وApple Mobile File Integrity. هاد الشي كينقص بزاف من حمايات الأمان ديال macOS. استعمل Mac مخصص للتطوير، وماشي الجهاز الرئيسي ولا ديال الإنتاج. التطبيق والسكريبتات ديالو ما كيعطلوش هاد الحمايات بلاصتك.

هاد المشروع مجرد إثبات مستقل للفكرة، وماشي تكامل رسمي ديال Apple ولا Anthropic. كيعتمد على واجهات API خاصة ومحددة للإصدار التجريبي، وتجرب فـ macOS 27 build 26A428 مع Xcode 27 27A266a.

الخصائص الرئيسية والحدود

شنو خدام دابا

  • تم توضيح اكتشاف المزوّد، والموافقة، وتشغيله فـ Spotlight.
  • جسر Swift يقدر يكمل الطلبات المباشرة باستعمال حساب Claude Code موثّق.
  • الردود كتوصل بالتدريج لواجهة الرد الأصلية ديال Apple.
  • كل طلب كيبدا محادثة جديدة.
  • دعم Writing Tools مطبّق على النص المحدد، ولكن مازال ما تمش التحقق منو فالواجهة الأصلية.
  • تطبيق شريط القوائم فيه أدوات لاختبار الاتصال، وتفعيل الاكتشاف، وإرجاع سلوك الاكتشاف العادي.

حدود مهمة

  • المزوّد كيتعامل غير مع النصوص.
  • ما كيولّدش الصور وما كيقبلش المرفقات.
  • ما يقدرش ينفذ إجراءات على الجهاز.
  • ما كيوصلش للبريد، وجهات الاتصال، والرسائل، ولا للفهرس الدلالي ديال Siri.
  • توجيه الصوت مازال ما تمش التحقق منو.
  • ما كايناش طريقة موثّقة باش تخلي هاد الإضافة هي المزوّد الافتراضي على مستوى النظام فـ Ask.
  • Spotlight، وقائمة Ask المنفصلة ديال Siri، وإعدادات النظام يقدرو يبيّنو لوائح مختلفة ديال المزوّدين.

واجهة الإعداد العامة ديال Apple تقدر تذكر توليد الصور ولا تعرض أيقونة مؤقتة. هاد العناصر ما كتمثلش القدرات اللي كيوفرها هاد المشروع. الطريقة الموثوقة للتوجيه هي تختار صراحة Ask… → Claude مع كل طلب فـ Spotlight.

المتطلبات الأساسية

قبل ما تثبّت المشروع، وجد Mac ديال التطوير بالبرامج والإعدادات المطلوبة:

  • macOS 27 مع SIP وAMFI معطّلين من قبل.
  • Xcode 27، مع قبول الرخصة وإكمال تثبيت المكونات فالتشغيل الأول.
  • Homebrew لتثبيت XcodeGen.
  • XcodeGen.
  • Claude Code، مثبّت ودخلتي فيه للحساب.
  • Git وإمكانية الولوج للطرفية.

ثبّت XcodeGen باستعمال Homebrew:

brew install xcodegen

وثّق الدخول لـ Claude Code:

claude auth login

تقدر تتأكد من حالة الحساب قبل ما تكمل:

claude auth status

تثبيت Claude مع Siri

1. نسخ المستودع

git clone https://github.com/mpociot/claude-siri-ai.git
cd claude-siri-ai

2. بناء التطبيق وتثبيتو

./scripts/install.sh

المثبّت كيبني التطبيق، كيحطّو فـ ~/Applications/Claude.app وكيحلّو. التثبيت كيتوقف إلا كان شي تطبيق آخر شاد نفس المسار بالضبط. تطبيق Anthropic الموجود فـ /Applications/Claude.app مستقل وما كيتعارضش مع مسار التثبيت المحلي ديال المستخدم.

البناء كيستعمل نسخة Xcode المحددة بواسطة xcode-select. إلا كان دليل المطوّر الخطأ هو المفعّل، حدّد Xcode بشكل صريح:

DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer ./scripts/install.sh

3. اختبار الاتصال بـ Claude Code

حلّ تطبيق Claude المثبّت وكليكي على Test Connection. التطبيق كيقلب فالمواقع الشائعة على Claude CLI. إلا ما قدرش يلقى الملف التنفيذي الصحيح، استعمل Choose Claude CLI… واختارو يدوياً.

4. تفعيل اكتشاف المزوّد

كليكي على Enable in Spotlight… ودير المصادقة فنافذة مسؤول macOS. التطبيق كيعيد تشغيل Siri وSpotlight مؤقتاً مع توسيع اكتشاف المزوّدين، باش يقدر macOS يلقى الإضافة المخصصة.

هاد الآلية مؤقتة. من بعد ما تعاود تشغيل Mac ولا خدمات Siri، يمكن تحتاج تكليكي مرة أخرى على Enable in Spotlight…. استعمل Restore Normal Discovery باش تحيد التجاوز المؤقت ديال العملية.

إرسال أول طلب ديالك

  1. خلي تطبيق Claude فشريط القوائم خدام.
  2. ضغط على ⌘Space باش تحلّ Spotlight.
  3. كليكي بالزر الأيمن فحقل إدخال Spotlight.
  4. اختار Ask… → Claude.
  5. دخل طلب نصي وصيفطو.
  6. إلا عرض macOS واجهة الموافقة ديال Apple، كمّل خطوات Turn On.

مثلاً، تقدر تسول:

Explain the difference between async and parallel programming in three short paragraphs.

خاص الرد يوصل بالتدريج للواجهة الأصلية ديال Apple. حيث كل طلب كيبدا محادثة جديدة، ما تفترضش أن Claude غادي يتفكر الطلبات السابقة اللي صيفطتيها عبر Spotlight.

سدّ نافذة إعدادات التطبيق ما كيوقفش الجسر؛ كيبقى متاح عبر شريط القوائم. فعّل Open at login إلا بغيتي التطبيق يبدا أوتوماتيكياً، ولكن هاد الاختيار ماشي ضروري.

كيفاش كيخدم التكامل

Spotlight / Siri
  → ClaudeProvider.appex معزول فـ sandbox
  → HTTP/NDJSON موثّق على 127.0.0.1:17839
  → جسر Swift داخل Claude.app
  → Claude Code CLI داخل بحسابك
  → نص كيتبعت بالتدريج
  → جواب Siri أصلي

إكستنشن ديال provider معزول فـ sandbox وكيتواصل مع التطبيق المضيف عبر loopback ديال IPv4. التطبيق المضيف كيبقى خارج الـsandbox باش يقدر يطلق Claude Code CLI.

مع كل طلب، كيشغّل CLI فـمجلد مؤقت وخاص، والأدوات معطّلة، وما كاينين حتى MCP servers، وبـsafe mode، وبلا تكامل مع Chrome، وبلا محادثة دائمة. الإدخال المؤقت ديال prompt كيتحيد من بعد التنفيذ. حسب توثيق المشروع، الجسر ما كيسجّلش الـprompts ولا الأجوبة ولا بيانات الدخول.

السيرفر المحلي كيوثّق كل طلب وكيرفض Origin headers ديال المتصفح وتأطير HTTP اللي يقدر يكون ملتبس. حتى هو كيحدّ من حجم body ديال الطلب، والاتصالات المفتوحة، وعدد عمليات Claude المتزامنة، ومدة التنفيذ.

فهم الرمز المحلي

الـbuild كينشئ مرة وحدة bearer token عشوائي فـ .local/bridge.json وكيدمجو فـ targets ديال التطبيق المضيف والإكستنشن. إعادة البناء كتحافظ على الرمز. ما توزّعش bundle ديال تطبيق compiled فيه الرمز المحلي ديالك.

الرمز كيساعد يمنع الولوج غير المقصود ولا الولوج عبر المتصفح، ولكن ماشي حدّ أمني ضد شي process محلي آخر يقدر يقرا bundle ديال التطبيق.

فهم الاكتشاف

اكتشاف provider كيستعمل runtime shim مؤقت ومحدود النطاق داخل processes ديال Siri وprovider الموجودة أصلاً فـApple. ما كيبدّلش binaries ديال Apple، ولا launch plists، ولا boot arguments، ولا entitlement checks، ولا موافقة provider. خاصك باقي توافق على provider عبر مسار الموافقة الأصلي ديال Apple.

أوامر البناء والتطوير

البناء بلا تثبيت

./scripts/build.sh

تثبيت build موجود

./scripts/install.sh --skip-build

XcodeGen كينشئ المشروع. الـhost والإكستنشن بجوج كيستعملو entitlement الخاص com.apple.developer.model-delegation وكيتوقّعو بتوقيع ad-hoc. هاد الإعداد ما كيعطيش entitlement ديال Apple قابل للتوزيع.

من بعد التثبيت، التطبيق كيدمج bridge وdiscovery script وdiscovery shim compiled. بالتالي التطبيق المثبّت ما كيحتاجش checkout ديال repository، ولا Xcode، ولا Python وقت التشغيل. خاص Claude Code يبقى مثبّت وداخل بحساب موثّق. أثناء جلسات الاكتشاف، ما تحرّكش التطبيق المثبّت من المسار الحالي ديالو.

التحكم فالاكتشاف من سطر الأوامر

./scripts/discovery-session.sh start
./scripts/discovery-session.sh stop

الأمر الأول كيبدا جلسة الاكتشاف المؤقتة. الأمر الثاني كيرجّع سلوك الاكتشاف العادي.

اختبار المشروع

تشغيل مجموعة اختبارات Swift

swift test --scratch-path .local/swift-build

اختبارات Swift الأصلية ما كتحتاجش حساب Claude. كاينين عشرة اختبارات كيغطيّو توثيق HTTP والتحقق من الطلبات، وتوصيل النص بالتدريج، ومعالجة الإكمال والأخطاء، وانتهاء مهلة العملية وإلغائها، ودورة حقيقية عبر localhost باستعمال CLI وهمي.

تشغيل طلب حي عبر الجسر

./scripts/smoke.sh

هاد الأمر كيبعث طلب حي واحد عبر التطبيق اللي خدام وحساب Claude ديالك الموثّق. الجواب الناجح المذكور فالتوثيق هو Claude bridge works.

فحص توقيع الإكستنشن والتطبيق

pluginkit -m -A -D -v -i dev.goldengate.Claude.Provider
codesign --verify --deep --strict "$HOME/Applications/Claude.app"

الأمر الأول كيتحقق واش macOS سجّل إكستنشن ديال provider. الثاني كيتحقق من توقيع الكود ديال التطبيق المثبّت.

حل المشاكل

الجسر ما كيبداش

سدّ النسخ المكررة ديال Claude for Siri وتحقق واش شي process آخر كيستعمل TCP port 17839. غير الجسر المقصود هو اللي خاصو يسمع فهاد port.

Claude ما كيبانش فـقائمة Ask

حلّ التطبيق وعاود شغّل Enable in Spotlight…. كمّل أي طلب موافقة ديال macOS يبان. ممكن خاص الاكتشاف يتعاود من بعد reboot ولا restart ديال خدمة Siri.

Claude CLI ما كيتكتاشفش

تأكد أن Claude Code مثبّت وداخل بحساب موثّق باستعمال claude auth status. من بعد استعمل Choose Claude CLI… فالتطبيق باش تختار الملف التنفيذي يدوياً.

Spotlight وSystem Settings ما متافقينش

هادشي نتيجة معروفة لمسار اكتشاف provider التجريبي. Spotlight وقائمة Ask المنفصلة ديال Siri وSystem Settings يقدرو يعطيو لوائح مختلفة ديال providers. ظهور provider فواجهة وحدة ما كيضمنش يبان فكل الواجهات.

Claude ما كيتستعملش أوتوماتيكياً

هاد المشروع ما كيوفّرش إعداد موثّق ديال provider الافتراضي. حتى إلا كان Claude مختار فمحادثة سابقة، حلّ كل طلب جديد ديال Spotlight عبر Ask… → Claude. التطبيق كيتفادى عن قصد يعرض تحكم Make default غير موثّق.

الاستعمال المتقدم ونصائح السلامة

  • استعمل آلة منفصلة للتطوير، حيث إن تعطيل SIP وAMFI كيضعّف الحمايات الأساسية ديال نظام التشغيل.
  • خلّي التطبيق المثبّت فـ ~/Applications/Claude.app طول ما جلسة الاكتشاف ناشطة.
  • استعمل Restore Normal Discovery ولا ./scripts/discovery-session.sh stop ملي ما تبقاش محتاج للاكتشاف التجريبي.
  • ما توزّعش الحزم المبنية محلياً، حيث فيها bearer token اللي تولّد للإعداد ديالك.
  • شغّل اختبارات Swift قبل ما تبدّل المصادقة ديال الجسر، ولا البث، ولا المهلة، ولا سلوك الإلغاء.
  • استعمل اختبار الدخان باش تفرّق بين مشاكل الجسر ولا الحساب ومشاكل اكتشاف Spotlight.
  • توقّع طلبات مستقلة، ماشي محادثات مستمرة.
  • ما تعتمدش على Writing Tools، ولا توجيه الصوت، ولا سلوك المزوّد الافتراضي بلا ما تدير اختبارات أصلية مستقلة.

الخلاصة

كيبيّن Claude for Siri كيفاش إضافة مزوّد معزولة فـ macOS، وجسر Swift محلي ومصادق عليه، وClaude Code يقدرو يبثّو ردود نصية لواجهة Ask الأصلية ديال Spotlight. المشروع مفيد للتجارب والتطوير، ولكن واجهاته الخاصة، والحمايات المخفّضة ديال النظام، وآلية الاكتشاف المؤقتة، وسلوكات Siri اللي ما تْتحقّقاش، كيخلّيوه غير مناسب للاستعمال العادي فالإنتاج.