Outil CLI Bash pour basculer entre profils Codex
Quand on gère plusieurs comptes Codex — pro, perso, sauvegarde —, le fichier ~/.codex/auth.json par défaut devient un vrai goulot d'étranglement. Copier manuellement les fichiers d'authentification crée la confusion : on perd la trace du profil actif, du quota restant, et on risque d'écraser des données importantes. Un simple script bash nommé codex-auth résout ça en ajoutant des commandes pour sauvegarder, basculer entre profils et surveiller l'usage via l'API.
Le script stocke les profils séparément, met en cache les données d'usage, gère les proxys et détecte les comptes dupliqués via des empreintes digitales.
Emplacement de auth.json et notes multiplateformes
Fichier d'autorisation principal :
- Linux/macOS :
~/.codex/auth.json - Windows :
%USERPROFILE%\.codex\auth.json
Il contient access_token, id_token et account_id. La structure peut changer, donc le parsing utilise jq avec des solutions de repli.
Problèmes du cp manuel :
- Pas d'indicateur du profil actif
- Risque de perte de données
- Pas d'infos sur les quotas ou dates de réinitialisation
Commandes du script
Le script propose une interface CLI claire :
codex-auth— liste les profils avec usagecodex-auth usage— quotas du auth.json actuelcodex-auth save <nom>— sauvegarde le profil actuelcodex-auth use <nom>— bascule vers un profil (ou raccourcicodex-auth <nom>)codex-auth list-fast— liste locale sans appels APIcodex-auth backup— sauvegarde le profil actuel
Support proxy :
codex-auth proxy set <url>codex-auth proxy showcodex-auth proxy unset
Mise en cache :
codex-auth cache-time [secondes](défaut 15s, 0 désactive le cache)
Exemple d'utilisation
- Connexion compte pro :
codex-auth save work - Connexion compte perso :
codex-auth save personal - Basculement :
codex-auth workoucodex-auth personal - Sortie :
📊 5h: 100% ⏱5h 7️⃣ 15% ⏱4j 9h work <[email protected]>
📊 5h: 100% ⏱5h 7️⃣ 84% ⏱3j 18h *personal <[email protected]>
Surveillance de l'usage via API
Requête vers https://chatgpt.com/backend-api/wham/usage avec Authorization: Bearer $token et account_id dans les en-têtes :
curl -s \
-H "Authorization: Bearer $token" \
-H "Accept: application/json" \
-H "User-Agent: CodexCLI" \
"https://chatgpt.com/backend-api/wham/usage" | jq
Le parsing affiche :
- Email du compte
- Type d'abonnement
- Quota restant (5h, hebdo)
- Heure de réinitialisation
- Limite de revue de code
Mise en cache pour la rapidité
Cache stocké dans ~/.codex-auth-profiles/.usage-cache, indexé par token + account_id + proxy. TTL configurable évite les appels API inutiles. Sans cache (TTL=0), on récupère des données fraîches à chaque fois.
Support proxy
Pour réseaux d'entreprise ou pare-feu :
codex-auth proxy set http://127.0.0.1:8888
curl utilise --proxy pour toutes les requêtes. Stocké dans ~/.codex-auth-profiles/proxy.
Détection des doublons
Empreinte du profil :
account_idsubduid_token- SHA256 du fichier entier
Évite les doublons sous noms différents et vérifie les correspondances avec auth.json actif.
Adaptations multiplateformes
- base64 : Linux
base64 -d, macOSbase64 -D - stat : Linux
stat -c %Y, macOSstat -f %m - SHA256 : Linux
sha256sum, macOSshasum -a 256
Écritures atomiques via mktemp + mv.
Profils dans ~/.codex-auth-profiles : fichiers JSON pour profils, sélection actuelle, paramètres et cache.
Limitations
- Dépend de la structure de auth.json
- API backend peut changer
- Bash uniquement, pas pour logique complexe
Dépendances : bash, jq, curl, awk, sort, base64, stat.
Avantages clés
- Basculement de profils sans risque d'écraser auth.json
- Surveillance d'usage avec quotas visuels et réinitialisations
- Cache TTL pour la vitesse, support proxy pour les réseaux
- Empreintes évitent les doublons
- Écritures atomiques, 100% multiplateforme
— Editorial Team
Aucun commentaire pour le moment.