Le dossier technique
Ce que Quotum lit sur ta machine
Une application qui lit ton Trousseau et tes fichiers d'identifiants doit dire lesquels, pour quoi faire, et où part le résultat. Cette page nomme chaque source, chaque adresse et chaque cadence — et donne les commandes qui permettent de la contredire.
Relevé daté du 19 septembre 2026, établi en lisant le code de la version 2026.9.18. Les numéros de ligne cités bougent au premier commit qui ajoute une ligne au-dessus ; le classement, lui, tient. Les commandes de la section 06 sont là pour le vérifier plutôt que pour nous croire.
01 Ce qu'elle affiche, ligne par ligne
Un pourcentage nu est ambigu. Chaque ligne du panneau porte donc trois choses : le niveau en grille de dix cases, l'heure à laquelle la fenêtre se recharge, et l'âge de la mesure — parce qu'un chiffre relevé il y a trois heures ne vaut pas un chiffre relevé à l'instant.
| Compte | Niveau | Ce qui est écrit dessous |
|---|---|---|
| Travail · Max20 | 46 % utilisé · se recharge mer. 23 sept. à 20:38 · mesuré il y a 2 min |
|
| Perso · Max20 | Quota épuisé jusqu'au dim. 20 sept. à 20:38 Dix cases vides ne sont pas une valeur inventée : c'est ce que « quota épuisé » veut dire. |
|
| Veille · Max20 | — | En attente d'une mesure Pas de grille du tout. Une grille vide annoncerait un compte à sec, et personne ne l'a constaté. |
| Secondaire · Premium | — | Reconnexion nécessaire Un jeton expiré ne dit rien du quota : le compte peut être plein. |
02 Ce qu'elle lit sur le disque et au Trousseau
Quotum ne te demande aucun mot de passe et n'ouvre aucune session. Il relit les identifiants que les outils en ligne de commande ont déjà posés sur la machine, chacun là où son outil le range.
| Outil | Où l'identifiant est lu |
|---|---|
| Claude | Trousseau, élément |
| Warp | Trousseau, éléments |
| ChatGPT |
|
| Windsurf |
|
| Cursor | La base |
| Codebuff |
|
| Augment |
|
| opencode |
|
| Grok |
|
Et six sources lues sans que rien soit armé
Celles-ci ne dépendent pas de l'armement d'un fournisseur : Quotum les lit à chaque relevé, fournisseurs armés ou non, y compris sur une installation neuve. Aucune ne sert à interroger un fournisseur.
~/.claude.json— l'objetoauthAccount, qui nomme le compte connecté à Claude Code. Aucun jeton n'y figure : il sert à poser la mesure du Trousseau sur la bonne ligne.~/.claude/cc-proxy.url,~/.claude/cc-proxy.secretet leurs équivalents~/.codex-comptes/— où joindre les proxys locaux, quand ils sont installés. Le fichier de secret en est un, d'identifiant : Quotum le pose dans le chemin de l'adresse qu'il interroge, et ne le transmet que sur la boucle locale de ta machine.~/Applicationset le fichierLocal Statede Chrome — quelles applications de compte existent, et à quel profil de navigateur chacune est rattachée.ps -axo command— lesquelles de ces applications tournent en ce moment, pour écrire « Passer à l'application » plutôt que « Lancer ».<données de l'app>/plan-usage-history.json— l'historique de consommation que Claude Code écrit lui-même à côté de sa configuration. Aucun jeton n'y figure.<CODEX_HOME>/sessions/AAAA/MM/JJ/rollout-*.jsonl— les journaux de session du CLI Codex, dont Quotum ne lit que la fin, à la recherche des en-têtes de quota que le serveur y a laissés. ⚠️ Ces fichiers sont les transcriptions de tes sessions : nous les ouvrons pour y chercher un pourcentage, rien n'en sort de la machine, et nous préférons te le dire plutôt que de le taire parce qu'aucun jeton n'y figure.
Le jeton ne fait que transiter. Il est lu, posé dans l'en-tête d'une
requête, et rien d'autre : il n'est recopié dans aucun fichier, inscrit dans aucun journal
et gardé dans aucun cache. La session réseau est déclarée ephemeral, son cache
est mis à nil et sa politique ignore tout cache local — ce qui se vérifie en
une commande, section 06.
03 Où elle se connecte — toutes les adresses, énumérées
La commande grep -rn 'https\?://' Sources/ rend chaque ligne du code source où
figure une adresse. Elles sont toutes reprises ci-dessous, classées en trois familles.
Nous ne donnons pas leur nombre exprès : un décompte figé sur une page
repérimerait au premier commit, alors que la liste, elle, se compare ligne à ligne. Une
adresse que tu trouverais et qui ne serait dans aucun des trois tableaux serait précisément
ce qu'il faut nous signaler.
A · Les lignes où l'application se connecte elle-même
| Ligne | Adresse | Ce qui s'y joue |
|---|---|---|
| QuotaAnthropic.swift:63 | https://api.anthropic.com | Les fenêtres de quota du compte Claude, et le profil qui le nomme. |
| QuotaCodex.swift:46 | https://chatgpt.com | La fenêtre de quota du compte ChatGPT. |
| QuotaWindsurf.swift:59 | https://server.codeium.com | Le quota Windsurf. L'hôte peut venir du fichier de l'utilisateur ; il n'est alors accepté que sous |
| QuotaCursor.swift:281 | https://cursor.com | Le cycle mensuel de Cursor. |
| QuotaWarp.swift:197 | https://app.warp.dev/graphql/v2 | Le cycle de Warp. |
| QuotaCodebuff.swift:138 | https://www.codebuff.com | Le bloc de cinq heures et la semaine de Codebuff. |
| QuotaOpencode.swift:147 | https://opencode.ai | La consommation opencode. |
| QuotaGrok.swift:209 | https://cli-chat-proxy.grok.com | Les crédits Grok. |
| LecteurProxy.swift:17 | http://127.0.0.1:8787 | Le statut du proxy Claude, sur ta propre machine. Rien ne sort de l'ordinateur. |
| LecteurProxy.swift:25 | http://127.0.0.1:8788 | Le statut du proxy ChatGPT, même chose. |
Les deux ports de boucle locale ne peuvent pas devenir autre chose. Leur
adresse est lue dans un fichier du disque, et rien dans le format d'une URL n'empêcherait
cette ligne de nommer une machine distante. Le code n'accepte donc que trois écritures —
127.0.0.1, ::1, localhost — et refuse le reste sans
avoir à l'imaginer. C'est une liste de ce qui est admis, pas une liste de ce qui est
interdit : celle-ci laisserait toujours passer la forme qu'on n'aurait pas prévue.
B · Les lignes qu'un navigateur ouvre, et que l'application n'interroge jamais
Ce sont les destinations des commandes « Ouvrir claude.ai », « Ouvrir cursor.com » et consorts. Elles partent au navigateur que tu as choisi. Quotum ne leur adresse aucune requête et ne lit rien de ce qu'elles répondent.
| Lignes | Adresses | Ce qui s'y joue |
|---|---|---|
| Compte.swift:26, 27, 31–37 | claude.ai · chatgpt.com · devin.ai · cursor.com · app.warp.dev · www.codebuff.com · augmentcode.com · opencode.ai · grok.com | La page d'accueil de chaque outil, une par fournisseur. |
| Compte.swift:110, 111 | claude.ai/download · chatgpt.com/download | Où récupérer l'application de bureau, proposé quand elle n'est pas installée. |
C · Les lignes qui ne sont pas des destinations
| Lignes | Texte | Ce que c'est |
|---|---|---|
| VueReglages.swift:289 | https://exemple.test | Une URL jetable, jamais ouverte : elle sert à demander à macOS quels navigateurs sont installés, pour peupler le menu des réglages. Le domaine |
| QuotaGrok.swift:70, 72, 84 | https://auth.x.ai::… · https://accounts.x.ai/sign-in | Des portées OAuth, c'est-à-dire des étiquettes comparées à celles du fichier local pour savoir de quelle connexion vient un jeton. Elles ressemblent à des adresses ; aucune n'est jointe. |
| QuotaAugment.swift:9, 160, 161 | dans des commentaires | De la documentation : la forme de l'adresse de tenant, et le piège de barre finale mesuré en l'écrivant. |
| QuotaWindsurf.swift:291 | dans un commentaire | Un contre-exemple d'attaque, cité pour expliquer pourquoi vérifier le seul schéma d'une URL ne suffit pas. |
Une destination que cette commande ne montre pas
Augment. Son adresse n'est écrite nulle part dans le code : elle est lue
dans ~/.augment/session.json, sous la forme
https://<tenant>.api.augmentcode.com, et n'est acceptée que si elle
reste sous le domaine augmentcode.com. Un grep des adresses ne
peut donc pas la faire apparaître — et c'est la raison pour laquelle nous te donnons cette
liste au lieu de te laisser conclure qu'une commande suffit à tout établir.
04 À quelle cadence
Un cycle de relevé part au lancement de l'application, à chaque ouverture du panneau, quand tu demandes une actualisation, après la création d'un compte, et quand tu changes les fournisseurs armés — puis toutes les cinq minutes. Cet intervalle se règle dans les réglages entre une, cinq et quinze minutes ; il ne descend pas sous la minute, par sobriété et non parce qu'un fournisseur l'imposerait.
Et aucun fournisseur n'est interrogé tant que tu n'as rien armé. Les neuf arrivent éteints, et chacun s'arme séparément : à l'installation, aucun jeton n'est lu et aucune requête ne part vers un fournisseur. Seule la vérification des mises à jour, qui ne dépend pas de ce choix, interroge le serveur de l'éditeur — section 05. Ce qui suit décrit donc le cycle d'un fournisseur que tu as choisi d'armer.
Un cycle, au maximum, c'est :
- deux requêtes vers
api.anthropic.com— la consommation et le profil, lancées ensemble ; - une requête vers chacun des huit autres fournisseurs ;
- deux lectures de boucle locale, qui ne quittent pas l'ordinateur.
« Au maximum » est le mot important. Chaque lecteur cherche d'abord son identifiant sur la machine, et ne part sur le réseau que s'il l'a trouvé. Sur un ordinateur où Cursor n'est pas installé, aucune requête ne part vers Cursor — pas une requête vide, pas un appel qui échoue : rien. De même quand le Trousseau est verrouillé ou qu'une lecture est empêchée. Un parc de deux outils fait donc deux ou trois requêtes par cycle, pas dix.
05 Ce qui ne part nulle part
Aucune de tes mesures, aucun de tes noms de comptes, aucun de tes jetons ne sont envoyés à l'éditeur de Quotum. Il n'existe aucun compte à créer, aucune mesure d'audience dans l'application — celle du site est décrite dans les mentions légales —, aucun rapport d'incident automatique. Ce que l'application relève reste sur la machine qui l'a relevé.
Une exception, et elle est réelle. Quotum interroge le flux de mises à jour de l'éditeur pour savoir s'il existe une version plus récente — c'est ce qui permet à une copie déjà installée d'être prévenue. Rien d'autre n'y remonte : ni compte, ni mesure, ni statistique. Écrire « il n'y a pas de serveur de l'éditeur » serait faux, et nous ne l'écrivons pas.
La seule chose que Quotum écrive sur un compte
Tout le reste est en lecture. Une seule fonction écrit quelque part : consommer un crédit de réinitialisation ChatGPT. Elle n'est pas réversible — ces crédits s'obtiennent par parrainage, jamais à l'achat, et ils périment.
Elle a deux chemins, et aucun ne part tout seul d'un fournisseur que tu n'as pas armé : sans consentement de mesure, aucun quota n'est relevé, et rien ne peut donc conclure qu'un compte est à sec.
- À la main, depuis le tiroir d'un compte. Le bouton écrit ce que la dépense coûte avant de la proposer, et rien ne part sans une seconde confirmation.
- Sans demander, si tu l'as armé. Ce réglage-là est éteint par défaut, il ne s'arme qu'après un avertissement qui dit que la dépense pourra avoir lieu la nuit ou en ton absence, et chaque réinitialisation qu'il dépense t'est annoncée par une notification.
Dans les deux cas, les mêmes conditions : un compte ChatGPT, un crédit restant, un épuisement que le serveur a constaté — jamais déduit d'un pourcentage, jamais confondu avec un jeton expiré —, une mesure de moins de dix minutes, et une échéance de retour encore devant.
06 Vérifier soi-même, sans nous croire
⚠️ Le code de Quotum n'est pas publié au 19 septembre 2026 : le dépôt qui le porte est privé. Ces commandes s'exécutent à sa racine, et ne se rejouent donc que par qui y a accès. Nous les donnons avec ce qu'elles rendent aujourd'hui.
| Affirmation | Commande | Ce qu'elle rend |
|---|---|---|
| Aucun paquet téléchargé, une seule bibliothèque tierce | grep -c '\.package(' Package.swift | 0 Aucun paquet n'est tiré d'un dépôt distant à la compilation. Une seule bibliothèque tierce est embarquée : Sparkle, le cadre de mise à jour, déposée sous forme binaire dans |
| Session réseau sans cache | grep -n ephemeral Sources/Quotum/Donnees/Outils.swift | 65: … URLSessionConfiguration.ephemeral Les lignes voisines posent aussi |
| Les adresses, toutes | grep -rn 'https\?://' Sources/ | Chacune des lignes rendues figure dans l'un des trois tableaux de la section 03, commentée. Nous n'annonçons pas de total : c'est la liste qui se compare, pas un chiffre. Une ligne qui n'y serait pas est ce qu'il faut nous signaler. |
07 Les neuf outils lus
Les fenêtres diffèrent d'un fournisseur à l'autre, et leur durée n'est presque jamais publiée. Quotum affiche celles que chaque fournisseur expose, sans les convertir dans une unité commune qui n'existe pas.
| Outil | Fenêtres publiées | Plusieurs comptes |
|---|---|---|
| Claude | 5 h et 7 j | oui |
| ChatGPT | 7 j | oui |
| Windsurf | quotidienne et hebdomadaire | oui |
| Cursor | cycle mensuel | oui |
| Warp | cycle | une ligne |
| Codebuff | bloc de 5 h et hebdomadaire | une ligne |
| Augment | cycle de facturation | une ligne |
| opencode | selon le fournisseur | une ligne |
| Grok | énumérées | une ligne |
Avant d'acheter, lis aussi l'avertissement. Relire les identifiants qu'un outil a posés sur la machine n'est prévu par aucun des neuf fournisseurs. Ce que cela engage est écrit sur la page d'achat, juste au-dessus du bouton.