Comparatif des mods d'usage et de contexte
Les mods qui affichent l’usage au-dessus de la zone de saisie sont le type le plus courant du catalogue. Rien que les limites de 5 heures et hebdomadaires, les rate limits et les quotas apparaissent dans la description de 105 mods. Nous en avons choisi 7, récupéré les dépôts et lu les modules de hooks jusqu’au bout. Nous n’avons rien installé ni exécuté.
Référence : scan du catalogue communautaire du 2026-10-04, Claude Code 2.1.289. Les sources ont été lues le 2026-10-06 et les descriptions d’API vérifiées dans le fichier de types de Claude Code 2.1.290. Le nombre d’étoiles est celui du dépôt, donc les mods d’un même dépôt reçoivent le même chiffre.
D’où viennent les chiffres
Section intitulée « D’où viennent les chiffres »Le moteur fournit les mêmes chiffres que la ligne d’état via $.session.usage(). On y trouve le remplissage de la fenêtre de contexte, les limites de 5 heures et de 7 jours (rateLimits) et le coût de la session. D’après la description du fichier de types, un appel sans argument ne coûte rien. L’événement session.measure pousse les mêmes chiffres à la fin d’un tour du fil principal et chaque fois qu’une limite bouge de 1 point de pourcentage. Pour une session qui utilise une clé API, rateLimits est vide : les chiffres de limite n’existent que pour les sessions par abonnement.
Sur les 105 mods d’usage du catalogue, 100 appellent $.session.usage et 88 s’abonnent à session.measure. 13 appellent $.http.fetch. Nous en avons ouvert 9 : les 9 appelaient https://api.anthropic.com/api/oauth/usage. Les identifiants sont joints via un handle fourni par $.session.authorize(), donc le mod ne voit jamais la valeur du jeton. Cette adresse ne figure pas dans le fichier de types 2.1.290 ; considérez qu’elle peut changer sans préavis. Si CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC est activé, le moteur refuse les requêtes qui portent ce handle.
Les 7 mods ci-dessous n’appellent pas cette adresse. Aucun n’appelle $.http.fetch, et seul hud appelle un modèle.
En un coup d’œil
Section intitulée « En un coup d’œil »| mod | dépôt (étoiles) | où il dessine | origine des chiffres | fréquence de relecture |
|---|---|---|---|---|
| usage-band | KhadeerBasha1232/claude-usage-mod (8) | bande au-dessus de la saisie | $.session.usage, sinon plan-usage-history.json de l’app de bureau |
après un tour ou un appel d’outil, détection de changement toutes les 15 s |
| usage-meter | hamzafer/claude-code-mods (54) | bande | session.measure, $.session.usage |
quand le moteur pousse les chiffres, compte à rebours de 60 s |
| quota-meter | Arunjay4213/claude-mods (4) | ligne d’état, panneau /quota |
$.session.usage |
fin de tour, toutes les 60 s |
| token-weather | hamzafer/claude-code-mods (54) | bande | $.session.usage, fin du fichier de transcript |
fin de tour, compte à rebours du cache de 1 à 30 s |
| burn-meter | OneWave-AI/claude-code-mods (1) | bande, panneau /burn |
$.session.usage |
toutes les secondes, dessin de la flamme toutes les 80 ms |
| budget-guard | Arunjay4213/claude-mods (4) | ligne d’état, toast | $.session.usage |
à chaque appel d’outil et à chaque prompt |
| hud | hoobnn/hoobnn-agent-mods (2) | bande ou sous la saisie, panneau détaillé | $.session.usage, git, fichier de transcript, ~/.claude/sessions/*.json |
toutes les 15 s, vérification du contrôle à distance toutes les 3 s |
| mod | bloquer / modifier | appel au modèle | processus / fichiers | ce qu’il conserve | niveau | tests | licence | commit lu |
|---|---|---|---|---|---|---|---|---|
| usage-band | aucun (le bouton Compact est cliqué par l’utilisateur) | aucun | lecture d’un fichier de l’app | $.store : dernière limite, historique des alertes |
2 | oui | MIT | dfc3df5 (10-03) |
| usage-meter | aucun | aucun | aucun | état de session uniquement | 1 | oui | MIT | 3719682 (10-05) |
| quota-meter | aucun | aucun | aucun | $.store : échantillons de limite |
0 | non | MIT dans plugin.json, pas de fichier LICENSE | d4fffd7 (09-15) |
| token-weather | aucun | aucun | lecture du transcript, exécution de tail |
$.store : durée de vie du cache |
2 | oui | MIT | 3719682 (10-05) |
| burn-meter | aucun | aucun | aucun | $.store : coût cumulé, une clé par session |
1 | oui | MIT | e6da26c (10-03) |
| budget-guard | refus d’appel d’outil, arrêt du tour, confirmation avant le prompt | aucun | aucun | sa propre ligne de configuration ou $.store |
2 | non | MIT dans plugin.json, pas de fichier LICENSE | d4fffd7 (09-15) |
| hud | aucun | $.model.fork (tous les 5 tours par défaut) |
exécution de git, lecture et écriture de fichiers | fichier : registre des coûts quotidiens, $.store |
2 | oui | MIT | 8fb6f67 (10-04) |
Le niveau est la portée d’accès du catalogue : 0 pour l’écran et la mémoire seuls, 1 pour la lecture, 2 pour l’écriture et l’exécution, 3 pour le réseau. Il a été attribué par un balayage statique des sources et peut différer de l’exécution réelle. Le commit lu est le HEAD du dépôt que nous avons récupéré.
Notes par mod
Section intitulée « Notes par mod »usage-band
Section intitulée « usage-band »- Quand
rateLimitsest vide, il litplan-usage-history.json, que laisse l’app de bureau Claude. Un commentaire du code explique que les chiffres de limite sont souvent vides dans les sessions de bureau. À partir des échantillons de ce fichier, il estime le début de la fenêtre de 5 heures et l’heure de réinitialisation hebdomadaire, et préfixe les valeurs estimées d’un~. - C’est un fichier interne de l’app, dont le format n’est pas documenté. Si l’app change, l’estimation peut s’arrêter.
- Il affiche un toast au-delà de 80 % et de 95 %, et l’enregistre dans
$.storepour ne pas sonner deux fois dans la même fenêtre. Plusieurs chats ouverts écrivent dans cet enregistrement en commun. - Au-delà de 70 % de contexte, un bouton Compact apparaît. C’est l’appel à
$.session.compact()qui explique le niveau 2 du catalogue.
usage-meter
Section intitulée « usage-meter »- Il n’y a que trois hooks :
session.start,session.measureetui.render. Le module fait 204 lignes. - Au-delà de 90 % de la limite, il affiche un toast une fois par fenêtre.
- Quand il dessine la bande, il place le résultat de
next(e)tel quel en dessous. Les bandes dessinées par d’autres mods s’empilent donc sans se chevaucher.
quota-meter
Section intitulée « quota-meter »- Le panneau
/quotamontre, pour chaque fenêtre, une barre, l’heure de réinitialisation, la vitesse de consommation et la projection à ce rythme. Les échantillons sont gardés dans$.store, donc la vitesse de consommation se poursuit après un redémarrage. - Pour une session par clé API, le panneau indique que les limites n’arrivent pas.
- context-lens, du même dépôt, classe le contexte comme le fait
/context. À chaque tour, il se contente d’une estimation locale avecbreakdown: "summary"; il n’appelle l’API de comptage de tokens que lorsque vous tapez/context-lens refresh.
token-weather
Section intitulée « token-weather »- Il compte le temps restant avant que le cache de prompt refroidisse, et relance l’horloge à chaque fin de requête du fil principal.
- Pour savoir si la durée de vie du cache est de 5 minutes ou d’1 heure, il lit le champ
cache_creationde la dernière réponse dans le JSONL du transcript. Il construit lui-même le chemin~/.claude/projects/<chemin>/<id de session>.jsonl. Si le fichier dépasse 1 Mo, il exécutetail -c. - Cette règle de chemin n’est pas une API documentée. Un commentaire précise qu’en cas de décalage, il arrête la détection et réutilise la dernière valeur. Si vous fixez
5mou1hdans les options, il ne lit plus le fichier.
burn-meter
Section intitulée « burn-meter »- Chaque seconde, il lit et écrit
$.session.usage()et$.store. Tant que la bande est affichée, il redessine le raster de la flamme toutes les 80 ms et le montant toutes les 50 ms. C’est le mod aux minuteurs les plus chargés des 7. - Il convertit le coût en nombre de burritos et de Big Mac.
- Pour le calcul du coût cumulé, il laisse une clé
last:<id de session>par session. Nous n’avons pas trouvé de code qui les supprime.
budget-guard
Section intitulée « budget-guard »- Il surveille trois limites : coût de la session, fenêtre de 5 heures et fenêtre de 7 jours. Par défaut : 90 % sur 5 heures, 95 % sur 7 jours, limite de coût désactivée, mode
block. - Au-delà d’une limite, il refuse avec
{ deny }danstool.callpuis termine le tour par$.turn.abort250 ms plus tard. Selon le commentaire, la raison est que, face à un refus, le modèle réessaie avec un autre outil et dépense encore. - À l’envoi d’un prompt, il demande via
$.ui.asks’il faut l’envoyer quand même. Les commandes slash passent sans question, de sorte que vous pouvez taper/guard override. - Le hook bloquant n’a pas de
.catch. Si le hook se termine par une exception, le moteur l’ignore et poursuit l’appel. Il peut donc arriver qu’un appel passe alors que la limite est dépassée.
- C’est un portage en mod de claude-hud 0.10.0, un outil de ligne d’état. À la place de
fsetchild_processde Node, il superpose des modules d’émulation au-dessus de$.fset$.process.run. - Au démarrage, il exécute
/usr/bin/env -0et remplitprocess.envdu module d’émulation avec toutes les variables d’environnement du processus. Nous n’avons trouvé aucun code qui envoie ces valeurs à l’extérieur. - Par défaut, après le premier tour puis tous les 5 tours, il résume le travail en une ligne avec
$.model.fork. Il lit la conversation via le cache de prompt, mais cela compte dans l’usage. AvecsummaryEveryTurnsà 0, c’est désactivé. - Il écrit un registre des coûts quotidiens dans des fichiers sous
~/.claude/plugins/claude-hud-mod/. L’affichage du compte est désactivé par défaut. - La commande shell définie par l’utilisateur (
extraCmd) ne s’exécute que si la variable d’environnementCLAUDE_HUD_ALLOW_EXTRA_CMDest activée.
Lequel choisir
Section intitulée « Lequel choisir »- Pour regarder discrètement deux limites et leur heure de réinitialisation, usage-meter. Il est assez court pour être lu en entier avant l’installation et ne touche ni aux fichiers ni aux processus.
- Si les champs de limite sont vides dans l’onglet Code de l’app de bureau, usage-band. Les valeurs estimées à partir des fichiers de l’app sont préfixées d’un
~. - Pour savoir quand vous serez à sec à ce rythme, le panneau
/quotade quota-meter. - Pour voir de combien le contexte grossit à chaque tour et quand le cache refroidit, token-weather. Pour le détail par catégorie, regardez aussi context-lens, du dépôt d’Arunjay4213.
- Si vous devez vraiment vous arrêter en atteignant une limite, budget-guard. Gardez en tête qu’un hook en échec laisse passer.
- Si vous utilisiez claude-hud comme ligne d’état, hud. Si l’appel au modèle pour les résumés vous déplaît, mettez
summaryEveryTurnsà 0. - Avec une clé API, les chiffres de limite n’arrivent pas. burn-meter ou token-weather, centrés sur le coût et le contexte, conviennent mieux.
- Pour un dépôt contenant des secrets ou un environnement à politique réseau stricte, évitez les mods d’usage qui appellent
$.http.fetch. Regardez d’abord la portée d’accès dans le répertoire des mods, et passez par la vérification de sécurité avant d’installer.
Guide communautaire non officiel, sans lien avec Anthropic ni approuvé par Anthropic. Claude et Claude Code sont des marques d’Anthropic.