الموافقة على إجراءات Claude Code من هاتفك آمنة إلى حد معقول إذا كان الإعداد محدودًا: فقط الهواتف التي ربطتها يمكنها الرد، ولا يستطيع الهاتف إلا الرد على الـ prompts التي كان Claude Code سيعرضها عليك أصلًا، وتظل قواعد الرفض سارية أيًّا كان رد الهاتف. أما المخاطر الحقيقية فبشرية وعملية: الموافقة على أمر لم تقرأه على شاشة صغيرة، وحيازة شخص آخر لهاتفك غير المقفل، ومرور تفاصيل المشروع عبر خدمة relay وظهورها على شاشة القفل. تحدّ أداة الموافقة عن بُعد الجيدة من المجموعة الأولى، وتتعامل أنت مع الثانية ببضعة إعدادات.
01كيف تعمل الموافقة عن بُعد
لدى Claude Code حدث hook اسمه PermissionRequest، يعمل عندما يكون Claude Code على وشك طلب إذنك لاستخدام أداة. يمكن للـ hook الرد بقرار، allow أو deny، فيستخدمه Claude Code بدلًا من انتظار ردك في الـ terminal. تعتمد أدوات الموافقة عن بُعد على هذا الـ hook: يرسل الطلب إلى هاتفك، وينتظر، ثم يعيد إجابتك. يعرض دليل PermissionRequest صيغة JSON.
ثلاث خصائص في هذا التصميم مهمة للأمان، وكلها مأخوذة من توثيق الـ hooks لدى Anthropic:
- لا يعمل إلا حين يكون هناك prompt. إذا كان وضع الأذونات أو قواعد السماح لديك يمرّر الإجراء أصلًا، فلا يوجد طلب. لا تستطيع الموافقة عن بُعد منح Claude صلاحيات أكثر مما كانت لديك أمام لوحة المفاتيح.
- قواعد الرفض تبقى هي الغالبة. إرجاع الـ hook للقيمة
allowلا يتجاوز قواعد الرفض في إعداداتك. إذا رفضتRead(./.env)، فلن تسمح نقرة على الهاتف لـ Claude بقراءته. - يعمل الـ hook بصلاحياتك. تعمل command hooks بكامل صلاحيات المستخدم لديك. أي برنامج تثبّته كـ hook يمكنه قراءة وتغيير كل ما يستطيعه حسابك. لذا يصبح اختيار الأداة جزءًا من أمانك، لا الهاتف وحده.
02المخاطر، وما يحدّ من كل منها
شخص آخر يرد
أسوأ الاحتمالات أن يوافق على إجراء شخص أو جهاز لم تقصده. ما يحدّ من ذلك:
- الربط. لا يستطيع الهاتف الرد إلا عن كمبيوتر رُبط به. في Claude Code Notifier، يتم الربط عبر رمز QR أو رمز من 6 أرقام صالح لمدة 24 ساعة، ويمكن أن يكون لكل كمبيوتر حتى ثلاثة هواتف.
- الإلغاء. يعرض
ccn devicesالهواتف المرتبطة بالكمبيوتر، ويزيلccn devices revoke <name>أحدها. ويمحوccn forgetالكمبيوتر وروابطه من الخادم. - قفل هاتفك. يستطيع أي شخص يحمل هاتفك غير المقفل الرد. تعامل مع الهاتف كمفتاح لجلسات Claude Code على كمبيوترك، واستخدم رمز مرور أو قفلًا بيومتريًا.
توافق على شيء لم تقرأه
على الهاتف، من السهل المرور سريعًا على أمر shell طويل. بعض العادات تساعد:
- اقرأ الأمر كاملًا قبل النقر على السماح. وإن لم يكن سليمًا بوضوح، فارفضه وراجع الـ terminal لاحقًا.
- فضّل السماح مرة واحدة على السماح طوال الجلسة لأي إجراء يغيّر الحالة خارج المشروع، مثل
git pushأو عمليات النشر أو تثبيت الحزم. - ضع الأوامر الخطرة تحت قواعد
askوالأسرار تحت قواعدdenyفي إعداداتك، حتى تُحسم الحالات الخطرة بقواعد كتبتها بتأنٍّ، لا بنقرة سريعة وسط قائمة طلبات. يوضح دليل أوضاع الأذونات الصيغة.
أنت موجود فعلًا أمام لوحة المفاتيح
إذا وصل طلب إلى الهاتف وأنت جالس أمام الكمبيوتر، فقد يجيب طرفان (أنت وهاتفك) عن الـ prompt نفسه. يتحقق Claude Code Notifier من وجودك على الكمبيوتر: إذا كتبت شيئًا خلال آخر 30 ثانية، فلا شيء ينتظر الهاتف ويسألك الـ terminal كالمعتاد. وإذا كنت بعيدًا، ينتظر الـ terminal إجابة الهاتف حتى حدٍّ أقصى تختاره، ويتوقف عن الانتظار فور لمسك لوحة المفاتيح. يجري فحص الخمول على الكمبيوتر ولا تُرسل نتيجته أبدًا.
تفاصيل المشروع تغادر جهازك
لكي يُعرض عليك طلب ما، لا بد أن يُرسل شيءٌ تفاصيله إلى هاتفك. هذه هي المقايضة المتعلقة بالخصوصية في أي إشعار هاتفي لـ Claude Code، سواء بنيته بنفسك أم لا. مع Claude Code Notifier، وكما توضح سياسة الخصوصية:
- لا توجد حسابات. يُعرَّف كل كمبيوتر وهاتف بمعرّف عشوائي.
- ما قد يحتويه الإشعار: اسم المشروع ومسار مجلده، ورسالة Claude أو السؤال الذي يطرحه، وبداية الـ prompt الخاص بك، وفي طلبات الأذونات اسم الأداة وملخص مدخلاتها، مثل أمر الـ shell أو مسار الملف (حتى 200 حرف).
- إلى أين يذهب: عبر خادم الترحيل التابع لـ TouchTap الذي يعمل على Cloudflare، وتُرسل نسخة مختصرة إلى Apple أو Google لتوصيل الـ push. لا تُرسل مسارات مجلدات المشروع إلى Apple أو Google.
- مدة الاحتفاظ: يحذف الخادم الإشعارات وإجاباتك عليها خلال 48 ساعة. ولا يخزّن خادم الترحيل عنوان IP الخاص بك.
- أثناء النقل: يستخدم كل الاتصال مع الخادم TLS (HTTPS وWSS). يحتفظ خادم الترحيل بمحتوى الإشعار لتوصيله، لذا فهذا تشفير أثناء النقل وليس تشفيرًا من طرف إلى طرف.
- لا تُباع: لا تُباع البيانات ولا تُستخدم للإعلانات.
على الكمبيوتر، بيانات اعتماد ccn عبارة عن token عشوائي. افتراضيًا يُحفظ في Keychain على macOS أو Credential Manager على Windows، وعلى Linux في ملف لا يقرؤه إلا حساب المستخدم الخاص بك؛ ويتيح الأمر ccn config set credential_store التبديل بين keychain النظام والملف.
إذا كنت تعمل على شيفرة سرية، فنصيحة السياسة نفسها أن تفكر فيما إذا كانت إشعارات الهاتف مناسبة، وأي أنواعها تفعّل على كل كمبيوتر. يمكنك إيقاف notify_on_done أو notify_on_permission أو notify_on_question كلٍّ على حدة، لكل كمبيوتر، من سطر الأوامر أو من تطبيق الهاتف.
شاشة القفل تكشف الكثير
الإشعار الذي يعرض أمرًا أو اسم مشروع لأحد العملاء يراه أي شخص يلقي نظرة على هاتفك. يتيح كلٌّ من iPhone وAndroid إخفاء معاينات الإشعارات حتى يُفتح قفل الهاتف، لكل التطبيقات أو لتطبيق واحد. على iPhone تجد ذلك في الإعدادات ثم الإشعارات. وعلى Android تجده في إعدادات إشعارات شاشة القفل، عادةً كخيار لإخفاء المحتوى الحساس.
03بناء الموافقة عن بُعد بنفسك
يمكنك بناء الموافقة عن بُعد بنفسك باستخدام hook من نوع PermissionRequest وبوت دردشة أو خدمة push. لكنك عندئذٍ تبني نظام مصادقة: يجب ألا يتمكن أحد سواك من الإجابة، ويجب ألا تنطبق إجابة قديمة على طلب جديد، ويجب ألا يُبقي طلبٌ معلّق الجلسةَ عالقة. على خادم push عام ومشترك، اسم الـ topic هو الشيء الوحيد الذي يمنع الغرباء، فتعامل معه ككلمة مرور. تغطي أدلة ntfy وTelegram أو Slack أو Discord إعدادات الإشعارات فقط، وهي أقل خطرًا بكثير لأنها لا تستطيع الموافقة على أي شيء.
04Hooks من مستودعات لم تكتبها
هناك خطر إضافي ينطبق على كل hook، لا على الموافقة فقط. يمكن إضافة hooks إلى ملف .claude/settings.json في المشروع. في الجلسة التفاعلية، يؤجل Claude Code تشغيل الـ hooks حتى توافق على مربع حوار الثقة بمساحة العمل للمجلد، لذا اقرأ ملفات .claude/ في المستودع قبل أن تثق به. أما في claude -p وتشغيلات SDK فلا يظهر مربع حوار ويُعامل المجلد على أنه موثوق، فتعمل الـ hooks المضافة. وللتشغيلات المؤتمتة على شيفرة لم تكتبها، مرّر --settings '{"disableAllHooks": true}'.
05أين يأتي دور Claude Code Notifier
Claude Code Notifier أداة مستقلة من صنع TouchTap Ltd، وليست من صنع Anthropic ولا تحظى بتأييدها أو رعايتها. تعمل أداة سطر الأوامر الخاصة بها، ccn، كـ hooks لـ Claude Code على Mac وWindows وLinux، وتتيح لك تطبيقاتها على iPhone وAndroid السماح مرة واحدة أو السماح طوال الجلسة أو الرفض. شيفرة ccn المصدرية متاحة على GitHub، لذا يمكنك قراءة ما يعمل كـ hook لديك بالضبط قبل تثبيته. يشرح دليل الموافقة من الهاتف خطوات الإعداد.
06الأسئلة الشائعة
هل يمكن للموافقة من الهاتف تجاوز قواعد الرفض الخاصة بي؟
لا. يقيّم Claude Code قواعد الرفض بغض النظر عمّا يُرجعه الـ hook. لا يمكن للموافقة عن بُعد إلا الإجابة عن prompt كان Claude Code سيعرضه أصلًا.
هل Claude Code Notifier مشفّر من طرف إلى طرف؟
لا. تستخدم حركة البيانات من خادم الترحيل وإليه TLS، ويحذف الخادم الإشعارات والإجابات خلال 48 ساعة. يحتفظ خادم الترحيل بالمحتوى أثناء توصيله، وتُرسل نسخة مختصرة إلى Apple أو Google لتوصيل الـ push.
ماذا لو فقدت هاتفي؟
على كل كمبيوتر، شغّل ccn devices لعرض الهواتف المقترنة وccn devices revoke <name> لإزالة الهاتف المفقود. وحتى تفعل ذلك، فإن قفل هاتفك هو ما يمنع أي شخص من الإجابة.
هل تغادر شيفرتي جهازي؟
لا يرفع ccn ملفاتك. تحمل الإشعارات التفاصيل اللازمة لعرض الطلب: اسم المشروع ومجلده، ورسالة Claude أو سؤاله، وبداية الـ prompt الخاص بك، وملخصًا قصيرًا للأمر أو الملف المعني. قد تقتبس رسالة Claude شيفرة، لذا أوقف أنواع الإشعارات التي لا تحتاجها في المشاريع الحساسة.