هل يطلب Claude Code الإذن باستمرار؟ أصلح ذلك دون --dangerously-skip-permissions

الموافقة على npm test للمرة الأربعين مجرد ضجيج. يوفّر Claude Code كل ما تحتاجه لإسكات الطلبات المملة والإبقاء على الخطرة. كل ما في الأمر أن ذلك موزّع على ثلاثة ملفات وستة أوضاع.

بقلم Aslan، فريق Pet Island · آخر تحديث 26 أكتوبر 2026 · مدة القراءة: 5 دقيقة

الإجابة المختصرة

ضع الأوامر التي توافق عليها دائمًا في permissions.allow (مثل Bash(npm run *))، والأوامر التي يجب أن تتوقف دائمًا في ask أو deny، واختر وضع أذونات يناسب المهمة: acceptEdits للتعديلات الكثيفة، وauto للعمل الروتيني، وplan للقراءة. تُفحص القواعد بالترتيب: deny ثم ask ثم allow، لذا لا يمكن تجاوز قاعدة deny أبدًا. استخدم /permissions لمعرفة مصدر كل قاعدة. احتفظ بـ --dangerously-skip-permissions للحاويات المؤقتة التي يمكن التخلص منها.

لماذا يطلب Claude Code الإذن كثيرًا

في الوضع الافتراضي (المسمّى Manual في واجهة سطر الأوامر)، يطلب Claude Code الإذن في أول مرة يستخدم فيها كل أداة، ثم يطلبه مجددًا لكل أمر shell لم يُسمح له بتشغيله. هذا الطلب هو اللحظة التي يمكنك فيها إيقاف rm خاطئ أو git push غير مقصود، لذا يستحق الإبقاء عليه. المشكلة أنه يظهر أيضًا لمئات الأشياء غير الضارة التي يفعلها الوكيل خلال الجلسة.

ثلاثة أمور تحدد ما إذا كان سيظهر لك طلب: القواعد في ملفات الإعدادات، ووضع الأذونات الذي تعمل فيه، والإجابات التي قدّمتها سابقًا بخيار «Yes, and don’t ask again» (نعم، ولا تسأل مرة أخرى). التخلص من الضجيج يعني ضبط الثلاثة جميعًا.

يبدأ Claude Code بدءًا من الإصدار v2.1.283 جلسات الطرفية التفاعلية وجلسات VS Code في وضع auto، على جميع الخطط ومزوّدي الخدمة. في وضع auto يفحص مصنِّف يعمل في الخلفية الأوامر وطلبات الشبكة مقارنةً بما طلبته، بدلًا من طلب الإذن للإجراءات الروتينية. إذا كنت لا تزال ترى طلبًا لكل شيء، فتحقق من شريط الحالة: «⏸ manual mode on» تعني أنك في الوضع الافتراضي.

قواعد allow وask وdeny

توجد القواعد تحت permissions في ملف الإعدادات. هذا المثال مأخوذ مباشرة من مرجع الإعدادات لدى Anthropic:

~/.claude/settings.jsonنسخ
{
"permissions": {
"allow": ["Bash(npm run *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)"],
"defaultMode": "acceptEdits"
}
}
  • allow: يعمل دون سؤال.
  • ask: يسأل دائمًا، حتى في الأوضاع التي كانت ستوافق عليه تلقائيًا.
  • deny: لا يعمل أبدًا.

الترتيب هو الجزء المهم: deny أولًا، ثم ask، ثم allow. أول تطابق هو الذي يُطبَّق، ودرجة التحديد لا تغيّر الترتيب. لا يمكن لقاعدة allow أن تقتطع استثناءً من قاعدة deny، وإذا رُفضت أداة على أي مستوى فلا يمكن لأي مستوى آخر السماح بها. يفرض Claude Code القواعد بنفسه وليس النموذج، لذا فإن كتابة «لا تنفّذ push أبدًا» في CLAUDE.md لا تؤدي ما تؤديه قاعدة deny.

كيف تكتب قاعدة

القاعدةما تطابقه
Bash(npm run *)npm run build وnpm run test --watch، لكن ليس npm install
Bash(git log *)git log … فقط. قارن ذلك بـ Bash(git *) التي تسمح بكل أوامر git.
Bash(ls:*)مثل Bash(ls *): الصيغة :* طريقة أخرى لكتابة حرف بدل في النهاية
Read(./.env)قراءة ذلك الملف. تستخدم قواعد Read وEdit أنماط gitignore
Edit(//Users/alice/notes/**)مسار مطلق. الشرطة / المفردة في البداية تعني مسارًا نسبيًا إلى ملف الإعدادات، لذا تحتاج المسارات المطلقة إلى //
WebFetch(domain:example.com)example.com فقط. أضف WebFetch(domain:*.example.com) للنطاقات الفرعية
mcp__github__*كل أدوات خادم MCP المسمّى github. تُتجاهل القواعد التي تحتوي على أقواس بعد mcp__

على Windows، تستخدم قواعد PowerShell الصيغة نفسها التي تستخدمها قواعد Bash.

أي ملف إعدادات تستخدم

النطاقالملفالاستخدام
المستخدم~/.claude/settings.json (على Windows: %USERPROFILE%\.claude\settings.json)عاداتك الشخصية، في كل المشاريع
المشروع، مشترك.claude/settings.jsonالقواعد التي يجب أن يحصل عليها الفريق كله (أضفه إلى المستودع)
المشروع، محلي.claude/settings.local.jsonقواعدك الشخصية لمستودع واحد (لا يُضاف إلى المستودع)
مُدارmanaged-settings.json ومصادر مُدارة أخرىسياسة الشركة؛ لا شيء يمكنه تجاوزها

الأولوية من الأعلى إلى الأدنى: المُدار، ثم سطر الأوامر، ثم المشروع المحلي، ثم المشروع المشترك، ثم المستخدم. المفاتيح التي تحتوي على قوائم مثل permissions.allow تُدمج عبر الملفات ولا تُستبدل. هناك تفصيلتان توقعان الناس في الخطأ:

  • ملفات الإعدادات بصيغة JSON صارمة: تعليق // أو فاصلة زائدة في النهاية يُعدّ خطأً نحويًا، ويُتجاهل الملف بأكمله.
  • قواعد allow في ملف المشروع المشترك لا تُطبَّق إلا بعد أن يثق كل عضو في الفريق بالمجلد. أما قواعد deny وask فتُطبَّق فورًا.

تسري معظم التعديلات على الجلسة الجارية دون إعادة تشغيل، بما فيها permissions وhooks. لمعرفة ما حُمِّل فعلًا، شغّل /status (سطر Setting sources) أو /permissions الذي يعرض كل قاعدة والملف الذي جاءت منه.

ما الذي يحفظه خيار «Yes, and don’t ask again» فعلًا

عندما تجيب عن طلب بخيار «لا تسأل مرة أخرى»، يكتب Claude Code قاعدة نيابةً عنك في .claude/settings.local.json في جذر مستودع git. تعتمد مدة بقائها على الأداة:

الأداةمدة الحفظ
أوامر Bashبشكل دائم، لكل مستودع وأمر
تعديلات الملفاتحتى نهاية الجلسة
WebFetchبشكل دائم، لكل مستودع ونطاق

لذا إذا ظل Claude يطلب تعديل الملفات في كل جلسة جديدة، فهذا مقصود: الموافقة على تعديل الملفات صالحة لجلسة واحدة. استخدم وضع acceptEdits أو قاعدة allow من نوع Edit(...) بدلًا من ذلك. وإذا ظل أمر ما يطلب الإذن حتى بعد «لا تسأل مرة أخرى»، فابحث عن قاعدة ask في ملف المشروع أو في ملف مُدار. قاعدة allow في ملفك المحلي لا تتقدّم عليها.

أوضاع الأذونات ومتى تستخدم كل وضع

الوضعماذا يفعلمناسب لـ
default (Manual)يطلب الإذن عند أول استخدام لكل أداةالمستودعات غير المألوفة والعمل الخطر
acceptEditsيقبل تعديلات الملفات دون سؤالعمليات إعادة الهيكلة الطويلة التي ستراجعها في git
planيقرأ ويخطط، ولا يغيّر أي شيءاستكشاف قاعدة الشيفرة وتصميم تغيير
autoلا طلبات روتينية؛ يفحص مصنِّف الأوامر وطلبات الشبكة أولًاالعمل اليومي
dontAskلا يطلب الإذنالسكربتات والأتمتة
bypassPermissionsيتخطى الطلبات، بما فيها الكتابة إلى .git و.claudeالحاويات أو الأجهزة الافتراضية المعزولة فقط

اضغط Shift+Tab للتنقل بين الأوضاع. من وضع auto تنقلك الضغطة الأولى إلى default، ثم من default إلى acceptEdits ثم إلى plan. حدّد وضع البداية باستخدام permissions.defaultMode؛ ولاحظ أن auto وbypassPermissions لا يسريان إلا من إعدادات المستخدم أو الإعدادات المُدارة، وليس من ملف المشروع.

بعض الأشياء تطلب الإذن دائمًا، في كل الأوضاع بما فيها bypass: قواعد ask الصريحة، والأسئلة التي يطرحها Claude عليك، وrm على المسارات الحرجة، وغيرها. يمكن للمسؤولين إيقاف الأوضاع الخطرة بضبط permissions.disableBypassPermissionsMode أو permissions.disableAutoMode على "disable".

عن --dangerously-skip-permissions

الخيار --dangerously-skip-permissions مطابق لـ --permission-mode bypassPermissions. وثائق Anthropic صريحة: لا تستخدمه إلا في بيئات معزولة مثل الحاويات أو الأجهزة الافتراضية أو حاويات التطوير دون اتصال بالإنترنت. يرفض العمل بصلاحيات root على Linux وmacOS، وبمجرد قبولك للتحذير يضبط skipDangerousModePermissionPrompt في إعدادات المستخدم.

إذا كان ما تريده فعلًا هو «توقّف عن السؤال عن الأشياء المملة»، فإن وضع auto مع بضع قواعد allow يوصلك إلى ذلك دون التخلي عن الطلبات المهمة.

بيئة الحماية (sandbox): طلبات أقل مع شبكة أمان

يمكن لـ Claude Code تشغيل أوامر shell داخل بيئة حماية معزولة (sandbox). هي معطّلة افتراضيًا؛ فعّلها باستخدام /sandbox أو sandbox.enabled: true. أحد أوضاع الـ sandbox يوافق تلقائيًا على الأوامر التي تعمل داخله، والآخر يظل يسأل. لا تغطي الـ sandbox إلا أوامر shell: أدوات الملفات وخوادم MCP والخطافات (hooks) تعمل خارجها.

تعمل على macOS وLinux وWSL2. على Windows الأصلي لا تعمل الـ sandbox، وتُنفَّذ الأوامر دون عزل. وهذا سبب آخر للإبقاء على قائمة ask قصيرة هناك.

إعداد يعمل جيدًا

هذه نقطة بداية معقولة لمشروع JavaScript. عدّل الأوامر لتناسب أدواتك:

~/.claude/settings.jsonنسخ
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(npx tsc *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)"
],
"ask": [
"Bash(git push *)",
"Bash(npm publish *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)"
]
}
}
  1. ابدأ بقائمة سماح تضم أوامر القراءة فقط وأوامر الاختبار.
  2. ضع كل ما يغادر جهازك (push وpublish وdeploy) في ask.
  3. ارفض الأسرار رفضًا قاطعًا.
  4. اعمل في وضع auto أو acceptEdits، وانتقل إلى وضع plan عندما تستكشف.
  5. كل بضعة أيام، افتح .claude/settings.local.json واحذف القواعد الزائدة التي أضافها خيار «لا تسأل مرة أخرى».

عندما تظهر الطلبات المتبقية في المكان الخطأ

بعد الضبط، يجب ألا تُسأل إلا عن الأشياء التي تستحق قرارًا. المشكلة المتبقية هي مكان ظهور السؤال: في علامة تبويب طرفية خلف المتصفح، حيث قد ينتظر الوكيل عشرين دقيقة قبل أن تنتبه.

ينقل Pet Island هذه الأسئلة إلى جزيرة صغيرة في أعلى الشاشة. عندما يحتاج Claude Code إلى إذن، يظهر الطلب هناك مع الأمر أو الفروقات (diff)، فتسمح أو ترفض أو تسمح دائمًا دون التبديل بين النوافذ. تعمل أسئلة Claude Code وخططه من الجزيرة أيضًا، وإذا كانت الجزيرة مغلقة يعود Claude Code ببساطة إلى السؤال في الطرفية.

الأسئلة الشائعة

كيف أمنع Claude Code من طلب الإذن لكل أمر؟

أضف الأوامر التي تثق بها إلى permissions.allow في ~/.claude/settings.json، مثل "Bash(npm run *)"، واستخدم وضع auto أو acceptEdits. أبقِ الأوامر الخطرة في permissions.ask حتى تظل تتوقف.

لماذا يطلب Claude Code الإذن مجددًا لتعديل الملفات بعد أن اخترت «لا تسأل مرة أخرى»؟

الموافقة على تعديل الملفات لا تستمر إلا حتى نهاية الجلسة. استخدم وضع acceptEdits أو قاعدة allow من نوع Edit(...) إذا أردت الموافقة على التعديلات عبر الجلسات.

هل يمكن لقاعدة allow أن تتجاوز قاعدة deny؟

لا. تُفحص القواعد بالترتيب deny ثم ask ثم allow، وأول تطابق هو الذي يُطبَّق. الأداة المرفوضة على أي مستوى لا يمكن السماح بها في مكان آخر.

هل استخدام --dangerously-skip-permissions آمن؟

توصي Anthropic به فقط في البيئات المعزولة مثل الحاويات أو الأجهزة الافتراضية دون اتصال بالإنترنت. كما أنه يتخطى الطلبات عند الكتابة إلى .git و.claude.

أين يحفظ خيار «Yes, and don’t ask again» القاعدة؟

في .claude/settings.local.json في جذر مستودع git.

هل تعمل الـ sandbox في Claude Code على Windows؟

ليس على Windows الأصلي؛ إذ تُنفَّذ الأوامر هناك دون عزل. تعمل على macOS وLinux وWSL2.

المصادر

راجعنا كل إعداد وسلوك في هذه الصفحة مقابل هذه الصفحات بتاريخ 26 أكتوبر 2026. الوكلاء يتغيرون بسرعة؛ فإذا لم يعد شيء مطابقًا، فالمرجع هو الصفحة الرسمية.

تابع القراءة

أجب كل وكيل من أعلى شاشتك.

Windows وMac · مجانًا لمدة 7 أيام، ثم 8.99 دولار لمرة واحدة · دولار واحد من كل عملية بيع يذهب لإطعام الحيوانات الضالة

جرّب Pet Island مجانًا