Building a Custom Status Line for Claude Code

أقضي معظم يومي في Claude Code، حيث يعمل كمبرمج ومراجع لي.

بعد بضعة أيام، لاحظت مشكلة؛ لم أكن أعرف عدد الرموز (tokens) التي استخدمتها، ولم أعرف تكلفة جلستي، ولم أعرف مقدار السياق (context) المتبقي.

لا أريد تشغيل أمر للتحقق من هذه الحقائق، بل أريد رؤيتها في الوقت الفعلي. أريد إلقاء نظرة سريعة على الطرفية (terminal) ومعرفة حالتي.

لذا، قمت ببناء شريط حالة مخصص.

لقد ركزت على ثلاثة أشياء رئيسية:

  • تكلفة الجلسة: نموذج Claude Opus ليس مجانياً. رؤية التكلفة مباشرة تساعدني في اتخاذ قرار بشأن موعد إنهاء المهمة.
  • نافذة السياق (Context Window): أريد رؤية النسبة المئوية للسياق المتبقي. يساعدني هذا في تحديد موعد بدء جلسة جديدة.
  • معلومات المشروع: أحتاج إلى رؤية الدليل الحالي، وفرع git، والنموذج الذي أستخدمه.

واجهة برمجة تطبيقات (API) شريط الحالة بسيطة؛ حيث تقوم بتوجيه Claude Code إلى نص برمجي (shell script)، ثم ترسل الأداة مستند JSON إلى النص الخاص بك عبر stdin، ويقوم النص الخاص بك بطباعة النتيجة إلى stdout.

لا يستخدم أي SDK أو إطار عمل (framework)، بل يعتمد فقط على stdin و stdout. يعمل محلياً ولا يكلف شيئاً.

كيفية الإعداد:

  1. أنشئ نصاً برمجياً في ~/.claude/statusline.sh.
  2. استخدم jq لتحليل بيانات JSON.
  3. قم بتنسيق المخرجات لعرض المسار، والفرع، والنموذج، والرموز (tokens)، والتكلفة.
  4. أضف النص البرمجي إلى ملف ~/.claude/settings.json الخاص بك.

يمكنك ضبط فاصل التحديث إلى ثانية واحدة، مما يمنحك لوحة تحكم (dashboard) في الوقت الفعلي.

إذا كنت لا ترغب في كتابة كود، فإن Claude Code يوفر اختصاراً. قم بتشغيل: /statusline show me model, branch, token counts, context percentage, and cost

سيقوم هذا بإنشاء سطر لك تلقائياً.

إن تخصيص أدواتك باستخدام نصوص shell برمجية بسيطة يغير طريقة عملك؛ حيث تتوقف عن انتظار الميزات وتبدأ في بناء أتمتتك الخاصة.

المصدر: https://dev.to/ndrone/building-a-custom-status-line-for-claude-code-5822

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi