عن المشروع

cc-grass هي أداة سطر أوامر صغيرة مبنية بلغة Node.js تقوم بتحويل نشاط Claude Code المحلي إلى رسم بياني للمساهمات على نمط GitHub يتم تصييره كملف SVG مستقل، مع تلوين الخلايا باللون البرتقالي بدلاً من الأخضر. تقوم الأداة بقراءة نصوص الجلسات المخزنة تحت ~/.claude/projects كملفات JSONL، وعند وجود ~/.codex، تقرأ سجلات الجلسات من ~/.codex/sessions الناتجة عن OpenAI Codex CLI. يوضح ملف README الدافع وراء الأداة ببساطة: يقوم Claude Code بالفعل برسم مخطط استخدام داخل الطرفية (terminal) تحت أمر /usage Stats، ولكن هذه الرؤية تظل محلية. تقوم cc-grass بإعادة تصيير نفس البيانات الأساسية كملف يمكنك رفعه وتضمينه في ملف README الخاص بملفك الشخصي على GitHub، أو صفحة أعمال، أو أي مكان آخر. ملاحظات التنفيذ والتصميم المأخوذة من ملف README: - لا توجد تبعيات وقت التشغيل: تعتمد فقط على وحدات fs و path و os الخاصة بـ Node. لا تتطلب ccusage ولا استدعاءات API. تعمل على Node 18 أو أحدث، على أنظمة macOS و Linux و Windows. - تعني الذاكرة المخبئية التزايدية (incremental cache) أن عمليات التشغيل المتكررة تعيد تحليل ملفات الجلسات الجديدة أو المتغيرة فقط. يمكن تعطيل ذلك باستخدام --no-cache، ويكون المجلد الافتراضي للتخزين المؤقت هو ~/.cache/cc-grass. - يحاكي ملف SVG تخطيط GitHub: خلايا 10 في 10، فجوات بمقدار 3 بكسل، زوايا مستديرة، تسميات صفوف لأيام الاثنين والأربعاء والجمعة، رؤوس شهرية، ومفتاح Less/More. - المخرجات تكون عبارة عن ملف SVG واحد، أو صفحة HTML بسيطة عبر خيار --html. يتعمد المشروع عدم شحن أي daemon أو مجدول أو سير عمل GitHub Actions مدمج؛ حيث يُترك الجدولة للمستخدم، ويعرض ملف README مثالاً لـ crontab يقوم بإعادة توليد الملف وعمل commit فقط عندما يتغير فعلياً. تتضمن الخيارات اختيار المقياس (المطالبات prompts، أو الجلسات sessions، أو الرموز tokens، والافتراضي هو tokens)، ونطاق تاريخ عبر --since و --until، وثيم داكن أو فاتح، وسلسلة نصية مخصصة للرأس، ومجلدات بيانات بديلة لـ Claude و Codex، واستثناء بيانات Codex، واستثناء نصوص الوكلاء الفرعيين (subagent transcripts)، وتغيير موقع التخزين المؤقت. حساب الرموز (Tokens): يتم جمع أعداد الرموز اليومية من المدخلات والمخرجات وإنشاء التخزين المؤقت وقراءة التخزين المؤقت لكل إدخال، أي كل ما قد تفرضه واجهة برمجة التطبيقات (API). يتم تضمين ملفات الوكلاء الفرعيين افتراضياً؛ واستثناؤهم يجعل الرقم يطابق ما يظهره Claude Code في /usage. يتم حساب جلسات Codex من قيم total_token_usage التراكمية في أحداث token_count باستخدام الفروقات (deltas)، لذا لا يتم حساب الأحداث المكررة مرتين. كما تعرض مخرجات HTML تكلفة API تقديرية لكل نموذج بناءً على أسعار المليون رمز المنشورة والمخزنة لكل فترة سعرية؛ والنماذج التي ليس لها سعر معروف تعرض علامة سعر غير متاح، ويشير ملف README إلى أن مستخدمي الاشتراكات لا يدفعون هذه المبالغ فعلياً. تم توثيق تحذيرين بصراحة. أولاً، تستخدم تلميحات التمرير (hover tooltips) لكل خلية عناصر SVG title؛ وهي تعمل في عارضي SVG المستقلين وفي مخرجات HTML، ولكن ليس عند تضمين SVG في GitHub README، لأن GitHub يقدمه كصورة وتتجاهل المتصفحات العناوين هناك. ثانياً، يظهر ملف SVG العينة والصفحة التفاعلية المرتبطة بها نشاط المؤلف الحقيقي، لذا ينصح ملف README بأن تكون حذراً بشأن مكان نشر الرسم البياني الخاص بك. تتوفر أيضاً واجهة برمجة تطبيقات برمجية: يمكن استيراد parseClaudeProjects و renderSvg لبناء نفس المخطط في الكود الخاص بك. المشروع مرخص بموجب رخصة MIT.