يحدد وضع الأذونات في Claude Code الإجراءات التي تُنفَّذ دون سؤالك. يسأل default (ويظهر باسم Manual) قبل التعديلات وأوامر shell. ويسمح acceptEdits أيضًا بتعديل الملفات وأوامر الملفات الشائعة. ويتيح plan لـ Claude القراءة واقتراح خطة دون تعديل. ويترك auto لمصنِّف يعمل في الخلفية الموافقة على الإجراءات بدلًا منك. ويرفض dontAsk كل ما يستدعي السؤال. أما bypassPermissions، الذي يفعّله --dangerously-skip-permissions، فيتخطى الأسئلة كليًا تقريبًا، وهو مخصص للحاويات أو الأجهزة الافتراضية المعزولة فقط. اضغط Shift+Tab للتنقل بين الأوضاع، أو ابدأ بـ claude --permission-mode <mode>.
يستند هذا الدليل إلى توثيق أوضاع الأذونات من Anthropic. يتغير Claude Code كثيرًا، فراجع التوثيق للتحقق من الإصدار الذي تستخدمه.
01الأوضاع الستة في لمحة
default (يدوي)القراءة فقطمراجعة كل إجراء، والأعمال الحساسةacceptEditsالقراءة وتعديل الملفات وأوامر نظام الملفات الشائعة مثل mkdir وtouch وmv وcp داخل مجلد العملالتطوير التكراري على كود تتابعه بنفسكplanالقراءة؛ وتُمنع التعديلات حتى توافق على الخطةالاستكشاف قبل تغيير أي شيءautoكل شيء، مع مصنِّف يفحص كل إجراء أولًاالمهام الطويلة بعدد أقل من طلبات الموافقةdontAskالقراءة في مجلدات العمل والأدوات الموافق عليها مسبقًا؛ ويُرفض كل ما عدا ذلكبيئات CI والسكربتات المقيَّدةbypassPermissionsكل شيء، مع بعض الاستثناءاتالحاويات والأجهزة الافتراضية المعزولة فقطdefault هو الاسم المستخدم في الإعدادات والـ hooks والخيار --permission-mode. أما واجهة CLI وإضافات IDE وتطبيق سطح المكتب فتعرضه باسم Manual (يدوي)، وتقبل CLI القيمة manual كاسم بديل.
02كيفية التبديل بين الأوضاع
في الـ terminal، اضغط Shift+Tab. تتنقل الدورة بين default ثم acceptEdits ثم plan، ثم أي أوضاع اختيارية تسمح بها جلستك. لا يظهر dontAsk في الدورة أبدًا؛ إذ لا يُفعَّل إلا عبر الخيار.
لبدء جلسة في وضع معيّن:
claude --permission-mode plan
لجعل وضع ما هو الافتراضي لديك، اضبطه في ~/.claude/settings.json:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
الخيار له الأولوية على الإعداد، والإعداد له الأولوية على القيمة الافتراضية المدمجة. وهناك قيد يجدر معرفته: لا يسري auto وbypassPermissions إذا ضُبطا في .claude/settings.json أو .claude/settings.local.json الخاصين بالمشروع، فلا يمكن لمستودع أن يضعك في وضع التجاوز دون علمك. اضبط هذين الوضعين في إعدادات المستخدم، أو مرِّر الخيار.
الوضع الذي تبدأ به الجلسة الجديدة
تبدأ الإصدارات الحديثة من Claude Code (الإصدار v2.1.283 أو أحدث) جلسات الـ terminal التفاعلية وجلسات VS Code في وضع auto عند توفره، ما لم تنص إعداداتك على غير ذلك. أما claude -p وتشغيلات Agent SDK فتبدأ في default. إن لم تختر وضعًا من قبل وتتساءل عن سبب قلة طلبات الموافقة، فهذا هو السبب.
03تفاصيل الأوضاع
default (يدوي)
يستطيع Claude قراءة الملفات دون استئذان. أما التعديلات وأوامر الـ shell والوصول إلى الشبكة فيظهر لكل منها طلب موافقة. في طلب Bash، يحفظ خيار "Yes, and don't ask again" قاعدة سماح في .claude/settings.local.json كي لا يُطلب الإذن لذلك الأمر مجددًا في هذا المستودع. وتبقى موافقات تعديل الملفات سارية حتى نهاية الجلسة.
acceptEdits
تُنفَّذ التعديلات وأوامر الملفات البسيطة (mkdir وtouch وrm وrmdir وmv وcp وsed) داخل مجلد العمل دون طلب موافقة، بينما تظل أوامر الـ shell الأخرى تطلبها. خيار وسط مناسب حين تتابع الـ diff أثناء حدوثه.
plan
يستكشف Claude عبر القراءة والأوامر المقتصرة على القراءة، ثم يعرض خطة. لا يُعدَّل شيء في الكود المصدري حتى توافق عليها. استخدمه مع الكود غير المألوف أو التغييرات الخطرة.
auto
يراجع نموذج منفصل كل إجراء قبل تنفيذه، ويمنع ما يتجاوز طلبك، أو يستهدف بنية تحتية لا يعرفها، أو يبدو مدفوعًا بمحتوى عدائي. وتظل قواعد ask الصريحة تطلب الموافقة. إذا منع المصنِّف ثلاثة إجراءات متتالية أو عشرين إجراءً في جلسة واحدة، يتوقف الوضع التلقائي مؤقتًا وتعود طلبات الموافقة المعتادة. وبتعبير Anthropic نفسها، فإن الوضع التلقائي "يقلل طلبات الأذونات لكنه لا يضمن الأمان."
dontAsk
يُرفض كل ما كان سيتطلب موافقة، ولا يُنفَّذ إلا ما تسمح به قواعد السماح والإجراءات التي لا تحتاج إلى موافقة أصلًا. وُجد هذا الوضع للسكربتات وبيئات CI، حيث لا يوجد من يجيب.
bypassPermissions و--dangerously-skip-permissions
--dangerously-skip-permissions مكافئ لـ --permission-mode bypassPermissions. تُتخطى طلبات الموافقة، بما في ذلك الكتابة إلى المسارات المحمية مثل .git و.claude. لكن بعض الأمور تظل تطلب الموافقة أو تُرفض في كل الأوضاع، منها قواعد ask الصريحة وAskUserQuestion وبعض أوامر rm الخطرة. وتظل قواعد المنع سارية.
توصي Anthropic باستخدامه فقط داخل الحاويات أو الأجهزة الافتراضية أو dev containers دون اتصال بالإنترنت. على Mac وLinux، يرفض Claude Code البدء في هذا الوضع بصلاحيات root أو عبر sudo خارج بيئة sandbox معروفة. وإن أردت أن يكون وضع التجاوز متاحًا دون تفعيله، فإن --allow-dangerously-skip-permissions يضيفه إلى دورة Shift+Tab دون التبديل إليه.
04القواعد تعمل فوق الأوضاع
تحدد الأوضاع السلوك الأساسي، وتضبطه قواعد الأذونات في الإعدادات بدقة أكبر:
{
"permissions": {
"allow": ["Bash(npm run test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"]
}
}
تُفحص القواعد بالترتيب: المنع ثم الطلب ثم السماح، وأول تطابق هو الحاسم. تمنع قواعد المنع في كل الأوضاع، بما فيها bypassPermissions. ولا أثر لقواعد السماح في bypassPermissions لأن كل شيء مسموح أصلًا. شغّل /permissions لعرض كل القواعد والملف الذي جاءت منه كل قاعدة.
يمكن للـ hooks أيضًا أن تشارك. فالـ hook من نوع PreToolUse يستطيع منع استدعاء أداة في أي وضع، والـ hook من نوع PermissionRequest يستطيع الرد على طلب الموافقة نيابةً عنك، لكنه لا يستطيع تجاوز قاعدة منع. يوضح دليل PermissionRequest طريقة ذلك.
05اختيار الوضع المناسب عند ابتعادك عن الجهاز
السبب المعتاد للجوء إلى --dangerously-skip-permissions هو الرغبة في ترك Claude يعمل دون العودة لتجد الجلسة عالقة عند prompt. هذه مشكلة حقيقية، لكن وضع التجاوز يحلّها بإلغاء إشرافك تمامًا، وعلى جهازك أنت.
بعض التركيبات الأكثر أمانًا:
- قواعد سماح للأوامر الروتينية. أضف أوامر الاختبار والـ lint والبناء إلى
allow، وأبقِaskعلىgit pushوعمليات النشر، وابقَ فيdefaultأوacceptEdits. - وضع auto للمهام الطويلة التي تقبل فيها حكم مصنِّف آلي على الإجراءات الروتينية.
- أوصِل الـ prompt إليك أينما كنت. احتفظ بوضع يطلب الإذن، وأجب عن الطلبات القليلة المهمة من هاتفك.
الخيار الأخير هو ما يقدّمه Claude Code Notifier. وهو أداة مستقلة ليست من إنتاج Anthropic. تعمل أداة سطر الأوامر الخاصة به، ccn، على شكل hooks في Claude Code على Mac وWindows وLinux. عندما يوشك Claude Code على طلب إذن وأنت بعيد عن لوحة المفاتيح، يُرسَل الطلب إلى هاتف iPhone أو Android المقترن، حيث يمكنك السماح مرة واحدة، أو السماح طوال الجلسة، أو الرفض. ولا يرى إلا الطلبات التي كان Claude Code سيعرضها أصلًا، فيبقى الوضع وقواعدك هما ما يحدد ما يحتاج إلى إذن. في وضع auto تصلك طلبات أقل، وفي bypassPermissions لا يصلك أي طلب، وإن كانت تنبيهات "انتهى Claude" والأسئلة تظل تصل. يشرح دليل الموافقة من الهاتف طريقة الإعداد، ويتناول مقال هل الموافقة من الهاتف آمنة؟ المخاطر.
06الأسئلة الشائعة
ما الفرق بين default وacceptEdits؟
يطلب default الإذن قبل كل تعديل على ملف وكل أمر shell. أما acceptEdits فيسمح بتعديل الملفات وتنفيذ أوامر الملفات الشائعة مثل mkdir وmv وcp داخل مجلد العمل دون سؤال. وتظل أوامر shell الأخرى تطلب الإذن في الوضعين.
هل --dangerously-skip-permissions هو نفسه bypassPermissions؟
نعم. هذا الخيار مكافئ لـ --permission-mode bypassPermissions. ولا توصي Anthropic باستخدامه إلا داخل حاويات أو أجهزة افتراضية معزولة، ويُفضَّل أن تكون دون اتصال بالإنترنت.
كيف أجعل Claude Code يتوقف عن طلب الإذن لأمر واحد؟
اختر "Yes, and don't ask again" عند ظهور الطلب، أو أضف قاعدة سماح مثل "Bash(npm test)" ضمن permissions.allow في إعداداتك. هذا أكثر أمانًا من تغيير الوضع بالكامل.
هل يمكن لإعدادات مشروع ما أن تضعني في وضع bypassPermissions؟
لا. لا يسري bypassPermissions ولا auto إذا وُضعا في .claude/settings.json أو .claude/settings.local.json. فهما لا يُطبَّقان إلا من إعدادات المستخدم أو الإعدادات المُدارة، أو من خيار سطر الأوامر.
هل تظل الـ hooks تعمل في وضع bypassPermissions؟
نعم. تعمل الـ hooks في جميع الأوضاع، والـ hook من نوع PreToolUse الذي يرفض استدعاء أداة يمنعه حتى في bypassPermissions. أما الـ hook من نوع PermissionRequest فلا يعمل إلا عند وجود طلب إذن ينتظر الرد، لذا نادرًا ما يُستدعى في وضع التجاوز.