خمسة إعدادات في Claude Code كنت أتمنى معرفتها من اليوم الأول

إعدادات Claude Code
في هذه المقالة

إعدادات Claude Code الخمسة التي أنصح بضبطها من اليوم الأول: الوكلاء الفرعيون على Haiku لتوفّر حصتك، والـ hooks تحرس الأوامر الخطرة قبل تنفيذها، وأوامر سلاش مخصصة لما تكرره كل يوم، ووضع التخطيط قبل التعديلات الكبيرة، وأمر ⁦/mcp⁩ لتعرف أي خادم يعمل وأيّها تعطّل.

أشرح كل واحد منها من الطرفية (تيرمينال) ومن تبويب Code في برنامج Claude، وفي آخر المقال قائمة مراجعة من خمسة أسئلة تفحص بها إعداداتك.

الإعدادأين تضبطه
الوكلاء على Haikuبلوك env في settings.json
hooksبلوك hooks في settings.json
أمر سلاش مخصصملف في ⁦.claude/commands⁩
وضع التخطيط⁦/plan⁩ أو Shift+Tab
⁦/mcp⁩داخل Claude Code
خمس بطاقات للإعدادات الخمسة، في كل بطاقة ما تفعله وأين تضبطها

كيف أجعل الوكلاء الفرعيين في Claude Code يعملون على Haiku؟

حين تعطي Claude مهمة كبيرة يوزّع جزءًا منها على وكلاء فرعيين (subagents). يعمل كل وكيل في نافذة سياق منفصلة، فيبحث في مشروعك أو يقرأ وثائق ثم يعيد إليك ملخصًا فقط. وطلبات الوكيل تُحسب من حصة استخدامك كأي طلب آخر، والوكيل يعمل افتراضيًا على موديل جلستك نفسه، فإن كنت على Opus فبحثه البسيط في الملفات على Opus أيضًا.

جلسة على موديلك الكبير توزّع المهام على ثلاثة وكلاء فرعيين، قبل الضبط وبعده على Haiku

لتحويلهم إلى Haiku أضف هذا البلوك إلى الملف ⁦~/.claude/settings.json⁩ وأنشئ الملف إن لم يكن موجودًا (على Windows يقع في ⁦%USERPROFILE%\.claude⁩). وإن كان فيه إعدادات أخرى فضع المفتاح env بجوارها داخل القوسين نفسيهما. اخترت الملف الشخصي لأن القرار يخص حصتك أنت، ولأن قيم env في ملف المشروع تنتظر أن تثق بالمجلد.

{
  "env": {
    "CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
    "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1"
  }
}

المتغيّر الأول يحدد الموديل، والثاني يفرضه على جميع الوكلاء ومنها ⁦Explore⁩ و ⁦Plan⁩ المدمجان. وبدون الثاني يصير الأول قيمة افتراضية فقط: يتقدم عليها ما كُتب في ملف أي وكيل وما يمرره Claude نفسه، ويبقى Explore، وهو الذي يبحث في ملفات مشروعك، على موديل جلستك (أو على Opus إن كانت جلستك على Fable). وإن رأيت في الفيديو السطر الأول وحده بصيغة export للطرفية (تيرمينال) فقد كان قبل الإصدار 2.1.251 يتقدم على كل ما سواه. أما الآن فلا بد من الثاني، ويلزمه الإصدار 2.1.257 أو أحدث. وإن كان إصدارك أقدم فحدّث Claude Code بالأمر claude update.

متغيّر واحد يجعل Haiku قيمة افتراضية فقط، ومتغيّران يفرضانه على كل وكيل بما فيه Explore وPlan

وبلوك env أنسب من سطر export، لأن السطر لا يعيش إلا في نافذة الطرفية (تيرمينال) التي كتبته فيها، وبرنامج Claude لا يرث دائمًا ما تكتبه في طرفيتك، أما الملف فيقرؤه الاثنان. وفي تبويب Code طريقة ثانية: القائمة المنسدلة للبيئة في مربع الكتابة، ثم ⁦Local⁩، ثم أيقونة الترس لتفتح محرر البيئة المحلية وتضيف المتغيّرين فيه. وتبويب Code يحمل نسخة Claude Code خاصة به برقم مستقل عن أمر claude في طرفيتك: اكتب ⁦/status⁩ في جلسة محلية لترى رقمه، وحدّثه من Check for Updates ثم ابدأ جلسة جديدة.

للتحقق اكتب ⁦/tasks⁩ أثناء عمل وكيل فيظهر موديله في سطره (من الإصدار 2.1.242)، واكتب ⁦/usage⁩ لترى نصيب الوكلاء الفرعيين من استهلاكك (في خطط Pro و Max و Team و Enterprise).

غير أن الفرض يجعل Claude Code يتجاهل حقل model في ملفات الوكلاء، فالوكيل الذي حددت له Opus لمراجعة صعبة سيعمل هو أيضًا على Haiku (عدا وكيل fork). رأيي: افرضه إن كان وكلاؤك كلهم للبحث والقراءة. وإن كان بعضهم يكتب كودًا فاحذف المتغيّرين، لأن الأول وحده يجعل Haiku موديل أي وكيل بلا سطر model، ومنهم general-purpose الذي قد يعدّل ملفاتك. ثم اكتب سطر model في ملف كل وكيل، داخل مجلد ⁦.claude/agents⁩ أو ⁦~/.claude/agents⁩:

---
name: doc-reader
description: Reads files and docs and returns a short summary
model: haiku
tools: Read, Grep, Glob
---
Read what you are asked to read and report the key points. Do not edit any file.

وإن أردت نقل Explore وحده إلى Haiku فاكتب Explore في سطر name وأبقِ سطر tools للقراءة، فيحل ملفك محل الوكيل المدمج.

كيف أستعمل hooks لأمنع أمرًا خطيرًا وأسجّل ما يفعله Claude؟

الـ hook أمر تكتبه أنت ويشغّله Claude Code تلقائيًا في لحظة محددة، فيحدث دائمًا ولا ينتظر أن يتذكره النموذج. تهمنا لحظتان: ⁦PreToolUse⁩ قبل أن ينفّذ Claude أي أداة، ويستطيع أن يمنعها، و ⁦PostToolUse⁩ بعد أن تنجح الأداة، ويتفاعل مع ما حدث لكنه لا يتراجع عنه لأن الأداة انتهت. فضع الحماية في الأولى، واترك للثانية التسجيل والتنسيق.

خط زمني: قرار Claude ثم PreToolUse يستطيع المنع، ثم الأداة تعمل، ثم PostToolUse يتفاعل ولا يتراجع

تكتب الـ hooks في بلوك hooks داخل ملف الإعدادات: ⁦~/.claude/settings.json⁩ لكل مشاريعك، أو ⁦.claude/settings.json⁩ لهذا المشروع وتشاركه مع فريقك، أو ⁦.claude/settings.local.json⁩ له على جهازك وحده. وهذا مثال يمنع أي أمر فيه ⁦rm -rf⁩ ويسجّل كل أمر أو تعديل ينجح:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash|PowerShell",
        "hooks": [
          {
            "type": "command",
            "command": "grep -qE 'rm -rf|Remove-Item.*-Recurse' && { echo 'Blocked: recursive delete is not allowed' >&2; exit 2; }; exit 0"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Bash|PowerShell|Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "cat >> ~/.claude/tool-log.jsonl"
          }
        ]
      }
    ]
  }
}

يصل إلى الـ hook نص JSON فيه اسم الأداة وأمر الشل المطلوب، فيبحث فيه grep عن أمر الحذف المتكرر في Bash أو في PowerShell. إن وجده كتب الـ hook رسالة على stderr وخرج بالرمز 2، ومعناه امنع، فتصل الرسالة إلى Claude ويخبرك بأن الأمر محجوب ثم يغيّر خطته. وإن لم يجد شيئًا خرج بالرمز 0، فلا يقرر شيئًا ويتابع الأمر مساره المعتاد. ويضم matcher الأداتين Bash و PowerShell لأن Claude على Windows قد يستعمل الثانية بدل الأولى. وعند التجربة على الإصدار 2.1.283 مع أداة Bash بقي المجلد في مكانه وأعاد Claude الرسالة كما كتبتها، ولم يُحذف إلا بعد تعطيل الـ hook.

تشريح بلوك hooks: الحدث ثم matcher ثم الأمر، ومعنى رمزي الخروج 0 و2

والـ hook الثاني يلحق سطر JSON واحدًا بالملف مع كل أمر أو تعديل ينجح، فتعرف ماذا فعل Claude وبأي ترتيب، وللأدوات التي تفشل حدث اسمه ⁦PostToolUseFailure⁩. لكن السجل يحفظ مخرجات الأوامر ومحتوى الملفات التي كتبها، فلا تضعه في مجلد تشاركه.

وللتنسيق التلقائي بعد كل تعديل يضع دليل Claude Code مثالًا يشغّل Prettier ويقرأ مسار الملف بأداة jq. وإن ظهرت لك رسالة jq: command not found على Windows فثبّتها بالأمر winget install jqlang.jq. أو صِف المطلوب لـ Claude فيكتب لك الـ hook: «أضف hook في ملف إعداداتي يشغّل prettier على كل ملف تعدّله».

ولا تعتمد على الـ hook وحده، ولا على قاعدة deny وحدها. القاعدة تحجب الصيغة المعتادة للأمر، وهذا شكلها في ملف الإعدادات (ضعها داخل permissions الموجود عندك إن كان فيه):

{
  "permissions": {
    "deny": ["Bash(rm -rf *)"]
  }
}

لكنها لا تلتقط الصيغ الملتفة مثل ⁦/bin/rm⁩ أو ⁦bash -c⁩، والـ hook الذي يقرأ نص الأمر كله يلتقطها. وانتبه إلى ثلاثة أشياء. اسم الأداة في matcher حساس لحالة الأحرف، فاكتب Bash لا bash. والفاصلة الزائدة في ملف JSON تمنع تحميل الـ hooks. ومن عنده بلوك hooks قائم يضيف الحدث الجديد بجوار أحداثه ولا يكرر البلوك.

وتعمل أوامر الـ hooks على Windows عبر Git Bash، فثبّت Git for Windows قبل أن تجرّب، وإلا فشل أمر grep وقد يُحجب استدعاء الأداة بدل أن يمضي. وفي تبويب Code تعمل الـ hooks المكتوبة في هذه الملفات كما هي، لكن لا تعتمد هناك على الأمر ⁦/hooks⁩ الذي يعرضها، فاختبر الـ hook بتجربته. وفي الطرفية (تيرمينال) اكتب ⁦/hooks⁩ لترى كل ما ضبطته، واضغط Ctrl+O لترى رسالة الحجب أو الخطأ، أما النجاح الصامت فتعرفه من أثره.

أمر سلاش مخصص لبرومبتك الذي تكرره كل يوم

أي برومبت تكتبه كل يوم يصلح أن يصير أمرًا. أنشئ ملف Markdown في مجلد ⁦.claude/commands⁩ داخل مشروعك، فيصير اسم الملف بلا الامتداد اسم الأمر: الملف deploy.md يعطيك ⁦/deploy⁩. واكتب فيه البرومبت نفسه بأي لغة تريد، وضع ⁦$ARGUMENTS⁩ حيث يجب أن يحل ما تكتبه بعد اسم الأمر:

---
description: Deploy the app to production
disable-model-invocation: true
---
Deploy $ARGUMENTS to production:

1. Run the test suite
2. Build the application
3. Push to the deployment target
4. Verify the deployment succeeded

فإذا كتبت ⁦/deploy staging⁩ حلّت staging مكان ⁦$ARGUMENTS⁩. وسطر ⁦disable-model-invocation: true⁩ يمنع Claude من تشغيل الأمر من تلقاء نفسه، وهو مناسب لأي أمر له أثر خارجي كالنشر، فأنا لا أريد أن يقرر Claude وحده متى يصير المشروع جاهزًا للنشر.

الملف deploy.md داخل مجلد commands يصير الأمر deploy، وما تكتبه بعده يحل مكان ARGUMENTS

وملفات commands القديمة تعمل كما هي، لكن الأوامر المخصصة اندمجت في المهارات وتفضّل الوثائق المهارة للأعمال الجديدة: الملف ⁦.claude/skills/deploy/SKILL.md⁩ يعطي الأمر نفسه ويتيح ملفات مرجعية وتحكمًا فيمن يستدعيه. ولتجد الأمر في كل مشاريعك ضع مجلد المهارة في ⁦~/.claude/skills⁩. وإن أردت أن تبني مهارة بنفسك فمهارة Skill Creator تبنيها معك وتختبرها، وشرحتُ الفكرة من أصلها في ما هي مهارات Claude.

وفي جلسة محلية بتبويب Code اكتب / في مربع الكتابة أو اضغط + ثم ⁦Slash commands⁩ لتتصفح الأوامر والمهارات، وابحث فيها عن اسم أمرك.

متى أبدأ بوضع التخطيط قبل أن يلمس Claude ملفاتي؟

في وضع التخطيط يقرأ Claude ملفاتك ويشغّل أوامر للاستكشاف ويكتب خطة، لكنه لا يعدّل شيئًا في الكود حتى توافق عليها. ابدأ به كلما مسّ التغيير ملفات كثيرة أو كودًا لا تعرفه، وتجاوزه حين تصحح سطرًا واحدًا.

تدخله بثلاث طرق: اكتب ⁦/plan⁩ ومعه المهمة في الرسالة نفسها، أو اضغط Shift+Tab حتى يظهر في الشريط السفلي ⁦plan mode on⁩، أو شغّل Claude Code من الطرفية (تيرمينال) بهذا الأمر:

claude --permission-mode plan
مساران: بلا تخطيط يعدّل Claude مباشرة، ومع التخطيط يقرأ ثم يعرض خطة ثم تقرر أنت

حين تجهز الخطة يسألك Claude كيف يتابع، وأمامك ثلاثة خيارات:

  • ⁦Yes, and use auto mode⁩ للموافقة مع تشغيل وضع auto.
  • ⁦Yes, manually approve edits⁩ للموافقة مع مراجعة كل تعديل بنفسك.
  • ⁦No, keep planning⁩ لرفضها والاستمرار في التخطيط وإخباره بما يتغير.

وإن لم يكن وضع auto متاحًا عندك صار الخيار الأول ⁦Yes, auto-accept edits⁩. واضغط Ctrl+G لتفتح الخطة في محرر النصوص وتعدّلها بيدك قبل أن توافق.

والوضع يحمي ملفاتك ولا يمنع كل أمر، إذ يشغّل Claude أثناء التخطيط أوامر للاستكشاف. ويبحث الوكيل الفرعي Plan للخطة، فيتبع إعداد Haiku إن فرضته.

وفي برنامج Claude اختر ⁦Plan⁩ من محدد الوضع بجوار زر الإرسال، وفيه أيضًا ⁦Manual⁩ و ⁦Accept edits⁩ و ⁦Auto⁩ (يظهر Auto حين يكون متاحًا). ويسري ⁦Plan⁩ على الجلسة الحالية فقط، فاخترْه من جديد في كل جلسة.

أمر ⁦/mcp⁩ يكشف أي خادم يعمل وأيّها تعطّل

خوادم MCP تعطي Claude أدوات خارجية كالبحث في الإنترنت وتشغيل المتصفح، وأكثر ما يضيّع وقتك أن يتعطل أحدها فلا تنتبه فيعمل Claude بدونه. اكتب ⁦/mcp⁩ داخل Claude Code فتظهر قائمة بكل خوادمك وحالة كل واحد، ومنها المتصل والذي يحتاج تسجيل دخول والذي فشل اتصاله، وبجانب المتصل عدد أدواته. واختر أي خادم لتظهر قائمته: أعد الاتصال به ⁦Reconnect⁩، أو عطّله ⁦Disable⁩، أو امسح تسجيل دخوله ⁦Clear authentication⁩.

رسم لقائمة mcp فيها ثلاثة خوادم بحالات متصل ويحتاج دخولًا وفشل

وحين يفشل خادم تجد في صفحة تفاصيله سطر Issue فيه ما أعاده الخادم من خطأ (من الإصدار 2.1.219). وأمر ⁦/mcp reconnect all⁩ يعيد المحاولة مع كل خادم فشل أو طلب دخولًا، ويحتاج الإصدار 2.1.284 أو أحدث. ويعرض ⁦/mcp⁩ أيضًا تحذيرات الإعداد، ومنها مسافة خفية في نهاية مفتاح لصقته.

ويفيدك في التوفير أيضًا: كل خادم يضيف أسماء أدواته إلى سياق Claude، وتنصح الوثائق بتعطيل ما لا تستعمله، وتعطيله من القائمة يوقف الاتصال به دون أن تخسر إعداده.

وللفحص من الطرفية (تيرمينال) اكتب:

claude mcp list

فيكتب بجانب كل خادم حالته، ومن حالاته:

ما تقرؤهمعناه
Connectedمتصل ويعمل
Needs authenticationيحتاج تسجيل دخول
Failed to connectفشل الاتصال به

وفي جلسة محلية بتبويب Code لا تعتمد على القائمة التفاعلية، فاستعمل الموصّلات: اضغط + ثم ⁦Connectors⁩، وللتأكد من الاتصال اسأل Claude: «ما الموصّلات والأدوات المتاحة في هذه الجلسة؟». وطرق إضافة خمسة خوادم شائعة من الطرفية (تيرمينال) ومن البرنامج في خمسة MCP servers لـ Claude Code.

قائمة مراجعة إعداداتك في خمسة أسئلة

أجب عن هذه الأسئلة ومشروعك مفتوح أمامك:

  • هل تعرف على أي موديل يعمل وكلاؤك الفرعيون؟ اكتب ⁦/tasks⁩ أثناء عمل وكيل وانظر موديله في سطره.
  • هل في إعداداتك hook واحد على الأقل يحرس أمرًا لا تريد أن يمرّ؟ اكتب ⁦/hooks⁩ أو افتح ملف الإعدادات.
  • هل هناك برومبت كتبته بحروفه أكثر من مرة؟ اجعله أمرًا: ملفًا في ⁦.claude/commands⁩ أو مهارة.
  • هل تبدأ المهام التي تمسّ ملفات كثيرة بوضع التخطيط؟ اضغط Shift+Tab في أول مهمة كبيرة.
  • هل كل خادم في ⁦/mcp⁩ متصل وتحتاجه فعلًا؟ عطّل ما لا تستعمله.
قائمة مراجعة من خمسة أسئلة لفحص إعدادات Claude Code

وإن أردت أن يراجع مشروعك غيرك فإضافة Claude Code Setup المجانية تقرأ ملفاته الأساسية وتقترح عليك خوادم MCP والمهارات والـ hooks والوكلاء الفرعيين والإضافات المناسبة، مع سبب كل اقتراح، وهي تقترح ولا تعدّل شيئًا.

ما لا يغطّيه هذا الدليل

  • لا أشرح بقية أحداث الـ hooks مثل Stop و Notification و SessionStart، ولا أنواعها الأخرى http و mcp_tool و prompt و agent.
  • الأوامر وأسماء المتغيّرات من وثائق Claude Code الرسمية كما قرأتها في ١٧ أكتوبر ٢٠٢٦، وبعضها يشترط إصدارًا بعينه. واختُبر أمر المنع والمتغيّران على الإصدار 2.1.283 مع أداة Bash فقط.
  • لا أذكر رقمًا لتوفير Haiku، فالوثائق لا تذكره وهو يتوقف على عدد وكلائك وما يفعلونه. قِس نصيبهم بنفسك في ⁦/usage⁩.
  • لا أغطي الإعدادات التي يفرضها مسؤول المؤسسة، فقد تمنع موديلات بعينها أو تُسكت hooks المستخدم.

أسئلة يطرحها الناس

ما أفضل إعدادات Claude Code للمبتدئين؟

ابدأ بما لا يحتاج كتابة ملف: اكتب ⁦/plan⁩ في مهمتك التالية، ثم افتح ⁦/mcp⁩ لتراجع خوادمك. وبعدهما الأمر المخصص، ثم الـ hooks والوكلاء الفرعيون حين تحتاج الحماية أو التوفير.

هل أكتب المتغيّرين في الطرفية (تيرمينال) أم في ملف settings.json؟

في الملف ⁦~/.claude/settings.json⁩، لأن بلوك env يقرؤه كل من الطرفية (تيرمينال) وبرنامج Claude، أما سطر export فيعيش في نافذة طرفية (تيرمينال) واحدة.

هل يكفي Haiku لكل وكلائي الفرعيين؟

للبحث وقراءة الملفات يكفي غالبًا. أما الوكيل الذي يكتب كودًا أو يراجعه فاكتب في ملفه سطر model بالموديل الذي يناسبه، أو inherit ليتبع موديل جلستك، بدل فرض Haiku على الجميع.

هل ما زالت ملفات commands تعمل بعد دمج الأوامر في المهارات؟

نعم، تعمل بلا تغيير. وللأعمال الجديدة ابنِ مهارة بدلها، لأنها تتيح ملفات مرجعية وتحكمًا فيمن يستدعيها.

هل أستطيع ضبط هذه الإعدادات من برنامج Claude على الكمبيوتر؟

في أغلبها نعم: بلوك env وبلوك hooks يُكتبان في الملفات نفسها، والأوامر والمهارات تظهر في قائمة ⁦/⁩ عند الكتابة، ووضع التخطيط من محدد الوضع بجوار زر الإرسال، وخوادم MCP من الموصّلات.