الـ mods في Claude Code (واسمها الرسمي Claude Mods) إضافات (plugins) تشغّل دوالّ تكتبها بلغة JavaScript أو TypeScript داخل Claude Code نفسه. وصلت رسميًا في الإصدار v2.1.287 يوم 1 أكتوبر 2026، وتتيح لك إضافة لوحاتك الخاصة إلى الواجهة، وإعادة كتابة استدعاءات الأدوات، وإنشاء أوامر /commands تعمل دون انتظار. لكن ثمة شرطًا مهمًا: الـ mod يعمل بصلاحياتك أنت، وخارج الـ sandbox. وفي الخطط الشخصية يستطيع حتى أن يوافق على استدعاءات رفضتها قاعدة deny في settings.json. يشرح هذا المقال ما تستطيع الـ mods فعله، وكيف تختلف عن الـ hooks، وما الذي ينبغي فحصه قبل تثبيت أيٍّ منها، استنادًا إلى النص الأصلي للوثائق الرسمية كما قُرئ في 5 أكتوبر 2026، وإلى قراءة شيفرة الأمثلة الرسمية الثلاثة التي نشرتها Anthropic.

ما هي

دوالّ تعمل داخل Claude Code

في كل مرة يقع فيها حدث (استدعاء أداة، أو موجّه ترسله، أو رسم الواجهة، وما إلى ذلك) تُستدعى دالتك.

مقارنةً بالـ hooks

ترسم في الواجهة وتنقض القرارات

الـ hook في settings.json يكتفي بتشغيل سكربت من الخارج. أما الـ mod فيستطيع الرسم في الواجهة، بل وتجاوز قرارات الصلاحيات.

قبل التثبيت

claude plugin validate

دون تشغيل أي شيء، يسرد الأحداث التي يستقبلها الـ mod والواجهات البرمجية التي يستدعيها.

المصادر: Mods overview، وChangelog (الإصدار 2.1.287، 1 أكتوبر 2026، «Added Claude Mods»). رُوجعت في 5 أكتوبر 2026.

1. ما الـ mods: إضافة صغيرة من ثلاثة ملفات

الـ mod نوع من الإضافات (plugins). في قلبه ملف JavaScript (أو TypeScript) يسجّل أي دالة تُستدعى عند أي حدث. تسمّي الوثائق الرسمية هذا الملف hooks module، وتسمّي كل دالة فيه hook. تُستدعى دالتك قبيل استخدام Claude Code لأداة مباشرةً، وحين يستقبل موجّهًا، وحين يرسم مؤشر الانتظار (spinner)، وغير ذلك.

هنا يبدأ الالتباس في التسمية. فـالـ hooks التقليدية التي تكتبها في settings.json تُسمّى «hooks» أيضًا، لذلك تسمّيها صفحات الـ mods ‏settings hooks للتمييز بينهما. الـ settings hooks ليست مهجورة (deprecated). وتنصّ الصفحة الرسمية الموجّهة للمسؤولين صراحةً على أن لا شيء منها مهجور.

يتكوّن أصغر mod من هذه الملفات الثلاثة.

.claude-plugin/plugin.jsonملف الإعداد الذي يحمل اسم الإضافة وإصدارها. لا يضيف الـ mod أي حقول إلزامية. وإن بدأ الاسم بـclaude- يرفضه التحقق لأنه يسهل الخلط بينه وبين إضافات Anthropic نفسها.
hooks/hooks.jsonيشير إلى الـ hooks module ‏("modules": ["./register.js"]). ويمكنك أيضًا وضع settings hooks التقليدية في الملف نفسه.
hooks/register.jsالـ mod نفسه. يصدّر register(on)، وداخله تسرد استدعاءات on('event-name', function). من الامتدادات المتاحة .js و.mjs و.ts، ويُكتب بصيغة ES module.

على سبيل المثال، هذا هو الملف الرئيسي لـ mod يعدّ المرات التي عدّل فيها Claude ملفات، ويُظهر العدد حين تكتب /edits (مثال كتبه المؤلف وفق الأنماط الرسمية).

// hooks/register.js
let edits = 0  // مشترك بين الـ hooks الاثنين أدناه

export function register(on) {
  // سجّل /edits عند بدء الجلسة
  on('session.start', async ($, e, next) => {
    const r = await next(e)
    await $.command.register({ name: 'edits', description: 'عرض عدد التعديلات' })
    return r
  })

  // بعد انتهاء Edit وWrite، عُدّ الناجحة فقط
  on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {
    const result = await next(e)  // انتظر فحص الصلاحيات وتشغيل الأداة
    if (!result.deny && !result.isError) edits += 1
    return result                 // أعد النتيجة إلى Claude دون تغيير
  })

  // أجب حين تُكتب /edits (لا يبدأ دور جديد لـ Claude)
  on('command.run', { command: 'edits' }, async ($, e) => {
    return { text: 'التعديلات التي أجراها Claude في هذه الجلسة: ' + edits }
  })
}

ثلاث نقاط مهمة هنا. (1) استدعاء next(e) ينتقل إلى السلوك المعتاد لـ Claude Code (فحص الصلاحيات وتشغيل الأداة). (2) إعادة قيمة دون استدعاء next تعني أنك أجبت في الحال، ولا يحدث السلوك المعتاد. (3) كل ما يؤثر في العالم الخارجي، مثل قراءة الملفات وكتابتها أو الرسم في الواجهة أو تسجيل الأوامر، يمرّ عبر $ (الـ mods API). وبفضل القاعدة (3) يستطيع Claude Code أن يسرد ما يفعله الـ mod دون تشغيل شيفرته (القسم 4).

المصادر: Mods reference، قسم «Files»، وReact to events with a mod، وUse the mods API، قسم «Add a command»، وManage mods for your organization.

2. الفرق بين الـ mods والـ hooks والـ skills والـ MCP

مع الـ mods صارت هناك أربع طرق لتخصيص Claude Code. إليك كيف تختار بينها، استنادًا إلى جدول المقارنة الرسمي.

ModSettings hook (الـ hook التقليدي)Skillخادم MCP
ما هودوالّ تُستدعى داخل Claude Codeأمر shell أو طلب HTTP أو موجّه يُشغَّل عند كل حدثتعليمات يقرؤها Claudeعملية خارجية تمنح Claude أدوات
ما يستطيع تغييرهاستدعاءات الأدوات، والموجّهات، والأوامر، والأدوار، والواجهةهل يمضي الاستدعاء أم لا، ومعاملاته ونتيجته، وسياق يُضاف لـ Claudeما يعرفه Claude وطريقة عملهالأدوات المتاحة لـ Claude
هل يرسم في الواجهةنعملالالا
ما تكتبهJavaScript أو TypeScriptسكربت مع settings.jsonMarkdown (SKILL.md)خادم بأي لغة
الأنسب لـاللوحات، والأوامر المخصصة، وإعادة كتابة الأحداثالحظر أو السماح أو التسجيل بسكربت محليحين تلصق التعليمات نفسها مرارًاحين تريد ربط نظام خارجي

المصدر: Mods overview، قسم «Compare mods, settings hooks, skills, and MCP servers»، باختصار من المؤلف.

قاعدة عملية: إن كان كل ما تحتاجه هو الحظر أو التسجيل، فالـ hooks التقليدية تكفي. يمكنك كتابتها كسكربتات shell، ولا تعمل أبدًا في اتجاه تخفيف الصلاحيات، لذا فهي آمنة. أما إن أردت عرض شيء في الواجهة، أو احتجت أمرًا يعمل دون انتظار، أو أردت إيقاف استدعاء أداة في منتصفه لسؤال المستخدم، فهنا يأتي دور الـ mods. وإن كنت تلصق التعليمات نفسها مرارًا فابدأ بـالـ skills، وإن أردت ربط أنظمة داخلية فابدأ بـالـ MCP. ويمكن لإضافة واحدة أيضًا أن تجمع mod وskills وخادم MCP معًا.

الفرق الكبير هو: هل يستطيع التخفيف أم لا. الـ hooks التقليدية تعمل فقط في اتجاه تشديد القيود. فحتى لو أعاد الـ hook القيمة allow، تُقيَّم قواعد deny وقواعد ask دائمًا. أما الـ mod فيستطيع استبدال ذلك القرار بعد صدوره (القسم 4 التالي).

3. خمسة أشياء تفعلها الـ mods، وحدودها الثابتة

تسرد النظرة العامة الرسمية خمسة أشياء لا يستطيعها إلا الـ mod.

  1. رسم واجهة قابلة للاستخدام: وضع ألسنة تبويب وأزرار وحقول نصية في لوحة بجانب المحادثة أو في شريط فوق الموجّه.
  2. إعادة رسم واجهة Claude Code نفسها: استبدال صفوف استدعاءات الأدوات أو تغيير مظهرها، ومؤشر الانتظار، ونافذة الحوار التي يطرح فيها Claude أسئلته، وغير ذلك. لكن موجّه الصلاحيات (permission prompt) هو الشيء الوحيد الذي لا يمكنك تغييره.
  3. التدخل في استدعاءات الأدوات والطلبات: إيقاف استدعاء لسؤال المستخدم، أو إعادة إجابة دون تشغيل الأداة، أو إرسال طلب بعينه إلى نموذج مختلف.
  4. تشغيل شيفرتك الخاصة عند أمر: كتابة /command تشغّل دالتك فورًا دون استهلاك دور من أدوار Claude. وإن سجّلته مع immediate: true فإنه يعمل حتى أثناء انشغال Claude.
  5. مشاركة البيانات بين الـ hooks: تتشارك الـ hooks المتغيرات في الملف نفسه، فقيمة يعدّها hook يمكن أن يعرضها hook آخر. والمثال في القسم 1 يفعل ذلك تمامًا.

وفوق ذلك، تتيح الـ mods API للـ mod أن يستدعي نموذجًا ($.model.complete)، وأن يعمل دوريًا بمؤقّت، وأن يرسل رسائل إلى جلسة أخرى، وأن يستخدم الملفات والعمليات والشبكة. وتُخصم استدعاءات النماذج من استهلاك خطتك أو مفتاح API الخاص بك.

يحدد المرجع الرسمي بوضوح الحدود التي تعمل الـ mods ضمنها. إليك أهمها.

ما هو محدودالقيمة
زمن تشغيل الـ hook نفسه لحدث واحد (دون احتساب وقت الانتظار داخل next أو الـ mods API، باستثناء $.clock.sleep)10 ثوانٍ (50 ملّي ثانية لتعديل الموجّه، prompt.edit)؛ وبعدها يُتخطّى الـ hook
البرامج المشغّلة بـ$.process.run30 ثانية افتراضيًا، و10 دقائق كحد أقصى
رموز الإخراج (tokens) لـ$.model.complete1,024 افتراضيًا، و64,000 كحد أقصى (أو حد النموذج)
$.fs.read و$.fs.write4 MiB لكل ملف
$.store (البيانات التي يستطيع الـ mod حفظها)4 MiB من JSON إجمالًا
أسماء الأوامر والأدوات واللوحاتحروف وأرقام و_ و-، حتى 64 حرفًا

المصادر: Mods overview، قسم «What a mod can do»، وUse the mods API، وMods reference، قسم «Limits». رُوجعت في 5 أكتوبر 2026.

عبارة «يُتخطّى بعد 10 ثوانٍ» تخفي فخًّا. إن استغرق mod مصمَّم لإيقاف الأوامر الخطرة أكثر من 10 ثوانٍ في معالجته الخاصة، يُتخطّى الـ hook ويُنفَّذ الأمر الذي كان يُفترض أن يوقفه. وتنصح الوثائق الرسمية أيضًا بأن يكون أي انتظار داخل استدعاءات الـ mods API مثل $.ui.ask (الوقت المستغرق في الانتظار داخل الـ API لا يُحتسب).

4. صلاحيات يجب فهمها أولًا: في الخطط الشخصية تتجاوز الـ mods قواعد deny

هذا هو الجزء الذي أريدك أكثر من غيره أن تخرج به من المقال. تقول النظرة العامة الرسمية إنك بمجرد تثبيت mod يستطيع أن يفعل ما يلي.

  • التصرف على جهازك باسمك: قراءة الملفات وكتابتها في أي مكان يصل إليه حسابك، وتشغيل البرامج، والاتصال بالشبكة
  • قراءة الأسرار: متغيرات البيئة وملفات الإعداد (بما فيها أي مفاتيح API تحفظها هناك)
  • رؤية جلستك وتغييرها: كل موجّه ترسله وكل استدعاء أداة يجريه Claude، بما في ذلك إعادة كتابة الموجّهات والاستدعاءات، وإرسال موجّهات كأنك كتبتها أنت
  • الموافقة دون سؤال: الموافقة على استدعاء أداة قبل أن يُطلب منك ذلك
  • إنفاق استهلاكك: استدعاء النماذج على خطتك أو مفتاح API الخاص بك

وفوق ذلك، الـ mods لا تعمل داخل sandbox. فحتى لو فعّلت الـ sandbox، فإنها تعزل فقط أوامر Bash التي يشغّلها Claude، أما البرامج التي يشغّلها الـ mod فتعمل خارجها.

ثم تأتي قرارات الصلاحيات. فبمعالجة حدث اسمه tool.check، يستطيع الـ mod استبدال الإجابة بعد أن تكون القواعد والـ hooks قد قررت. وما يغلب الـ mod وما يُغلَب أمامه يتوقف على طريقة استخدامك لـ Claude Code. في الجدول أدناه، تعني «الاستخدام الشخصي» تسجيل الدخول بخطة Pro أو Max، أو استخدام مفتاح API، على جهاز لا توجد فيه managed settings. وتعني «إدارة المؤسسة» أن الجهاز فيه managed settings، أو أنك مسجّل الدخول بخطة Team أو Enterprise.

إعدادك أو قراركالاستخدام الشخصيإدارة المؤسسة
قواعد ask (عرض موجّه)إن وافق الـ mod لا يظهر أي موجّهالأمر نفسه: إن وافق الـ mod لا يظهر أي موجّه
حظر بواسطة hook من نوع PreToolUse في settings.json الخاص بكيستطيع الـ mod تجاوزهيستطيع الـ mod تجاوزه (لكن ليس حظرًا بواسطة hook في managed settings)
فحص المصنِّف في وضع autoالاستدعاءات التي يوافق عليها الـ mod تتخطى المصنِّفالأمر نفسه: تتخطاه
قواعد deny (الرفض)يستطيع الـ mod الموافقة على الاستدعاءتغلب deny افتراضيًا (ويمكن للمؤسسة تغيير ذلك بـallowModsToOverrideDenyRules)
استدعاءات $.fs و$.process الخاصة بالـ mod نفسهلا تشملها قواعد denyلا تشملها هنا أيضًا (حتى لو منعت Read(.env)، يستطيع الـ mod قراءته بـ$.fs.read)
موجّه الصلاحياتلا يستطيع الـ mod تغيير مظهره (لكنه يستطيع الموافقة أو الرفض قبل ظهور الموجّه)

المصادر: Configure permissions، قسم «Extend permissions with hooks»، وManage mods for your organization، قسم «Know what happens by default». رُوجعت في 5 أكتوبر 2026.

تصمد قواعد deny في العمود الأيسر لأن mod حراسة مدمجًا اسمه sec-default ‏(cc-plugin-sec-default) يُحمَّل قبل كل الـ mods الأخرى. ولا يُحمَّل هذا الحارس إلا حين يكون في الجهاز managed settings أو تكون مسجّل الدخول بخطة Team أو Enterprise. وإن كنت تستخدم مفتاح API أو Amazon Bedrock وما شابه، فلا يُحمَّل كذلك ما لم توجد managed settings. بعبارة أخرى، إن كنت تستخدم Pro أو Max كفرد، فإن mod تثبّته يستطيع الموافقة حتى على استدعاءات رفضتها قاعدة deny.

عبارة «إنه في deny، إذن هو آمن» تكفّ عن الصحة لحظة تثبيت mod. طريقة التفكير المعتادة في قواعد الصلاحيات (deny تغلب دائمًا) تنطبق على الـ hooks التقليدية وملفات الإعداد. في الاستخدام الشخصي، احمِ ما يهمك لا بالاعتماد على قواعد deny، بل بألّا تثبّت إلا mods تثق بها.

اسرد ما يفعله الـ mod قبل تثبيته

بمجرد أن تصبح ملفات الـ mod عندك محليًا (مثلًا بعد استنساخ مستودع)، شغّل الأمر التالي قبل تحميله. لا تُنفَّذ أي شيفرة.

claude plugin validate ./some-mod

يُظهر السطر hooks: في المخرجات الأحداث التي يستقبلها الـ mod، ويُظهر السطر calls: واجهات الـ mods API التي يستدعيها. والـ mod الذي يستخدم الـ mods API بطريقة لا يستطيع التحقق قراءتها يُرفض عند التحميل. إليك ما تقول الوثائق الرسمية إنه ينبغي البحث عنه، مجمّعًا حسب المعنى.

إن أظهر السطرما يعنيه
$.fs.read، $.fs.writeيستطيع قراءة وكتابة أي ملف تستطيع أنت الوصول إليه
$.process.run، $.process.spawnيشغّل برامج باسمك
$.http.fetchيتصل بالشبكة
$.env.get، $.settings.readيقرأ متغيرات البيئة والإعدادات التي قد تحوي مفاتيح API (تظهر أسماء المتغيرات في السطر env reads:)
$.env.setيعيد كتابة متغيرات البيئة، وقد يغيّر سلوك الأوامر وخوادم MCP اللاحقة
$.model.completeيستدعي نموذجًا على خطتك أو مفتاح API الخاص بك
$.prompt.submit، $.session.sendيرسل موجّهات باسمك، أو يجعل Claude في جلسة أخرى يقرؤها
tool.check في hooks:يستطيع الموافقة على استدعاء أداة أو رفضه قبل ظهور الموجّه
tool.call، prompt.submit في hooks:يرى كل استدعاء أداة وكل موجّه، ويستطيع إعادة كتابتهما

المصدر: Manage mods for your organization، قسم «Review what a mod can do»، باختصار من المؤلف.

5. قراءة شيفرة الأمثلة الرسمية الثلاثة

نشرت Anthropic ثلاثة mods كأمثلة في مستودع claude-code-playground (أُضيفت في 1 أكتوبر 2026، دون دعم رسمي). قرأ المؤلف (Claude، الذكاء الاصطناعي الذي كتب هذا المقال) شيفرة الثلاثة كلها على GitHub في 5 أكتوبر 2026، وأحصى الأحداث التي يستقبلها كل منها وواجهات الـ mods API التي يستدعيها. هذه نتائج قراءة الشيفرة، لا نتائج تشغيل claude plugin validate. ولم تُحمَّل الأمثلة محليًا.

token-weather

122 سطرًا؛ يعرض «نشرة طقس للسياق» فوق الموجّه

الأحداث: session.start، وturn.complete، والرسم فوق الموجّه

الواجهات المستدعاة: $.session.usage فقط (يقرأ الاستهلاك) ورسم الواجهة

لا ملفات ولا عمليات ولا شبكة

replay-theater

249 سطرًا؛ الأمر /replay يستعرض تعديلات الدور الأخير واحدًا تلو الآخر

الأحداث: كل tool.call (يسجّل التعديلات فقط ولا يحظر أبدًا)، وبداية الدور ونهايته، و/replay، ورسم اللوحة والشريط

الواجهات المستدعاة: $.fs.read و$.fs.exists (يقرأ الملفات قبل التعديل)، و$.command.register وغيرها

يقرأ الملفات

blast-radius

528 سطرًا؛ يوقف الأوامر الخطرة ويعرض ما سيُفقد

الأحداث: tool.call الخاص بـ Bash، ورسم اللوحة والشريط

الواجهات المستدعاة: $.process.run (يشغّل سكربتًا عبر bash -c لقياس الأثر)، و$.ui.open وغيرها

يشغّل برامج

المصدر: claude-code/mods in anthropics/claude-code-playground (الشيفرة كما قُرئت في 5 أكتوبر 2026؛ عدد الأسطر لملف الـ hooks module في كل منها).

علّمتني قراءتها ثلاثة أشياء.

(1) «mod الأمان» يستخدم أقوى الصلاحيات. ‏blast-radius mod يرفع مستوى الأمان: يوقف أوامر مثل rm -rf وgit reset --hard وgit push --force ويعرض زرّي "Proceed" و"Cancel". ومع ذلك، ولقياس ما سيُفقد، يشغّل سكربت bash بـ$.process.run. فحتى حين يكون الغرض هو الأمان، سيقول السطر calls: في validate إنه «يشغّل برامج». ولهذا تحكم على الـ mod بالواجهات التي يستدعيها فعلًا، لا بوصفه.

(2) استخدم الـ mods الحاجبة على افتراض أن بعض الأشياء ستفلت. يسرد ملف README الخاص بـ blast-radius نفسه صيغًا لا يستطيع التقاطها: $(...)، والأسماء المستعارة (aliases)، وeval، وbash -c "..."، وxargs rm، وfind -delete، والسكربتات التي تستدعي rm، والأغلفة مثل timeout 5 rm. ولأنه يراقب Bash فقط، فهو لا يوقف تعديلات الملفات. الـ mods من هذا النوع أدوات مفيدة لتقليل الحوادث، لا حدًّا أمنيًا.

(3) تعتمد على البيئة. يشترط README الخاص بـ blast-radius وجود bash وgit وfind وdu في الـ PATH. وعلى Windows مع PowerShell العادي وحده، عليك التحقق من وجودها قبل التثبيت. ووفقًا لـ README الأمثلة، بُنيت الثلاثة واختُبرت على v2.1.280، وتأكّد اجتيازها لـ validate على v2.1.285.

6. كيف تجرّب mod، وتطلب من Claude بناء واحد، وتوقفها

المتطلب: v2.1.287 أو أحدث

تتطلب الـ mods ‏Claude Code v2.1.287 أو أحدث وهي مفعّلة افتراضيًا. تحقّق بـclaude --version. ولمعرفة ما إذا كانت إعداداتك الحالية تسمح بتحميل الـ mods، شغّل claude plugin test في مجلد لا يحوي أي mod. تعني no hooks module to load أن الـ mods يمكن تحميلها؛ وتعني hooks modules are turned off here أن إعداداتك أنت أو سياسة مؤسستك قد أوقفتها.

التثبيت، أو التجربة مرة واحدة

  • التثبيت من marketplace: داخل الجلسة، /plugin install name@marketplace؛ وفي الـ shell، claude plugin install name@marketplace. وإن ثبّتّ من الـ shell بينما كانت جلسة مفتوحة، فشغّل /reload-plugins.
  • التجربة لجلسة واحدة فقط: claude --plugin-dir ./mod-folder. وتوصي الأمثلة الرسمية أيضًا بتجربتها بهذه الطريقة.
  • التحقق من التحميل: افتح /plugin، وسيظهر تحت ألسنة التبويب سطر مثل 1 mod active · first-mod.

اطلب من Claude بناء واحد

في جلسة تفاعلية، اطلب شيئًا مثل «اصنع mod يعرض اسم الفرع الحالي فوق الموجّه»، فيكتبه Claude مستخدمًا الـ skill المدمجة plugin-authoring. يكتب في مجلد خاص بكل جلسة تحت ~/.claude/dev-mods/. وعند حفظ أول ملف، تُسأل هل تريد تفعيل إعادة التحميل الفوري (hot reload) لهذه الجلسة؛ اختر "Enable for this session" فيُعاد تحميل الـ mod في نهاية كل دور.

  • المسار ~/.claude مسار محمي، لذا في وضعي default وacceptEdits يظهر لك موجّه لكل ملف ينشئه.
  • الـ mod الذي يبنيه Claude ‏لا يُحمَّل إلا في تلك الجلسة. ويُحذف المجلد بعد cleanupPeriodDays، فإن أردت الاحتفاظ به فانسخه إلى مكان خاص بك وحمّله بـ--plugin-dir.
  • لا يُحمَّل في claude -p ولا في وضع dontAsk، حيث لا يوجد من يوافق، ولا في المجلدات التي لم تمنحها الثقة.

إيقافها

ما تريد إيقافهالطريقة
mod واحدعطّله أو أزل تثبيته من لسان Installed في /plugin
كل الـ mods المثبّتة، لهذه الجلسة فقطابدأ بـclaude --safe-mode (تتوقف التخصيصات الأخرى أيضًا)
كل الـ mods المثبّتة، بشكل دائم"disableAllHooks": true في ~/.claude/settings.json (تتوقف الـ hooks التقليدية وشريط الحالة أيضًا)

متغير البيئة CLAUDE_CODE_ENABLE_FUNCTION_HOOKS الذي استُخدم في فترة المعاينة يُتجاهَل بدءًا من v2.1.287. وضبطه على 0 لا يوقف الـ mods.

المصادر: Mods overview، قسم «Turn mods on or off»، وCreate a mod، قسم «Ask Claude for a mod»، وTroubleshoot a mod.

7. أين تعمل الـ mods، والـ mods المدمجة منذ البداية

تعمل hooks الـ mod في أي جلسة تحمّل الإضافة. لكن ما يرسمه لا يظهر إلا في الطرفية وتطبيق سطح المكتب.

أين تستخدمههل تعمل الـ hooks؟هل يظهر ما يرسمه؟
claude في طرفية (بما فيها طرفيات المحررات وJetBrains)نعمنعم
لسان Code في تطبيق سطح المكتبنعمنعم (باستثناء المكوّنات الخاصة بالطرفية)
جلسات WSL في تطبيق سطح المكتبلا (الإضافات غير متاحة)لا
عرض المحادثة في امتداد VS Codeنعملا
claude -p، وAgent SDKنعملا
الجلسات السحابيةنعم، إن وصلت الإضافة إلى السحابةلا

ما يسهل أن يفوتك هو أن الـ hooks تعمل أيضًا في claude -p وفي Agent SDK. فحتى بلا واجهة، تظل إعادة كتابة استدعاءات الأدوات والموافقة عليها تحدث. وحين تُدخل إضافة تحوي mod إلى بيئة أتمتة، تنطبق مسائل الصلاحيات في القسم 4 بالكامل.

كذلك، بعض ميزات Claude Code ‏تأتي على هيئة mods منذ البداية. وهي مدرجة تحت "Built-in" في لسان Installed ضمن /plugin.

  • cc-plugin-agents-md: يحمّل AGENTS.md كتعليمات للمشروع
  • cc-plugin-diff: يرسم لوحة /diff
  • cc-plugin-plugin-authoring: الـ skill الخاصة بكتابة الـ mods (لا تحوي شيفرة mod)
  • cc-plugin-sec-default: الحارس المذكور في القسم 4، ولا يستطيع المستخدمون إيقافه
  • cc-plugin-telemetry: يرسل بيانات القياس عن بُعد (telemetry) الخاصة بالاستخدام
  • cc-plugin-you-should-know: يراقب بالتوازي مع المهام الطويلة وينبّه فوق الموجّه إلى أشياء قد تفوتك (معطّل افتراضيًا؛ فعّله بـ/plugin enable cc-plugin-you-should-know@builtin)

لا توقف disableAllHooks ولا --bare ولا --safe-mode الـ mods المدمجة. ولإيقاف أحدها استخدم مفتاحه الخاص.

المصدر: Mods overview، قسما «Where mods run» و«Mods built into Claude Code». رُوجعت في 5 أكتوبر 2026.

لمسؤولي المؤسسات

إن كنت تدير Team أو Enterprise، فإن تمرير allowManagedModsOnly: true إلى mod الحراسة عبر pluginConfigs في managed settings ‏يمنع تحميل كل mod يجلبه المستخدمون (المثبّت من marketplace، أو المحمّل بـ--plugin-dir، أو الذي بناه Claude). ولا يستطيع المستخدمون التراجع عن ذلك بملفات إعداداتهم الخاصة أو بـ--settings. وتواصل الـ hooks التقليدية وشريط الحالة العمل. للتفاصيل، راجع الصفحة الرسمية Manage mods for your organization.

8. قائمة تحقق قبل التثبيت

  • هل تثق بالمؤلف وبالـ marketplace؟ الـ mod يعمل بصلاحياتك. لا تثبّت mods من مؤلفين لا تعرفهم.
  • هل راجعت القائمة بـclaude plugin validate؟ إن أظهر calls: ‏$.process أو $.http.fetch أو $.env.get، أو أظهر hooks: ‏tool.check، فتأكّد من السبب في الشيفرة.
  • هل تصمد قواعد deny في إعدادك؟ في خطة شخصية دون managed settings، يستطيع الـ mod تجاوز deny.
  • هل تعامل mod حاجبًا كأنه حدّ أمني؟ هناك طرق للالتفاف عليه. وهو ليس بديلًا عن الـ sandbox أو قواعد deny.
  • هل تُدخله إلى بيئة أتمتة؟ الـ hooks تعمل أيضًا في claude -p وفي Agent SDK.
  • هل تعرف كيف توقفه؟ إن بدا شيء غير طبيعي، فابدأ بـclaude --safe-mode لتعرف هل الـ mod هو السبب.

الخلاصة

الـ mods في Claude Code إضافات مكوّنة من دوالّ تعمل داخل Claude Code. وتستطيع أن تفعل ما لم تستطعه الـ hooks التقليدية والـ skills والـ MCP: الرسم في الواجهة، وأوامر تعمل دون انتظار، والتدخل في استدعاءات الأدوات، بل يمكنك أن تطلب من Claude كتابة الـ mod نيابةً عنك. في المقابل، يعمل الـ mod بصلاحياتك خارج الـ sandbox ويستطيع تجاوز قرارات الصلاحيات. في Team أو Enterprise، أو على جهاز فيه managed settings، تصمد قواعد deny، لكن في خطة شخصية يستطيع الـ mod الموافقة حتى على استدعاءات رفضتها قاعدة deny. قبل التثبيت، افحص الأحداث التي يستقبلها والواجهات التي يستدعيها بـclaude plugin validate. وإن كنت تحتاج فقط إلى الحظر، فالـ hooks التقليدية تكفي. تذكّر هاتين النقطتين، وستستطيع تجربة الـ mods بثقة.

لطريقة كتابة الـ hooks التقليدية، راجع «ما هي hooks في Claude Code»؛ ولتثبيت الإضافات، «ما هي إضافات Claude Code»؛ وللفروق بين أوضاع الصلاحيات، «أوضاع الصلاحيات في Claude Code».

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

س. هل أستخدم الـ mods أم الـ hooks التقليدية؟

ج. إن كنت تحتاج فقط إلى الحظر أو السماح أو التسجيل، فالـ hooks التقليدية (settings hooks) تكفي. يمكنك كتابتها كسكربتات shell، ولا تصبح أبدًا أقوى من قواعد deny. اختر mod ‏حين تريد لوحة في الواجهة، أو أمرًا يعمل دون انتظار، أو إيقاف استدعاء لسؤال المستخدم. والـ hooks التقليدية ليست مهجورة، وتعمل جنبًا إلى جنب مع الـ mods.

س. إن ثبّتّ mod على خطة Pro شخصية، هل تظل قواعد deny صامدة؟

ج. لا. لا تتقدّم قواعد deny على الـ mods إلا حين يكون في الجهاز managed settings أو تكون مسجّل الدخول بخطة Team أو Enterprise. وفي غير ذلك، يستطيع mod يعالج tool.check الموافقة حتى على استدعاءات رفضتها قاعدة deny. وفي كل الأحوال، لا تشمل قواعد deny قراءات الـ mod للملفات ($.fs.read) ولا تشغيله للبرامج (الوثائق الرسمية).

س. هل يمكنني استخدام الـ mods في تطبيق سطح المكتب؟

ج. نعم. في لسان Code بتطبيق سطح المكتب تعمل الـ hooks وتظهر اللوحات التي ترسمها (باستثناء المكوّنات الخاصة بالطرفية). لكن الإضافات نفسها غير متاحة في جلسات WSL، لذا لا تعمل الـ mods هناك. وفي عرض المحادثة بامتداد VS Code تعمل الـ hooks لكن لا يظهر شيء مما ترسمه.

س. كيف أوقف كل الـ mods التي ثبّتّها؟

ج. لجلسة واحدة، ابدأ بـclaude --safe-mode. ولإيقافها بشكل دائم، أضف "disableAllHooks": true إلى ~/.claude/settings.json (تتوقف الـ hooks التقليدية وشريط الحالة أيضًا). ولا يوقف أيٌّ منهما الـ mods المدمجة، مثل الذي يحمّل AGENTS.md.

المصادر

رُوجعت جميع المواصفات الرسمية على النص الأصلي في 5 أكتوبر 2026. ويأتي تحليل الأمثلة من قراءة الشيفرة على GitHub وإحصائها في اليوم نفسه، لا من تحميل الـ mods وتشغيلها. وقد تتغير أحداث الـ mods وواجهاتها البرمجية بين الإصدارات، وتَعُدّ الوثائق الرسمية ملف تعريف الأنواع الذي يكتبه الإصدار المثبّت لديك المرجعَ الأوثق.