À propos du projet
cc-grass est un petit outil en ligne de commande Node.js qui transforme l'activité locale de Claude Code en un graphique de contribution style GitHub rendu sous forme de SVG autonome, avec des cellules colorées en orange au lieu de vert. Il lit les transcriptions de session stockées sous ~/.claude/projects en tant que fichiers JSONL et, lorsque ~/.codex existe, les déploiements de session de ~/.codex/sessions produits par l'OpenAI Codex CLI.
Le README expose clairement la motivation : Claude Code dessine déjà un graphique d'utilisation dans le terminal via /usage Stats, mais cette vue reste locale. cc-grass re-rend ces mêmes données sous forme de fichier que vous pouvez commiter et intégrer dans un README de profil GitHub, une page de portfolio ou ailleurs.
Notes d'implémentation et de conception tirées du README :
- Zéro dépendance d'exécution : utilise uniquement les modules fs, path et os de Node. Pas de ccusage, pas d'appels API. Node 18 ou plus récent, sur macOS, Linux et Windows.
- Un cache incrémentiel signifie que les exécutions répétées ne analysent que les fichiers de session nouveaux ou modifiés. Il peut être désactivé avec --no-cache, et le répertoire de cache par défaut est ~/.cache/cc-grass.
- Le SVG reflète la mise en page de GitHub : cellules de 10 par 10, espaces de 3px, coins arrondis, étiquettes de ligne Lun/Mer/Ven, en-têtes mensuels et une légende Moins/Plus.
- La sortie est un SVG unique, ou une page HTML minimale via le flag --html. Le projet ne fournit délibérément aucun démon, planificateur ou workflow GitHub Actions intégré ; la planification est laissée à l'utilisateur, et le README montre un exemple de crontab qui régénère le fichier et ne commit que lorsqu'il a réellement changé.
Les options incluent le choix de la métrique (prompts, sessions ou tokens, par défaut tokens), une plage de dates via --since et --until, un thème sombre ou clair, une chaîne d'en-tête personnalisée, des répertoires de données Claude et Codex alternatifs, l'exclusion des données Codex, l'exclusion des transcriptions de sous-agents, et la modification de l'emplacement du cache.
Comptabilité des tokens : les comptes de tokens quotidiens additionnent les tokens d'entrée, de sortie, de création de cache et de lecture de cache par entrée, c'est-à-dire tout ce que l'API facturerait. Les fichiers de sous-agents sont inclus par défaut ; les exclure correspond au chiffre affiché par Claude Code dans /usage. Les sessions Codex sont comptabilisées à partir des valeurs cumulées de total_token_usage dans les événements token_count en utilisant des deltas, afin que les événements dupliqués ne soient pas comptés deux fois. La sortie HTML affiche également un coût API estimé par modèle basé sur les tarifs publiés par million de tokens stockés par période de prix ; les modèles sans tarif connu affichent un marqueur de prix non disponible, et le README note que les utilisateurs d'abonnements ne paient pas réellement ces montants.
Deux mises en garde sont documentées honnêtement. Premièrement, les info-bulles au survol des cellules utilisent des éléments title SVG ; elles fonctionnent dans les visionneuses SVG autonomes et dans la sortie HTML, mais pas lorsque le SVG est intégré dans un README GitHub, car GitHub le sert comme une image et les navigateurs ignorent les titres dans ce cas. Deuxièmement, le SVG d'exemple et la page interactive liée montrent l'activité réelle de l'auteur, le README conseille donc d'être intentionnel sur l'endroit où vous publiez votre propre graphique.
Une API programmatique est également exposée : parseClaudeProjects et renderSvg peuvent être importés pour construire le même graphique dans votre propre code. Le projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.