Outil CLI
sirmalloc/ccstatusline avatar
sirmalloc/ccstatusline

ccstatusline : un formatteur de barre d'état pour Claude Code

Belle ligne d'état hautement personnalisable pour Claude Code CLI avec prise en charge Powerline, thèmes et plus encore.

12 894 étoiles567 forksTypeScriptMIT
GitHub

En bref

De quoi s’agit-il ?
Un outil TypeScript qui affiche les informations du modèle, de Git, de l'usage et des minuteries dans la barre d'état de Claude Code, avec un éditeur interactif.
À qui s’adresse-t-il ?
La valeur de ccstatusline tient à la largeur de ses widgets configurables et à la TUI qui les édite ; les notes de version montrent des ajouts de widgets et un travail constant sur la fiabilité des actualisations. Le projet est sous licence MIT, et parmi les projets liés que le README énumère, la localisation chinoise est un fork tiers maintenu hors de ce dépôt.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un formatteur pour la barre d'état de Claude Code

ccstatusline est un utilitaire TypeScript qui formate la barre d'état affichée par Claude Code dans le terminal. Le README présente le projet comme un formatteur de barre d'état hautement personnalisable, et la description d'ouverture mentionne les informations de modèle, la branche Git, l'utilisation de jetons et d'autres métriques. L'accent est mis sur le choix laissé à l'utilisateur : quelles valeurs afficher et comment les mettre en forme, plutôt que sur un affichage unique et figé. Ce choix se retrouve dans presque chaque fonctionnalité : que l'élément soit le nom du modèle ou une minuterie de bloc, la TUI décide s'il est affiché et sous quel format.

Lancer la TUI sans installation globale

La section de démarrage rapide indique qu'aucune installation n'est nécessaire : `npx -y ccstatusline@latest` ou `bunx -y ccstatusline@latest` ouvre la TUI de configuration, et le README précise que les deux commandes lancent la même TUI. Pendant le flux de configuration initial, l'utilisateur peut choisir une installation globale épinglée (Pinned global install) : la version en cours est installée globalement avec npm ou Bun et la commande `"command": "ccstatusline"` est écrite dans les paramètres de Claude Code, si bien que la CLI reste sur cette version au lieu de suivre `@latest`. Ensuite, lancer `ccstatusline` directement ouvre la TUI. Les notes de version du README indiquent que la désinstallation préserve les paramètres existants.

Ce que la TUI de configuration prend en charge

La TUI gère la mise en page et l'apparence : plusieurs barres d'état indépendantes, ajout, suppression et réorganisation des widgets, couleurs par widget, comportement des séparateurs flexibles, widgets de texte personnalisés et aperçu en temps réel. Elle installe ou désinstalle aussi la barre d'état dans les paramètres de Claude Code et peut définir l'intervalle d'actualisation ; le README indique que refreshInterval n'est écrit que lorsque Claude Code est en version 2.1.97 ou plus récente. Le sélecteur de widgets prend en charge la navigation par catégorie, la recherche et le classement ; le README le qualifie de rapide sans donner de chiffres précis. Les remerciements créditent React et Ink pour l'interface terminal. Les paramètres sont enregistrés dans `~/.config/ccstatusline/settings.json`.

Des widgets pour Git, l'usage, le contexte et les minuteries

Les notes de version énumèrent des widgets pour la branche Git et l'état des PR/MR, les compteurs de fichiers indexés, non indexés et non suivis, les insertions et suppressions, l'usage de session et hebdomadaire, l'usage hebdomadaire Sonnet/Opus/Fable, les limites de dépassement d'usage supplémentaire, le taux de frappe du cache d'invites et les lectures et écritures, la longueur et la fenêtre de contexte, le compteur de compaction, les minuteries de bloc et de réinitialisation, l'utilisation mémoire, les vitesses de jetons, l'état vocal, le mode Vim, le niveau d'effort de réflexion, le nom et le coût de session, le répertoire de travail courant et le texte personnalisé. Il existe aussi des widgets d'état pour les conflits Git, le SHA, les dépôts amont et d'origine, et le mode worktree. Beaucoup de ces widgets ont des options pour se masquer quand ils sont vides, des barres de progression courtes et un mode valeur brute. Le README ne fournit pas une liste complète des widgets pour la version actuelle ; les notes de version sont l'inventaire.

Les versions récentes portent sur la fiabilité des actualisations et le cache

Les versions à partir de v2.2.27 traitent à plusieurs reprises le même problème : empêcher les actualisations d'état de bloquer. Les widgets Git PR/CI sont rendus depuis un cache disque versionné pendant que les données périmées s'actualisent en arrière-plan. Les helpers Git passent `--no-optional-locks` pour éviter les conflits de `index.lock`, et les sorties Git sont mises en cache sous `~/.cache/ccstatusline/git-cache`, avec des vérifications de mtime sur `.git/HEAD` et `.git/index`. D'autres entrées concernent les réinitialisations de contexte après `/compact`, les replis quand l'API d'usage change la structure de ses réponses, et le traitement des `settings.json` invalides, qui restent intacts pendant que les valeurs par défaut sont rendues en mémoire. Aucune de ces entrées ne contient de données de référence, et le README ne revendique aucune amélioration de vitesse chiffrée ; il décrit ces changements comme des corrections et des protections.

Variables d'environnement et notes de plateforme

Les variables d'environnement documentées sont `CLAUDE_CONFIG_DIR` pour un emplacement non standard de la configuration Claude Code, `HTTPS_PROXY` pour les widgets d'usage qui appellent directement l'API Anthropic, `CCSTATUSLINE_WIDTH` pour une largeur de terminal explicite et `CCSTATUSLINE_CONTEXT_SIZE_FALLBACK` pour la fenêtre de contexte par défaut de 200k quand ni Claude Code ni le nom du modèle n'en rapporte une. Les notes Windows, les exemples PowerShell, les polices, WSL et la configuration de Windows Terminal se trouvent dans `docs/WINDOWS.md`. Le README ne documente pas d'autres variables de proxy et ne mentionne pas de support d'exécution au-delà de Bun, Node.js et des notes Windows.

Licence, auteur et projets liés

ccstatusline est sous licence MIT, copyright 2025 Matthew Breedlove, qui le maintient sous le pseudonyme sirmalloc. Le texte MIT accorde l'utilisation, la copie, la modification, la fusion, la publication, la distribution, la sous-licence et la vente, et exclut toute garantie ; il ne dit rien sur le support, la posture de sécurité ou les engagements de maintenance. Le README énumère des projets liés, notamment un éditeur visuel de configuration, des outils de suivi d'usage et d'autres barres d'état, et signale que la localisation chinoise est un fork tiers maintenu hors de ce dépôt, ni vérifié ni approuvé par lui. Le guide de contribution décrit un flux de fork, branche, commit, push et pull request, et accueille les contributions.

Conclusion éditoriale

La valeur de ccstatusline tient à la largeur de ses widgets configurables et à la TUI qui les édite ; les notes de version montrent des ajouts de widgets et un travail constant sur la fiabilité des actualisations. Le projet est sous licence MIT, et parmi les projets liés que le README énumère, la localisation chinoise est un fork tiers maintenu hors de ce dépôt.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté