تخصيص شريط الحالة في Claude Code: السكربتات والأفكار
تجاوز الإعداد الأول: JSON الذي يستقبله سكربت statusline، والحقول التي تستحق العرض — الموديل والرموز والتكلفة والسياق وgit — وأفكار الألوان والتخطيط، وسكربت من المجتمع يستحق الاقتباس.
الخلاصة السريعة
- يكتب /statusline السكربت عنك. اذكر نظام التشغيل، واطلب النطاق العام وملف .sh/.ps1 منفصلًا، ثم وافق على ملفين: إدخال statusLine في ~/.claude/settings.json والسكربت الذي يشير إليه.
- يقرأ السكربت كائن JSON واحدًا من الإدخال القياسي — model.display_name وworkspace.current_dir وcontext_window.used_percentage وcost.total_cost_usd وrate_limits — ويطبع ما تريد رؤيته.
- اطلب الحقول بقائمة مرقمة، ولوّن شريط السياق حسب الحدود (أخضر تحت 50% وأحمر بعد 75%)، وقرّب الرموز إلى وحدات K، وانتقل إلى عدة أسطر عندما يزدحم السطر الواحد.
- أو ثبّت سكربتًا من المجتمع: npx contextbricks يمنحك الموديل وفرع git والكومِيت وعدّاد رموز على شكل طوب وتحذير الحد الأسبوعي — فتقرر متى تشغّل /compact أو /clear.
Claude Code's Hidden Status Line: Tokens, Model and Project, Your Way
القناة: 호두의 AI 분석실 (Waldo AI Lab)5:27
ContextBricks: My Custom Claude Code Status Line
سكربت المجتمع: Jeremy Dawes6:17
Status line — official documentation
الوثائق: code.claude.com/docs
تمت مطابقة حقائق هذه الصفحة مع وثائق status line الرسمية والتسجيلين أعلاه، وأسماء حقول JSON المذكورة هنا تطابق المرجع الرسمي حرفيًا. لقطات الشاشة إطارات من تلك التسجيلات.
لقطات الشاشة إطارات من دروس 호두의 AI 분석실 وJeremy Dawes (ContextBricks)، استُخدمت مع نسب المصدر ومرتبطة بالوقت الأصلي في كل خطوة.
خصّص شريط الحالة، خطوة بخطوة
اكتب أمر /statusline بشكل صحيح مرة واحدة
- 1
أمر /statusline واحد يذكر نظامك ونطاقك وملف السكربت
شغّل /statusline وبيّن ثلاثة أمور أولًا: نظامك (Mac أو Linux أو Windows أو WSL)، وأن السطر يجب أن يُضبط عالميًا، وأنك تريد ملف .sh منفصلًا — أو .ps1 على Windows. وإلا فسوف يخمّن وكيل الإعداد بيئتك وقد يخطئ الصدفة، والسكربت على مستوى المشروع لا يظهر في مستودع واحد فقط. يتسع الأمر في أربعة أسطر؛ احتفظ به في ملاحظة لإعادة استخدامه.

أمر /statusline المُجهّز: النظام، والنطاق العام، وملف سكربت منفصل — جاهز للصق.شاهد عند 1:15 - 2
وافق على الملفين اللذين ينشئهما وكيل الإعداد
امنح أذونات القراءة والكتابة، وسيبلّغ الوكيل بالضبط عمّا لمسه: ~/.claude/settings.json أصبح يتضمن إعداد statusLine، وسكربت مثل ~/.claude/statusline-command.sh يولّد محتوى شريط الحالة. بقاء المنطق في ملف منفصل يعني أن Claude يعدّل السكربت لاحقًا — لا إعداداتك. أعد تشغيل Claude Code ليظهر السطر.

الملفات المنشأة/المحدثة: settings.json يحمل إدخال statusLine، والسكربت يبني المحتوى.شاهد عند 3:20 - 3
اقرأ مواصفات السطر الافتراضي قبل أن تضيف
افتراضيًا يعرض السطر المولّد: الدليل الحالي، واسم الموديل مثل [Claude Opus 4.5]، ونمط الإخراج إن لم يكن الافتراضي، ووضع vim، وفرع git عندما تكون داخل مستودع، ونسبة استخدام نافذة السياق — مثلًا Claude-project [Claude Opus 4.5] (git:main) 12%. ولأن الإعداد عالمي، فهو يسري على كل جلسات Claude Code في الجهاز.

قائمة العرض الافتراضية ومثال مُصيَّر للسطر المولّد.شاهد عند 2:45
قرر ماذا يعرض السطر
- 4
اطلب الحقول التي تريد — مرقمة
اطلب الإضافات كقائمة مرتبة وسيرد الوكيل بترتيب عرض مرقم. أنتجت هذه الجولة: اسم الموديل، وشريط تقدم من 20 حرفًا، ونسبة مثل 20%، والرموز بصيغة 40000/200000، وgit:main، ثم دليل المشروع — مصورةً هكذا: Claude 3.5 Sonnet [==== ] 20% 40000/200000 git:main Claude-project. تصل التغييرات إلى ملف السكربت؛ أعد تشغيل Claude Code لتراها.

ترتيب العرض 1-6 مع سطر مثال مصيَّر، مكتوبة داخل السكربت.شاهد عند 3:45 - 5
أعطِ كل عنصر لونًا ذا معنى
اطلب لونًا لكل عنصر فيحصل السكربت على أكواد ANSI بحدود فاصلة. الجدول المتفق عليه هنا: الموديل سماوي؛ شريط التقدم أخضر تحت 50%، وأصفر بين 50 و75%، وأحمر فوق 75%؛ النسبة بلون الشريط؛ الرموز أرجواني؛ الفرع أخضر؛ اسم المشروع أزرق؛ والفواصل رمادية. اترك الأحمر لشريط السياق حتى يبقى لون الإنذار محفوظًا للضغط الحقيقي.

جدول ألوان عنصرًا بعنصر مع حدود فاصلة لشريط التقدم.شاهد عند 4:15 - 6
قرّب الرموز إلى وحدات K وطابقها مع /context
الأرقام الخام مثل 21373/200000 يصعب مسحها بنظرة. اطلب وحدات K فيقرأ السطر 21k/200k — مع تنبيه الوكيل إلى أن القيمة مقرَّبة. ثم تحقق: شغّل /context في الجلسة نفسها وقارن؛ الإجماليات متطابقة. ومما ورد في العرض: بعد التقريب قد تظهر جلسة 22k وجلسة 23K بالشكل نفسه — وهذا كافٍ لسطر يُقرأ بلمحة.

أصبح 21373/200000 هو 21k/200k؛ وأكد /context الإجماليات نفسها.شاهد عند 4:30 - 7
شغّل جلستين وتأكد أن كل سطر يتتبع نفسه
افتح طرفيتين وشغّل Claude Code في كلتيهما. كل شريط حالة يبلّغ عن جلسته هو: 11% و22k/200k على اليسار، و9% و18k/200k على اليمين، بينما يطابق /context في كل نافذة سطرها. لهذا يستحق الفرع والمشروع مكانًا في السطر — فمع عدة تبويبات تعمل ترى بنظرة أي جلسة أثقل بدل تشغيل /context في كل مكان.

جلستان من Claude Code، وكل شريط حالة يبلّغ عن سياقه الخاص.شاهد عند 5:15
اقتبس سكربتًا واقرأه يوميًا
- 8
تجاوز الكتابة: ثبّت سكربت مجتمعي بأمر npx
لست مضطرًا لكتابة السكربت بنفسك. يتثبت ContextBricks بأمر واحد — npx contextbricks — فيكتب ~/.claude/statusline.sh ويحدّث settings.json بعد حفظ نسخة احتياطية. قائمته: اسم الموديل، ورسالة git repo:branch [commit]، ومؤشرات التغييرات غير المُوَلَّجة والتقدم والتأخر، والأسطر المتغيرة في الجلسة، واستخدام السياق في الوقت الحقيقي برسوم «الطوب»، وتفصيل الرموز. الإزالة بـ ./uninstall.sh؛ ومسار النسخة الاحتياطية المطبوع يعيد سكربتك السابق.

npx contextbricks: السكربت ثُبّت، وsettings.json حُدّث، والقدرات عُدّت.شاهد عند 0:20 - 9
اقرأ العدّاد أثناء عمل الوكيل
يتجلى السطر المخصص في منتصف الجلسة. في العرض يقرأ [Sonnet 4.5]، و+2381/-0 سطرًا، ثم شريط سياق عند 18% (36k/200k tokens) مع التفصيل sys:4k tools:16k mcp:2k mem:10k msg:4k و163k حرًا. يحسب المؤلف الرموز بتحليل سجل المحادثة — تقدير وليس رقم API — ويراه دقيقًا بما يكفي ليقرر متى يضغط السياق أو يمسحه.

36k/200k tokens مع تفصيل حسب الفئة أثناء كتابة وثائق التخطيط.شاهد عند 5:00 - 10
اختم بإشارة: الكومِيت يحلّ، والحد الأسبوعي يقترب
بعد كومِيت git يلتقط السطر الفرع والكومِيت: contextbricks:master [ffe9523] Add comprehensive planning documentation. ويضيف الطرف الأيمن إشارة ثانية — Approaching weekly limit. وبين نسبة السياق وعلامة الكومِيت وتحذير الحد، تعرف متى تشغّل /compact أو /clear بقصد بدل أن يقطع الضغط التلقائي مهمتك في منتصفها.

الفرع والكومِيت يظهران في السطر؛ وتحذير الحد الأسبوعي على اليمين.شاهد عند 6:02
ما يمكن لسكربتك قراءته — حقلًا بحقل
كل ما في السطر يأتي من كائن JSON واحد يستقبله السكربت من الإدخال القياسي — عند بدء الجلسة ثم بعد كل تحديث: رسالة مساعد جديدة، أو /compact مكتمل، أو تغيير وضع الأذونات. هذه الحقول الرسمية تستحق سطرًا خاصًا بها.
- 1الموديل والجهد — model.display_name كتسمية (Sonnet 4.5 وOpus 4.5)، وeffort.level إن أردت إظهار مستوى الاستدلال بجانبه.
- 2المكان — workspace.current_dir هو الحقل المفضّل للدليل الحالي، وworkspace.project_dir دليل الإطلاق، وworkspace.repo.owner/.name يحددان المستودع المستخرج من origin؛ والفرع مع git branch --show-current.
- 3السياق — context_window.used_percentage وremaining_percentage محسوبان سلفًا، وcontext_window.current_usage يفصل الإدخال والإخراج وإنشاء الكاش وقراءته، وcontext_window.context_window_size افتراضه 200000 (ومليون في الموسع).
- 4المال والوقت — cost.total_cost_usd لتكلفة الجلسة (تصفر مع /clear)، وcost.total_duration_ms وtotal_api_duration_ms للوقت الفعلي مقابل انتظار API، إضافة إلى cost.total_lines_added وtotal_lines_removed.
- 5الحدود — rate_limits.five_hour وrate_limits.seven_day يكشفان used_percentage وresets_at في خطتي Pro وMax؛ وتتضمن الوثائق أيضًا كائن prompt_cache بحقلي hit_ratio وexpires_at لأسطر واعية بالكاش.
عمليّات من الوثائق: كل echo أو print سطر قائم بذاته، فالتخطيطات متعددة الأسطر مجرد print إضافية؛ وأكواد ANSI تلوّنها؛ ومتغيرتا البيئة COLUMNS وLINES تخبرانك بعرض الطرفية؛ وكل حقل قد يغيب يستحق احتياطي jq مثل .context_window.used_percentage // 0 ليعبر السطر ثواني الجلسة الأولى سالمًا.
عندما يسيء السطر التصرف
معظم أعطال شريط الحالة ترجع إلى خمسة أسباب — وكل إصلاح على بُعد أمر prompt واحد أو أمر طرفية واحد.
- 1سطر فارغ أو شرطات (--) — تلك حقول فارغة قبل أول استجابة API. توصي الوثائق باحتياطيات jq (// 0 و// empty)، ويجب قبول إشارة الثقة في مساحة العمل وإلا بقي السطر فارغًا.
- 2السكربت لا يعمل — اجعله قابلًا للتنفيذ بـ chmod +x، واطبع إلى stdout لا stderr، وشغّل claude --debug لرؤية أخطائه.
- 3أرقام تبدو خاطئة — يقول مؤلف ContextBricks إن Claude أخطأ حساب الرموز عدة محاولات متتالية. اطلب من الوكيل تفريغ JSON الخام في ملف تصحيح وإعادة كتابة السكربت على أساسه، ثم قارن السطر مع /context.
- 4ارتباك الصدفة في Windows — يستخدم Claude Code قشرة Git Bash إن كانت مثبتة وإلا PowerShell؛ اكتب المسارات بشرطات مائلة أمامية وضع السكربت في ملف .ps1 خاص به.
- 5أكثر من اللازم في سطر — اطلب تعدد الأسطر (ينتقل المسار ومعلومات المستودع إلى سطر ثان) أو اخفف: رموز بوحدات K، ولون واحد للفواصل، واحذف الحقول التي لا تلقي إليها نظرة أبدًا.
وإذا أردت الخروج تمامًا: /statusline delete (أو /statusline clear) يزيل الميزة، وuninstall.sh لمثبّت مجتمعي يتراجع عنها، والنسخة الاحتياطية للإعدادات التي تركها المثبّت تعيد سكربتك السابق.
