أمثلة Hooks للأداء — hooks-performance

مجانًا

وصفتا إعداد Hook لـ Claude Code على الحدث PostToolUse: context-monitor يحذّرك على أربع درجات قبل نفاد نافذة السياق، من 40٪ متبقية حتى 15٪، و performance-monitor لتسجيل ذاكرة الجهاز مع كل استدعاء أداة. وأدلّك هنا على سكربت كل منهما وطريقة ضبطه يدويًا.

  • مجاني، ولا يتطلب أي دفع
  • تنزيل فوري بعد إتمام الطلب
  • مشترياتك محفوظة في حسابك

في جلسة Claude Code الطويلة قد تمتلئ نافذة السياق (context window) وأنت في منتصف مهمة، فيضيع ما لم يُحفظ بعد. تجمع هذه الحزمة وصفتَي Hook لمراقبة جلسة كهذه: context-monitor يحذّرك على أربع درجات كلما نقص السياق المتبقي، وperformance-monitor يرتبط بكل استدعاء أداة لمتابعة أداء الجهاز. والوصفتان لـ Claude Code وحده، فلا Hooks في claude.ai، ولم أجهّز منهما نسخة لـ Codex.

context-monitor: أربع درجات قبل نفاد السياق

يعمل بعد كل أداة يستدعيها Claude (الحدث PostToolUse بمطابِق فارغ). يستخرج استهلاك الرموز (tokens) من سجل التصحيح في ~/.claude/debug/، أو يقدّره من عدد الاستدعاءات إن غاب السجل، ويحفظ النسبة في /tmp/cc-context-pct لتقرأها سكربتات أخرى. وعتباته كما في جدوله:

  • CAUTION حين يبقى 40٪ أو أقل: انتبه لما تستهلكه كل خطوة.
  • WARNING عند 25٪: أنهِ المهمة الجارية واحفظ حالتها.
  • CRITICAL عند 20٪: شغّل /compact فورًا.
  • EMERGENCY عند 15٪: أوقف كل شيء وأخلِ الجلسة.

وعند الدرجتين الأخيرتين يكتب قالب إخلاء (evacuation template) في ملف المهمة المحدد بالمتغير CC_CONTEXT_MISSION_FILE، وهو افتراضيًا $HOME/mission.md. وإن أردت رؤية النسبة طوال الوقت بدل التحذيرات، فشريط الحالة claude-hud في المكتبة يعرضها أسفل الجلسة بعد تعديل تشرحه صفحته.

performance-monitor: الإعداد هنا والسكربت في الحزمة الشاملة

ملفه في هذه النسخة بطاقة إعداد بلا سكربت: الحدث PostToolUse، والمطابِق * لكل الأدوات، ولغة bash، بلا متغيرات بيئة ولا متطلبات. أما السكربت ففي حزمة أمثلة Hooks الشاملة: يأخذ اسم الأداة من بيانات الحدث بأداة jq، ويقرأ الذاكرة المستخدمة بالأمر free على لينكس أو vm_stat على macOS، ويضيف سطرًا بالوقت والأداة والذاكرة إلى .claude/performance.log في مشروعك.

مثال: إعادة هيكلة تمتد طويلًا

تطلب من Claude نقل وحدات المجلد src/services إلى بنية جديدة، فتتوالى استدعاءات Read وEdit وBash. بحسب البطاقة، يصدر context-monitor تحذير WARNING عند 25٪ لتغلق الخطوة الجارية، ثم CRITICAL عند 20٪ ومعه قالب الإخلاء في mission.md، فتدوّن فيه ما أُنجز وما بقي قبل أن تشغّل /compact أو تبدأ جلسة جديدة بقراءته.

الإعداد يدويًا

  • احصل على السكربت: لـ context-monitor من مشروع claude-code-hooks الذي تحيل إليه بطاقته، ولـ performance-monitor من الحزمة الشاملة، واحفظه في مجلد ثابت مثل .claude/hooks.
  • ثبّت jq، فبطاقة context-monitor تشترطه، وسكربت performance-monitor يقرأ به بيانات الحدث.
  • في .claude/settings.json للمشروع، أو ~/.claude/settings.json لكل مشروعاتك، أضف تحت المفتاح hooks الحدث PostToolUse بمطابِق البطاقة، وأمرًا من النوع command نصّه bash ثم مسار السكربت الكامل.
  • اكتب /hooks داخل الجلسة لتتأكد أن الإعداد سُجّل.

أرفقتُ دليلًا عربيًا يشرح كيف تقرأ كل بطاقة وتطبّقها، ويحيل إلى صفحة Hooks في توثيق Claude Code لصيغة الإعداد الكاملة.

حدود تعرفها قبل البدء

  • لا تضم الحزمة سكربتًا قابلًا للتشغيل، ولا يحوي مجلد plugin ملف hooks.json، فتحميلها إضافةً لا يفعّل أي مراقبة.
  • سكربت context-monitor في مشروع منفصل خارج ترخيص هذه الحزمة، فراجع ترخيصه قبل النسخ. وبلا سجل التصحيح تبقى نسبته تقديرًا.
  • يفترض مسار /tmp في context-monitor، والأمران free وvm_stat في سكربت الحزمة الشاملة، بيئة لينكس أو macOS، ولا تذكر البطاقتان ويندوز، فتوقّع تعديلًا هناك.
  • على macOS يعيد vm_stat عدد صفحات ذاكرة، مع أن السكربت يُلحق بالرقم MB.
  • يكبر performance.log سطرًا مع كل أداة، فأضفه إلى .gitignore وراقب حجمه.

الترخيص MIT، والحقوق لـ davepoon ومجتمع BuildWithClaude، والملفان كما وردا في المستودع دون تعديل.