Helper Keychain

À installer si vous êtes sur Claude Code 2.1+ et que TokenEater n'arrive pas à lire votre token OAuth. Optionnel sinon.

Pourquoi un helper ?

Depuis Claude Code 2.1, le token OAuth est stocké exclusivement dans le trousseau macOS, derrière un ACL qui ne whitelist que /usr/bin/security. Une app sandboxée signée ad-hoc comme TokenEater ne peut pas y accéder directement, donc la v4.10.0 embarque un helper opt-in pour combler ce trou.

Ce qu'il fait

Le helper est un petit binaire non sandboxé qui appelle /usr/bin/security, lit le token Claude Code depuis le trousseau sur un intervalle configurable (minimum 30s, défaut 5min) et l'écrit atomiquement dans ~/Library/Application Support/com.tokeneater.shared/keychain-token.json en permissions 0600. TokenEater lit ce fichier comme source de token de seconde priorité. Zéro appel réseau. Code source complet sur GitHub.

Quand en avoir besoin

Si vous êtes sur Claude Code 2.1+ et que vous n'avez pas Claude Desktop installé à côté, l'app affichera une bannière d'onboarding qui vous invitera à l'installer.

Si vous avez encore ~/.claude/.credentials.json (ancien Claude Code) ou Claude Desktop (qui garde un config.json déchiffrable), le helper est optionnel : TokenEater lira directement depuis ces sources prioritaires.

Installer / retirer

Ouvrez Réglages -> Agent Watchers -> Keychain helper (ou cliquez sur la bannière dans le popover) et choisissez Install helper. macOS va lancer un applet AppleScript qui enregistre le LaunchAgent. Pour le retirer, cliquez sur Remove helper au même endroit.

Force sync now

Si vous venez de lancer claude /login et que vous voulez que TokenEater prenne en compte le nouveau token immédiatement sans attendre le prochain tick, cliquez sur Force sync now. Ça déclenche une lecture Keychain one-shot et réécrit le fichier partagé en moins d'une seconde.

Utile aussi si les chiffres d'usage semblent figés après une reconnexion.

Le helper est une solution transitoire. Une fois la migration vers une signature Developer Program complète, il sera retiré et l'app lira directement depuis le trousseau.