Aller au contenu
geekus
ActuOutils dev·6 min de lecture

tokentab : suivre le coût de Claude Code, Codex, Gemini

tokentab te montre ce que te coûtent Claude Code, Codex et Gemini CLI. Il lit les logs déjà présents sur ton disque, sans compte ni clé API. Tableau de bord web sur localhost, ou simple commande python cli.py.

Voir le dépôt ↗
Sommaire11 parties

tokentab est un outil open source en Python qui additionne les tokens consommés et le coût de tes sessions Claude Code, Codex et Gemini CLI. Il lit les journaux que ces outils laissent déjà sur ton disque : pas de compte, pas de clé API, rien ne quitte ta machine. Les résultats s’affichent dans le terminal ou dans un tableau de bord web local.

En bref

  • Lit les logs de session de Claude Code, Codex et Gemini CLI déjà présents sur le disque
  • Tokens et coût ventilés par modèle, projet, jour et type d’activité
  • Fonctionne en local : ni compte, ni clé API, aucun envoi de données
  • Sortie dans le terminal, en JSON, ou dans un tableau de bord web sur localhost
  • Licence MIT ; Cursor est prévu mais pas terminé

Ce que fait tokentab

Les assistants de code en ligne de commande consomment des tokens, et ces tokens se paient. Difficile, au quotidien, de savoir quel modèle, quel projet ou quel jour a pesé le plus sur la facture. tokentab répond à cette question en relisant les journaux de session que Claude Code, Codex et Gemini CLI écrivent déjà sur ton disque.

Il additionne les tokens et le coût, puis les range par modèle, par projet, par jour et par type de travail réalisé dans chaque session. Tout se passe en local : le README insiste sur l’absence de compte, de clé API et de transfert de données.

D’où viennent les données

Chaque outil range ses journaux à un endroit précis, et tokentab va les chercher là. Si un outil n’est pas installé sur ta machine, il est simplement ignoré : tu ne vois que ceux que tu utilises.

Le README annonce aussi Cursor, mais cet emplacement est seulement câblé, pas terminé. Aujourd’hui, trois outils sont réellement lus.

  • Claude Code : les fichiers .jsonl sous ~/.claude/projects/
  • Codex : les fichiers rollout-*.jsonl sous ~/.codex/sessions/
  • Gemini CLI : les fichiers session-*.json sous ~/.gemini/tmp/
  • Cursor : emplacement réservé, pas fonctionnel

Comment tokentab calcule tokens, prix et activité

Les tokens viennent directement des journaux : chaque outil enregistre ses propres comptes à chaque appel, rien n’est estimé. Une subtilité concerne le cache : Claude sépare lectures et écritures du cache, tandis que Gemini indique une entrée qui inclut déjà la part en cache. tokentab retire donc les tokens en cache avant de calculer le prix, pour ne pas facturer deux fois la même chose.

Les prix sont tenus à la main dans un tableau, en dollars par million de tokens. L’outil ne contacte jamais le réseau pour tarifer. La correspondance des noms est approximative : claude-opus-4-6-20260514 retrouve claude-opus-4-6. Si un modèle affiche $0.00, son nom ne correspond à rien dans le tableau, et la commande le signale au lieu de le compter comme gratuit.

L’activité (code, débogage, refactorisation, tests…) est une déduction à partir des outils utilisés et des mots du premier message de la session. Elle est déterministe, sans appel à un modèle, mais le README la présente comme un indice, pas comme une vérité.

Installer et lancer tokentab

L’installation passe par un clone du dépôt, puis pip install .. Le README indique que cela place une commande tokentab dans ton environnement, et qu’on peut aussi lancer l’outil depuis les sources sans l’installer. Le projet ne donne pas de version minimale de Python.

La seule dépendance externe est la bibliothèque rich, qui sert aux tableaux du terminal. Le serveur web, les lecteurs de journaux et le JSON reposent sur la bibliothèque standard de Python.

git clone https://github.com/yakuikai/tokentab
cd tokentab
pip install .
python cli.py

Lire ses dépenses dans le terminal ou le navigateur

La commande seule affiche les 7 derniers jours, tous outils confondus. Des options permettent de se limiter à aujourd’hui, au mois en cours, à tout l’historique, à un outil, à un projet ou à une période précise. La couleur disparaît automatiquement quand tu redirige la sortie, pour coller le résultat dans un message sans caractères parasites.

Pour un traitement automatique, l’option --json produit une sortie lisible par une machine. Pour des graphiques, -web ouvre le tableau de bord à l’adresse présenté comme un relevé mensuel : le total en haut, le détail dessous. Il relit le disque à chaque requête, n'écoute que sur localhost et n'utilise aucune police chargée depuis Internet, donc il marche même hors connexion.–portchange le port et–no-open` empêche l’ouverture du navigateur.

python cli.py --json | jq .
python cli.py -web

Interpréter les chiffres de tokentab

Le README propose quelques pistes de lecture, qu’il présente comme des points de départ et non des verdicts. Un taux de cache durablement sous 80 % suggère un contexte instable entre les appels, ou un cache non activé. Un gros modèle qui domine le coût sur de nombreux petits appels peut signaler qu’un modèle moins cher aurait suffi.

Si les catégories « chat » ou « exploring » prennent une grande part, une bonne partie de la dépense est allée à discuter et lire plutôt qu’à modifier du code. Parfois c’est le métier, parfois une session qui s’est égarée.

Ajouter un outil et points d’attention

Chaque outil pris en charge est un module unique du dossier tokentab/providers/, avec une fonction collect() qui renvoie une liste d’enregistrements d’usage de forme commune. Ajouter un module et l’inscrire dans la liste suffit : tarification, regroupements et tableau de bord fonctionnent ensuite sans autre modification.

Le projet est sous licence MIT. Il prévient que les prix sont donnés au mieux : un tarif périmé se corrige par une ligne dans le tableau, et les corrections sont les bienvenues. Le README ne donne pas de chiffres d’activité du dépôt.

Quelques repères

  • Token : Unité de découpage du texte utilisée par un modèle de langage. La consommation d’un modèle, et souvent son prix, se mesurent en nombre de tokens lus et produits.
  • Clé API : Code secret qui identifie un utilisateur auprès d’un service en ligne et autorise ses appels. Sans elle, le service refuse généralement de répondre.
  • Cache : Mémoire intermédiaire qui garde des données déjà traitées pour ne pas les recalculer. Avec un modèle de langage, cela évite de relire à plein tarif un contexte déjà envoyé.

Questions fréquentes

tokentab a-t-il besoin d’une clé API ou d’un compte ?

Non. tokentab lit les journaux de session déjà présents sur ton disque et tourne entièrement en local. Le README précise que rien ne quitte ta machine.

Quels outils tokentab sait-il analyser ?

tokentab lit les journaux de Claude Code, Codex et Gemini CLI. Un emplacement existe pour Cursor, mais il n’est pas terminé.

Comment afficher le tableau de bord web de tokentab ?

Lance python cli.py -web : le tableau de bord s’ouvre à l’adresse Tu peux changer de port avec --port ou empêcher l’ouverture du navigateur avec --no-open.

Pourquoi tokentab affiche-t-il $0.00 pour un modèle ?

Le nom du modèle ne correspond à aucune ligne du tableau de prix tenu à la main. Ajouter une ligne règle le problème, et la commande signale le cas au lieu de le compter comme gratuit.

À retenir

tokentab transforme les journaux de session de Claude Code, Codex et Gemini CLI en un décompte de tokens et de coût par modèle, projet, jour et activité, sans compte ni clé API. Les prix reposent sur un tableau tenu à la main et l’activité reste une déduction, donc les chiffres sont à lire comme des repères.

Sources

tokenscoûtclaude codecodexgemini clilocal
Dans le même genre

Des fiches proches.

toute la famille
À lire aussi

Les dernières fiches.

tout l'annuaire

Le Carnet de Geekus · chaque vendredi

Les trouvailles de la semaine, dans ta boîte mail.

Un email, cinq minutes de lecture. En français, gratuit, sans publicité.

S'inscrire au Carnet →
  1. Le spécimen de la semaine, expliqué à fond
  2. L'actu IA en bref
  3. Les autres trouvailles et le mot de la semaine