Script de gestion du budget de jetons pour éviter les factures astronomiques de l'API Claude Code
1. Bloquer la surfacturation en définissant une limite de jetons
Si vous avez déjà été surpris par une facture d'API en exécutant un petit projet, c'est parce qu'il n'y avait pas de limite budgétaire. Les agents maintiennent le contexte des conversations plus longtemps que vous ne le pensez et lisent à plusieurs reprises le contenu de fichiers inutiles. Si vous les laissez sans surveillance, des dizaines de milliers de jetons disparaissent en un seul jour. Vous devez ouvrir le fichier ~/.claude/settings.json pour limiter directement l'utilisation par session et par jour.
Voici comment ajouter l'objet budget au fichier de configuration globale de l'utilisateur :
- Ouvrez le terminal et utilisez un éditeur pour ouvrir le fichier ~/.claude/settings.json.
- Dans le bloc JSON, saisissez la valeur sessionLimit à 500000 et dailyLimit à 2000000.
- Définissez warningThreshold à 0.75 et autoCompactAt à 0.60, puis enregistrez.
Lorsque la capacité du contexte atteint 60 %, l'historique des conversations est automatiquement compressé, ce qui élimine le gaspillage inutile de jetons. Comme la session est interrompue avant d'atteindre la limite journalière, vous pouvez dire adieu à la peur des dépassements de budget.
2. Mettre en place un coupe-circuit pour interrompre de force l'exécution après 3 erreurs consécutives
Si un agent est bloqué sur le même crochet (hook) en raison d'une erreur de syntaxe ou d'un problème de chemin de fichier, il tourne en boucle indéfiniment sans trouver de solution. Laisser cet état sans surveillance épuisera les jetons de session en quelques minutes. Se contenter d'écrire dans les consignes d'être prudent ne sert à rien. Il est nécessaire d'associer un système de crochets basé sur un script shell pour le bloquer physiquement.
Créez un script de crochet qui met fin immédiatement au processus s'il détecte 3 erreurs identiques d'affilée :
- Créez le fichier .claude/hooks/loop-breaker.sh dans le répertoire du projet et donnez-lui les droits d'exécution.
- Dans le script, référez-vous au fichier d'état temporaire pour incrémenter le compteur d'erreurs de 1. Si le nombre cumulé est supérieur ou égal à 3, renvoyez une erreur standard et un code de sortie 2 pour interrompre de force la tâche.
- Enregistrez le chemin de ce script dans l'élément PostToolUseFailure du fichier .claude/settings.json pour assurer une surveillance en temps réel.
L'installation de ce dispositif fait disparaître le phénomène où l'agent brûle des jetons en corrigeant indéfiniment du code erroné. Vous économiserez un temps précieux gaspillé dans l'enfer du débogage.
3. Séparer le routage des modèles et les sections d'approbation manuelle selon la nature des tâches
Si vous confiez l'intégralité des tâches de codage à Claude, votre budget ne tiendra pas le choc. Confiez le formatage simple ou la rédaction de code passe-partout (boilerplate) à un modèle léger, tandis que les tâches irréversibles, telles que la migration de bases de données, doivent être directement approuvées par le développeur. Utilisez des alias shell pour configurer un environnement d'exécution adapté à la difficulté de la tâche.
Voici la configuration pour séparer les commandes de délégation d'agent en fonction de la nature du travail :
- Ouvrez le fichier ~/.bashrc ou ~/.zshrc.
- Enregistrez la commande
alias cc-quick='claude --model claude-haiku-3-20250307 --token-budget 100000' pour les tâches de documentation simples.
- Ajoutez la commande
alias cc-dev='claude --model claude-sonnet-4-20250514 --token-budget 500000 --thinking-budget 8000' pour le développement de fonctionnalités générales, puis redémarrez le terminal.
L'application de cette méthode permet à l'agent de traiter en toute sécurité 90 % des tâches de codage répétitives, et le taux de PR achevées par million de jetons augmente de manière visible. C'est la méthode la plus réaliste pour réduire à coup sûr les coûts d'API inutiles de moitié.