التطبيق المصاحب لنظام macOS
التحكم عن بُعد
يتيح لك هذا التدفق أن يعمل تطبيق macOS كجهاز تحكم عن بُعد كامل لبوابة OpenClaw تعمل على مضيف آخر (سطح مكتب/خادم). هذه هي ميزة التطبيق عن بعد عبر SSH (التشغيل عن بُعد). جميع الميزات — فحوصات الصحة، وإعادة توجيه Voice Wake، والدردشة عبر الويب — تعيد استخدام نفس إعدادات SSH عن بُعد من الإعدادات → عام.
الأوضاع
- محلي (هذا الـ Mac): كل شيء يعمل على الكمبيوتر المحمول. لا يتضمن SSH.
- عن بعد عبر SSH (الافتراضي): يتم تنفيذ أوامر OpenClaw على المضيف البعيد. يفتح تطبيق mac اتصال SSH باستخدام
-o BatchModeبالإضافة إلى هويتك/مفتاحك المختار وإعادة توجيه منفذ محلي. - مباشر عن بُعد (ws/wss): لا يوجد نفق SSH. يتصل تطبيق mac بعنوان URL للبوابة مباشرة (على سبيل المثال، عبر Tailscale Serve أو خادم وكيل عكسي عام HTTPS).
وسائط النقل عن بُعد
يدعم الوضع عن بُعد وسيطتي نقل:
- نفق SSH (الافتراضي): يستخدم
ssh -N -L ...لإعادة توجيه منفذ البوابة إلى localhost. سترى البوابة عنوان IP للعقدة كـ127.0.0.1لأن النفق هو loopback. - مباشر (ws/wss): يتصل مباشرة بعنوان URL للبوابة. ترى البوابة عنوان IP الحقيقي للعميل.
المتطلبات المسبقة على المضيف البعيد
- قم بتثبيت Node + pnpm وقم ببناء/تثبيت واجهة سطر أوامر OpenClaw (
pnpm install && pnpm build && pnpm link --global). - تأكد من أن
openclawموجود في PATH للأصداف غير التفاعلية (إنشاء رابط رمزي إلى/usr/local/binأو/opt/homebrew/binإذا لزم الأمر). - افتح SSH مع مصادقة المفتاح. نوصي بعناوين Tailscale IP للوصول المستقر خارج الشبكة المحلية.
إعداد تطبيق macOS
- افتح الإعدادات → عام.
- ضمن تشغيل OpenClaw، اختر عن بعد عبر SSH وقم بتعيين:
- وسيط النقل: نفق SSH أو مباشر (ws/wss).
- هدف SSH:
user@host(مع:portاختياري).- إذا كانت البوابة على نفس الشبكة المحلية وتعلن عن Bonjour، اخترها من القائمة المكتشفة لملء هذا الحقل تلقائيًا.
- عنوان URL للبوابة (مباشر فقط):
wss://gateway.example.ts.net(أوws://...للمحلي/الشبكة المحلية). - ملف الهوية (متقدم): المسار إلى مفتاحك.
- جذر المشروع (متقدم): مسار المستودع البعيد المستخدم للأوامر.
- مسار واجهة سطر الأوامر (متقدم): مسار اختياري لنقطة دخول/ثنائي
openclawقابل للتشغيل (يتم ملؤه تلقائيًا عند الإعلان عنه).
- اضغط على اختبار عن بُعد. يشير النجاح إلى أن الأمر البعيد
openclaw status --jsonيعمل بشكل صحيح. تشير الإخفاقات عادةً إلى مشاكل في PATH/واجهة سطر الأوامر؛ الخروج برمز 127 يعني أن واجهة سطر الأوامر لم يتم العثور عليها عن بُعد. - ستقوم فحوصات الصحة والدردشة عبر الويب الآن بالعمل عبر نفق SSH هذا تلقائيًا.
الدردشة عبر الويب
- نفق SSH: تتصل الدردشة عبر الويب بالبوابة عبر منفذ تحكم WebSocket المعاد توجيهه (الافتراضي 18789).
- مباشر (ws/wss): تتصل الدردشة عبر الويب مباشرة بعنوان URL للبوابة المُهيأ.
- لم يعد هناك خادم HTTP منفصل لـ WebChat.
الأذونات
- يحتاج المضيف البعيد إلى نفس موافقات TCC كما في الوضع المحلي (الأتمتة، إمكانية الوصول، تسجيل الشاشة، الميكروفون، التعرف على الكلام، الإشعارات). قم بتشغيل الإعداد التمهيدي على تلك الآلة لمنحها مرة واحدة.
- تعلن العقد عن حالة أذوناتها عبر
node.list/node.describeحتى تعرف الوكلاء ما هو متاح.
ملاحظات أمنية
- يُفضل ربط loopback على المضيف البعيد والاتصال عبر SSH أو Tailscale.
- يستخدم النفق عبر SSH فحصًا صارمًا لمفتاح المضيف؛ ثق بمفتاح المضيف أولاً حتى يكون موجودًا في
~/.ssh/known_hosts. - إذا قمت بربط البوابة بواجهة غير loopback، فتطلب مصادقة رمز/كلمة مرور.
- راجع الأمان و Tailscale.
تدفق تسجيل الدخول إلى WhatsApp (عن بُعد)
- قم بتشغيل
openclaw channels login --verboseعلى المضيف البعيد. امسح رمز QR الضوئي باستخدام WhatsApp على هاتفك. - أعد تشغيل تسجيل الدخول على ذلك المضيف إذا انتهت صلاحية المصادقة. سيكشف فحص الصحة عن مشاكل الارتباط.
استكشاف الأخطاء وإصلاحها
- الخروج برمز 127 / غير موجود:
openclawليس في PATH لأصداف غير تسجيل الدخول. أضفه إلى/etc/paths، أو ملف rc لأصدافك، أو أنشئ رابطًا رمزيًا إلى/usr/local/bin//opt/homebrew/bin. - فشل فحص الصحة: تحقق من إمكانية الوصول عبر SSH، وPATH، ومن أن Baileys قام بتسجيل الدخول (
openclaw status --json). - الدردشة عبر الويب عالقة: تأكد من أن البوابة تعمل على المضيف البعيد وأن المنفذ المعاد توجيهه يتطابق مع منفذ WS للبوابة؛ تتطلب واجهة المستخدم اتصال WS سليم.
- يظهر عنوان IP للعقدة كـ 127.0.0.1: متوقع مع نفق SSH. غيّر وسيط النقل إلى مباشر (ws/wss) إذا كنت تريد أن ترى البوابة عنوان IP الحقيقي للعميل.
- Voice Wake: يتم إعادة توجيه عبارات التشغيل تلقائيًا في الوضع عن بُعد؛ لا حاجة إلى مُوجّه منفصل.
أصوات الإشعارات
اختر أصواتًا لكل إشعار من البرامج النصية باستخدام openclaw و node.invoke، على سبيل المثال:
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
لم يعد هناك زر تبديل "الصوت الافتراضي" العام في التطبيق بعد الآن؛ يختار المتصلون صوتًا (أو لا شيء) لكل طلب.