وضع Claude Code التلقائي: ما الذي يتغير؟
يصبح الوضع التلقائي افتراضياً في Claude Code في 14 أغسطس 2026 لخطط Pro وMax وTeam. تعرّف إلى أوضاع الأذونات والخيار الأنسب لخادم VPS لا تراقبه.
ما الذي يغيّره الوضع التلقائي في 14 August 2026
يشغّل الوضع التلقائي في Claude Code استدعاءات الأدوات من دون التوقف لطلب موافقتك، ويرسل كل إجراء أولاً إلى نموذج تصنيف منفصل لمراجعته. اعتباراً من 14 August 2026، سيصبح هذا الوضع هو الوضع الذي تبدأ به الجلسات الجديدة في خطط Pro وMax وTeam. يمكنك تبديل الأوضاع في أي وقت، ولن يُستبدل الإعداد الافتراضي الذي سبق أن عيّنته لنفسك.
توضح الوثائق هذا التغيير كما يلي:
اعتباراً من August 14, 2026، سيصبح الوضع التلقائي هو وضع الأذونات الافتراضي للجلسات الجديدة في خطط Pro وMax وTeam. يمكنك تبديل الأوضاع في أي وقت. يظل الإعداد الافتراضي الذي عيّنته بنفسك قائماً ما لم توافق على مطالبة التبديل لمرة واحدة، ولا يتغير الإعداد الافتراضي الذي تديره مؤسستك.
هناك بندان أهم من التاريخ. يظل defaultMode الذي تعيّنه في ملف إعداداتك الخاص قائماً بعد التغيير. كما يظل الإعداد الافتراضي الذي تنشره مؤسستك عبر الإعدادات المُدارة قائماً. ويضيف منشور الإعلان أن الوضع التلقائي سيبقى اختيارياً لخطط Enterprise وللحسابات التي تستخدم API خلال المرحلة الأولى من الإطلاق.
إذا كنت تشغّل Claude Code على VPS (خادم افتراضي خاص)، فمن المفيد قراءة التغيير قبل دخوله حيز التنفيذ. مطالبة الأذونات نقطة تحقق تتطلب وجود شخص أمام لوحة المفاتيح. غالباً لا تكون موجوداً أمام الخادم البعيد، ولذلك يكون الوضع الذي تبدأ به الجلسة هو الوضع الذي ستستمر فيه لساعات.
أنماط أذونات Claude Code، من أعلى مستوى من الإشراف إلى أدناه
هناك ستة أوضاع. الاسم في بداية كل سطر هو القيمة التي تكتبها في الإعدادات أو تمرّرها إلى --permission-mode. يفرض Claude Code الأوضاع الستة بنفسه، وليس النموذج، لأن تحديد ما يُسمح لاستدعاء أداة بفعله هو مهمة الغلاف المحيط بالنموذج.
default: يطلب Claude تأكيدك قبل كل استخدام جديد لأداة. وتُنفَّذ عمليات القراءة داخل دليل العمل دون مطالبة. وتعرض واجهة CLI (واجهة سطر الأوامر) هذا النمط باسم Manual، وتقبلmanualكاسم مستعار بدءاً من Claude Code v2.1.200.plan: يقرأ Claude الملفات وينفّذ الأوامر للاستكشاف، ولا يعدّل المصدر. تظل التعديلات محظورة إلى أن توافق على الخطة.acceptEdits: تُنفَّذ تعديلات الملفات دون مطالبة، إلى جانب أوامر نظام الملفاتmkdirوtouchوrmوrmdirوmvوcpوsed. وينطبق ذلك فقط على المسارات الموجودة داخل دليل العمل أوadditionalDirectories. أما كل أمر shell آخر، فيستمر في طلب التأكيد.auto: تُنفَّذ كل العمليات، مع فحص المصنّف لكل إجراء أولاً. وتظل قواعدaskالصريحة تفرض طلب التأكيد.dontAsk: يرفض Claude Code تلقائياً أي عملية كانت ستتطلب تأكيدك. ولن تُنفَّذ إلا قواعدallow، وأوامر Bash المضمّنة للقراءة فقط، والاستدعاءات التي يوافق عليها hook من النوعPreToolUse. ولا تنتظر الجلسة إدخالاً أبداً.bypassPermissions: يتم تجاوز المطالبات وفحوصات الأمان، بما في ذلك عمليات الكتابة إلى المسارات المحمية مثل.gitو.claude.
اضغط Shift+Tab أثناء الجلسة للتنقل بالتتابع من default إلى acceptEdits ثم إلى plan. يعرض شريط الحالة الموضع الذي وصلت إليه، مثل ⏵⏵ auto mode on أو ⏸ manual mode on باللون الرمادي. ولا تظهر الأنماط الأخرى في هذه الدورة افتراضياً. ينضم auto إليها عندما يستوفي حسابك متطلباته. ولا ينضم bypassPermissions إليها إلا إذا بدأت الجلسة باستخدام --permission-mode bypassPermissions أو --dangerously-skip-permissions. ولا يظهر dontAsk فيها أبداً؛ لذلك عيّنه باستخدام claude --permission-mode dontAsk.
يتطلب النمط التلقائي أيضاً نموذجاً حديثاً، وهذا هو السبب المعتاد لعدم ظهوره مطلقاً. اعتباراً من August 2026، تسرد الوثائق Claude Opus 4.6 أو إصداراً أحدث، وSonnet 4.6 أو إصداراً أحدث، وFable 5 على Anthropic API، وتذكر أن النماذج الأقدم، مثل Sonnet 4.5، غير مدعومة لدى أي مزود. إذا أبلغك Claude Code بأن النمط التلقائي غير متاح، فهذا يعني أن أحد هذه المتطلبات غير مستوفى. ولا يتعلق الأمر بانقطاع مؤقت؛ لذلك لن يحل الانتظار المشكلة.
تسري قاعدتا تحكم في كل نمط، بما في ذلك bypassPermissions: قواعد deny والقواعد ask الصريحة. وتظل هاتان الوسيلتان متاحتين لك، أياً كان النمط الذي تبدأ به الجلسة.
ما الذي يحظره مصنّف الوضع التلقائي
المصنّف هو نموذج ثانٍ يقرأ الإجراء المعلّق ويقرر ما إذا كان يطابق ما طلبته. وتصف الوثائق مهمته في جملة واحدة:
يراجع نموذج مصنّف منفصل الإجراءات قبل تنفيذها، ويحظر أي إجراء يتجاوز نطاق طلبك، أو يستهدف بنية تحتية غير معروفة، أو يبدو مدفوعاً بمحتوى خبيث قرأه Claude.
يُحظر افتراضياً، ضمن الفئات التي يواجهها مشغّل الخادم غالباً:
- تنزيل التعليمات البرمجية وتنفيذها، مثل
curl | bash - عمليات النشر والترحيل في بيئة الإنتاج
- Force push
- تعديل البنية التحتية المشتركة
- فتح نفق أو reverse shell يجعل خدمة محلية قابلة للوصول من الإنترنت العام
- طباعة بيانات اعتماد أو token صالح للاستخدام في transcript أو ملف
يُسمح به افتراضياً:
- عمليات الملفات المحلية في دليل العمل
- تثبيت التبعيات المعلنة في lock files أو manifests
- طلبات HTTP للقراءة فقط
- الدفع إلى أي branch في المستودع الذي تعمل فيه
لا تعتمد على ملخص مثل الملخص أعلاه. شغّل claude auto-mode defaults لطباعة قوائم القواعد الكاملة بتنسيق JSON، واقرأ مجموعة القواعد التي جاءت مع الإصدار المثبّت لديك.
هناك حدّان موثّقان يجب أخذهما في الحسبان قبل الاعتماد على هذا السلوك. أولاً، يرى المصنّف رسائلك، واستدعاءات الأدوات، ومحتوى CLAUDE.md الخاص بك، بينما تُزال نتائج الأدوات؛ لذلك لا يمكن للنص الموجود داخل ملف أو صفحة ويب قرأها Claude أن يخاطب المصنّف مباشرة. ثانياً، عندما يحظر المصنّف إجراءً 3 مرات متتالية أو 20 مرة في جلسة واحدة، يتوقف الوضع التلقائي ويعود Claude Code إلى مطالبتك بالتدخل. لا يمكن ضبط هذه الحدود. في الوضع غير التفاعلي مع الخيار -p، لا يوجد شخص يمكن مطالبته بالتدخل، ولذلك تؤدي عمليات الحظر المتكررة إلى إيقاف الجلسة بدلاً من ذلك.
السلوك الثاني هو ما يسبب المشكلة على خادم بعيد. يتوقف التشغيل غير التفاعلي الذي يتجاوز الحد، ثم ينتظر شخصاً لا يراقب الطرفية. ولا تُعد جلسة Claude Code ثانية على الخادم نفسه بديلاً عن ذلك الشخص، لأن النص المُرسل من جلسة إلى أخرى يبقى معلّقاً إلى أن تلتقطه الجلسة المستقبِلة، كما أن الجلسة المتوقفة عند مطالبة الصلاحيات تحتاج إلى إجابة بشرية. تضييق نطاق ما ينفّذه الوكيل هو النصف الآخر من الحل، والمهارة التي تدفع الوكيل إلى إجراء أصغر تغيير ينجح تمنع الجلسة من الانحراف إلى إجراءات واسعة يوقفها المصنّف. بينما توجّه المهارة مهمة واحدة، فإن نمط الإخراج يحرّر مطالبة النظام نفسها، ولذلك يظل النمط الذي يطلب تغييرات صغيرة ومحددة سارياً في كل دورة من الجلسة، بدلاً من اقتصاره على المهمة الواحدة التي استدعيت النمط لتنفيذها.
موضع الأوضاع في settings.json
كل ما سبق هو كائن واحد في ملف إعدادات.
{
"permissions": {
"defaultMode": "auto",
"allow": [
"Bash(npm run test *)",
"Bash(git status)"
],
"ask": [
"Bash(git push *)",
"Bash(docker compose up *)"
],
"deny": [
"Read(./.env)",
"Read(./secrets/**)",
"Bash(curl *)"
]
}
}تُقيَّم القواعد بالترتيب: المنع، ثم السؤال، ثم السماح. تحدد أول قاعدة مطابقة بالترتيب النتيجة، ولا تتغلب قاعدة أضيق على قاعدة أوسع تسبقها. تحظر قاعدة منع لـ Bash(aws *) الأمر aws s3 ls حتى إذا سمحت أيضاً بهذا الأمر تحديداً، لذلك لا يمكن لقاعدة المنع أن تتضمن استثناءات.
تُعد ask نوع القاعدة الذي يحقق الفائدة في الوضع التلقائي. يزيل الوضع التلقائي المطالبة الروتينية، وتعيد قاعدة ask المطالبة للأمر المحدد الذي تريد أن يتطلب تدخلاً بشرياً. يجب أن يكون أمر النشر لديك ضمن هذه القاعدة. وينطبق الأمر نفسه على Bash(git push *) إذا أردت نقطة تحقق قبل خروج التعليمات البرمجية من الخادم. ويشكّل الاحتفاظ بملفات بيانات الاعتماد في deny النصف الآخر من ذلك، ويتكامل مع إبعاد بيانات الاعتماد عن متناول الوكيل منذ البداية.
ملفات الإعداد نفسها، مرتبة من الأقل أولوية إلى الأعلى:
~/.claude/settings.json: إعدادات المستخدم الخاصة بك، وتُطبَّق في كل مشروع..claude/settings.json: إعدادات المشروع، وتُحفَظ في المستودع..claude/settings.local.json: إعداداتك الخاصة بمستودع واحد، ويستثنيها git.- الإعدادات المُدارة، التي ينشرها المسؤول. في Linux يكون هذا الملف هو
/etc/claude-code/managed-settings.json. لا تتغلب أي إعدادات على قاعدة صلاحيات مُدارة، بما في ذلك علامة سطر الأوامر.
يوجد هنا خطأ شائع له سبب موثق. يُتجاهل defaultMode: "auto" عندما يأتي من .claude/settings.json أو .claude/settings.local.json، بدءاً من Claude Code v2.1.142، حتى لا يتمكن مستودع من منح نفسه الوضع التلقائي عبر تضمين ملف إعدادات. إذا ضبطته هناك، تبدأ الجلسة في الوضع default من دون طباعة أي خطأ. انقل السطر إلى ~/.claude/settings.json. شغّل /permissions لسرد كل قاعدة نشطة بجانب الملف الذي جاءت منه.
مفتاحا التعطيل اللذان يوقفان وضعاً
يملك المسؤولون مفتاحي تعطيل، وكلاهما يقبل السلسلة "disable" بدلاً من قيمة منطقية.
{
"permissions": {
"disableAutoMode": "disable",
"disableBypassPermissionsMode": "disable"
}
}توضح الوثائق بدقة موضع وضعهما:
لمنع استخدام وضعbypassPermissionsأوauto، عيّنpermissions.disableBypassPermissionsModeأوpermissions.disableAutoModeإلى"disable"في أي ملف إعدادات. وتكون هذه الإعدادات مفيدة خصوصاً في الإعدادات المُدارة التي لا يمكن تجاوزها.
يزيل disableAutoMode auto من دورة Shift+Tab، ويرفض --permission-mode auto عند بدء التشغيل. ويؤدي disableBypassPermissionsMode المهمة نفسها لوضع التجاوز، كما يعمل من أي نطاق. لذلك يمكنك ضبطه في ~/.claude/settings.json الخاص بك لمنع نفسك من استخدام وضع لا تريد اللجوء إليه عند الساعة 2 صباحاً على خادم قيد التشغيل. وعلى جهاز يستخدمه أشخاص آخرون، ضعهما في /etc/claude-code/managed-settings.json بدلاً من ذلك، لأن ملف إعدادات المستخدم يخص المستخدم، بينما لا يخص الملف المُدار مستخدماً بعينه.
لماذا يحتاج الوضع التلقائي على VPS إلى حدّ للعزل
يراجع المصنّف إجراءً واحداً في كل مرة. ولا يقيّد ما قد يفعله الإجراء المقبول بعد ذلك. توضّح الوثائق الفرق بوضوح:
المصنّف آلية تحكم لكل إجراء، وليس حدّاً للعزل. لذلك يضيف حدّ العزل طبقة دفاع إضافية عند التشغيل دون إشراف، ولا يُشترط بالطريقة نفسها المطلوبة مع --dangerously-skip-permissions.
لذلك، الاقتران المناسب لخادم بعيد هو الوضع التلقائي مع بيئة تقبل فقدانها، وليس bypassPermissions مع الاعتماد على الحظ. يوثَّق وضع التجاوز للبيئات المعزولة فقط: الحاويات، أو الأجهزة الافتراضية، أو حاويات التطوير التي لا تصل إلى الإنترنت، حيث لا يستطيع Claude Code إتلاف نظام المضيف. أما VPS الذي يشغّل قاعدة بياناتك وReverse Proxy الخاص بك فلا ينتمي إلى أي من هذه الفئات.
ثلاثة أمور هي الأهم على الخادم. شغّل Claude Code كمستخدم عادي، وليس root مطلقاً. امنح هذا المستخدم مجلد عمل، ولا تمنحه أي شيء آخر يستحق القراءة. أعد بناء الخادم بدلاً من إصلاحه. وهذا هو سبب استخدام جهاز افتراضي مؤقت تتخلص منه بعد كل مهمة. تتناول مراجعة الأمان الكاملة لتشغيل Claude Code على VPS تفاصيل التحصين المرتبطة بذلك، بدءاً من إنشاء المستخدم ووصولاً إلى قواعد جدار الحماية، لذلك لا نكررها هنا.
يفرض Claude Code قاعدة root بنفسه. ففي Linux وmacOS يرفض البدء في وضع التجاوز عند التشغيل تحت sudo أو بوصفه root:
--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasonsيتخطى Claude Code هذا الفحص داخل sandbox معروفة، ولذلك فإن الإجابة الموثقة للعمل المستقل داخل الحاويات هي استخدام حاوية تطوير تشغّل Claude Code كمستخدم ليس root. إذا كنت تتحكم في الوكيل من هاتف أو حاسوب محمول عبر SSH، ينطبق المنطق نفسه على جلسة Claude Code طويلة التشغيل تبقيها مفتوحة داخل tmux: لا أحد يراقب المطالبة أثناء تشغيل الجلسة. لا يبدأ أي من ذلك قبل نجاح تسجيل الدخول نفسه. لذلك، إذا رفض الخادم اتصالك مع Permission denied (publickey)، فستخبرك مخرجات SSH المطوّلة بأي عطل من الأعطال الخمسة لديك فعلياً.
إعداد Bash sandbox على Ubuntu VPS
تقيّد sandbox المضمّنة الوصول إلى نظام الملفات والشبكة لكل أمر Bash يشغّله Claude، ويفرض نظام التشغيل هذه القيود على العمليات الابنة أيضاً. تحتاج إلى حزمتين على Linux.
sudo apt-get install bubblewrap socatشغّل Claude Code ونفّذ /sandbox. تفتح اللوحة مع علامتي التبويب Mode وOverrides، بالإضافة إلى علامة التبويب Dependencies التي تعرض العناصر المفقودة. يُجرى فحص التبعيات عند بدء التشغيل، لذلك أعد تشغيل Claude Code بعد تثبيت الحزم، وإلا فستستمر اللوحة في عرضها على أنها مفقودة.
في Ubuntu 24.04 والإصدارات الأحدث، تمنع سياسة AppArmor الافتراضية bubblewrap من إنشاء user namespaces التي تحتاج إليها، لذلك يفشل تشغيل sandbox. تحقّق مما إذا كان ذلك ينطبق على خادمك:
sysctl kernel.apparmor_restrict_unprivileged_usernsتعني نتيجة 0، أو ظهور خطأ يفيد بأن المفتاح غير موجود، أنه لا يلزم إجراء أي شيء. أما نتيجة 1 فتعني أن bwrap يحتاج إلى profile خاص به:
sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'
abi <abi/4.0>,
include <tunables/global>
profile bwrap /usr/bin/bwrap flags=(unconfined) {
userns,
include if exists <local/bwrap>
}
EOF
sudo systemctl reload apparmorينطبق profile على bwrap نفسه، وليس على الأوامر التي يشغّلها داخله sandbox. بعد ذلك، ضيّق نطاق العزل في الإعدادات:
{
"sandbox": {
"enabled": true,
"filesystem": {
"denyRead": ["~/"],
"allowRead": ["."]
},
"network": {
"allowedDomains": ["github.com", "*.npmjs.org"]
}
}
}يجب وضع هذه الكتلة في .claude/settings.json الخاص بالمشروع، لأن . يُحلّ إلى جذر المشروع من إعدادات المشروع فقط. إذا وضعت الأسطر نفسها في ~/.claude/settings.json، فسيُحلّ . إلى ~/.claude بدلاً من ذلك، ولذلك تمنع قاعدة denyRead الوصول إلى ملفات مشروعك، ويفشل كل أمر في قراءة الشيفرة التي يُفترض أن يعدّلها.
اعرف ما لا يغطيه هذا الإعداد. يقيّد sandbox أوامر Bash وعملياتها الابنة. تعمل أدوات الملفات المضمّنة داخل عملية Claude Code، كما أن خوادم MCP (model context protocol) وhooks عمليات منفصلة تعمل من دون قيود على المضيف. لوضع كل هذه المكونات خلف حد واحد، شغّل عملية Claude Code بأكملها داخل container أو virtual machine أو حزمة @anthropic-ai/sandbox-runtime، وهي نسخة تجريبية بحثية في مرحلة beta وقت كتابة هذا النص.
ما الوضع المناسب لكل إعداد؟
مستودع منفرد على حاسوبك المحمول
استخدم auto، مع قواعد ask للإجراءات التي تريد أن تراها قبل تنفيذها. أنت أمام لوحة المفاتيح، ويمكن لتصعيد المصنِّف أن يصل إليك فعلياً، كما أن الضرر يقتصر على جهاز واحد تتحكم فيه. هذه هي الحالة التي كُتب لها الإعداد الافتراضي في 14 August.
VPS مشترك
استخدم auto لكل مستخدم، واضبطه في ملف ~/.claude/settings.json الخاص بالمستخدم، على جهاز لا يكون فيه الحساب الذي يشغّل Claude Code هو root ولا يستطيع قراءة عمل المستخدمين الآخرين. انشر disableBypassPermissionsMode بوصفه "disable" في /etc/claude-code/managed-settings.json، مع قواعد الرفض التي تحمي المسارات المشتركة. الجهاز المشترك هو أوضح حالة يكون فيها bypassPermissions غير مناسب، لأن حد العزل الذي يفترضه هذا الوضع غير موجود: المستأجرون الآخرون موجودون داخله.
CI والجلسات غير التفاعلية
استخدم dontAsk مع قائمة allow صريحة بالأوامر التي تحتاج إليها المهمة. الرفض التلقائي هو نمط الفشل الصحيح عندما لا يرى أي شخص مطالبة أبداً. يعمل الوضع التلقائي بصورة غير تفاعلية أيضاً، لكن حجب المصنِّف المتكرر يُنهي جلسة -p، ولذلك تفشل المهمة في منتصفها بعد تنفيذ جزء من العمل. احتفظ بـbypassPermissions لحاوية أو آلة افتراضية تعيد إنشاءها من صورة، ولا تستخدمه على أي مضيف يشغّل أيضاً شيئاً مهماً لك.
FAQ
متى يصبح الوضع التلقائي هو الوضع الافتراضي في Claude Code؟
اعتباراً من 14 August 2026، للجلسات الجديدة على خطط Pro وMax وTeam. توضح الوثائق أيضاً أنه يمكنك تبديل الأوضاع في أي وقت، وأن الإعداد الافتراضي الذي تحدده بنفسك يبقى فعالاً ما لم تقبل مطالبة التبديل لمرة واحدة، وأن الإعداد الافتراضي الذي تديره مؤسستك لا يتغير. يذكر الإعلان أن الوضع التلقائي يبقى اختيارياً لخطط Enterprise والحسابات التي تستخدم API خلال المرحلة الأولى من الإطلاق. تحقق من الوضع الفعلي للجلسة عبر شريط الحالة، الذي يعرض ⏵⏵ auto mode on في الوضع التلقائي.
هل أستخدم الوضع التلقائي أم bypassPermissions على VPS؟
استخدم الوضع التلقائي مع حد عزل. يراجع المصنّف كل إجراء قبل تشغيله، لكن الوثائق توضح صراحةً أنه عنصر تحكم لكل إجراء وليس حد عزل. لذلك، لا يزال التشغيل غير المراقب يحتاج إلى container أو virtual machine أو خادم مستعد لإعادة بنائه. يتجاوز bypassPermissions عمليات التحقق بالكامل، وتوثّقه الوثائق للبيئات المعزولة فقط. يرفض Claude Code البدء بهذا الوضع عند تشغيله بصفة root على Linux، ويطبع --dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons.
كيف أمنع أي شخص على خادمي من استخدام الوضع التلقائي أو وضع التجاوز؟
اضبط permissions.disableAutoMode وpermissions.disableBypassPermissionsMode على السلسلة "disable" في /etc/claude-code/managed-settings.json. تتقدم الإعدادات المُدارة على جميع النطاقات الأخرى، لذلك لا يمكن لأي ملف إعدادات خاص بالمستخدم أو أي flag في سطر الأوامر تجاوزها. يزيل disableAutoMode قيمة auto من دورة Shift+Tab، ويرفض --permission-mode auto عند بدء التشغيل. يعمل disableBypassPermissionsMode أيضاً من أي نطاق، لذلك يمكن لمستخدم واحد ضبطه في ~/.claude/settings.json الخاص به.
لماذا يتجاهل إعداد defaultMode: "auto" الخاص بي؟
لأنه موجود في الملف الخطأ. ابتداءً من Claude Code v2.1.142، يتم تجاهل defaultMode: "auto" عندما يأتي من .claude/settings.json أو .claude/settings.local.json، حتى لا يتمكن مستودع من تفعيل الوضع التلقائي لنفسه عبر شحن ملف إعدادات. تبدأ الجلسة في وضع default ولا تطبع أي خطأ. انقل الإعداد إلى ~/.claude/settings.json، ثم شغّل /permissions للتحقق من الملف الذي أتى منه كل rule نشط. إذا ظل الوضع التلقائي غير متاح، فتحقق من متطلبات النموذج: النماذج الأقدم مثل Sonnet 4.5 غير مدعومة على أي provider.