Connecter Crush à CheapTokens : fournisseur crushrc, modèle, clé
Ajoutez CheapTokens à Crush avec deux commandes crushrc : un fournisseur de completions et un modèle avec ses vraies limites ; la clé vient d'une variable d'environnement.

Sur cette page
Pour connecter Crush à CheapTokens, placez deux commandes dans votre crushrc : provider add avec l'URL de base https:/ et -, puis model add avec l'identifiant complet du modèle. Ouvrez ensuite Crush, appuyez sur Ctrl+l, choisissez le modèle et confiez-lui une tâche. La clé reste dans une variable d'environnement, pas dans le fichier.
Si vous avez suivi un guide plus ancien, il modifie probablement crush.json. Crush lit toujours ce fichier, mais son README le qualifie d'obsolète : la configuration actuelle est crushrc, et depuis la v0.99.0 (29 octobre 2026) le fournisseur --type décrit le format d'API, pas l'éditeur. Les sources sont le README de Crush et les notes de version, vérifiées le 10 novembre 2026 ; la dernière version stable à cette date est la v0.100.0.
Installer Crush#
Prenez le gestionnaire de paquets que vous avez déjà. Crush est un seul binaire, donc la méthode importe peu.
Installer Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestLe README liste aussi les dépôts apt et yum, Scoop, Nix, Arch et FreeBSD. Lancez crush une fois pour vérifier qu'il démarre, puis quittez.
Ajouter CheapTokens dans crushrc#
Le README décrit crushrc comme « juste du Bash avec quelques builtins spécifiques à Crush ». Tout l'astuce est là : vous écrivez du shell, et provider add et model add sont des commandes que Crush comprend. Crush cherche le fichier dans cet ordre : ./.crushrc, ./crushrc, puis ~/.
Vous choisissez donc où il réside. Un .crushrc local au projet s'applique à un seul dépôt ; celui de ~/.config/crush/ s'applique partout. Pour un premier essai, le global est plus simple.
Placez d'abord la clé dans votre shell. Créez-la dans votre tableau de bord CheapTokens et exportez-la (la valeur ci-dessous est un exemple) :
export CHEAPTOKENS_API_KEY="your-key-here"Ouvrez ensuite ~/ et écrivez :
provider add cheaptokens --type completions \
--base-url "https://api.cheaptokens.dev/v1" \
--api-key "$CHEAPTOKENS_API_KEY"
model add cheaptokens/deepseek-ai/DeepSeek-V4-Flash-0731 \
--name "DeepSeek-V4-Flash" \
--context-window 380000 \
--default-max-tokens 32768Quelques détails méritent un second regard :
-est le nom Crush pour les fournisseurs compatibles OpenAI qui ne sont pas OpenAI lui-même.- type completions responsessert au proxy OpenAI,messagesaux fournisseurs compatibles Anthropic. L'ancienopenai-compatfonctionne toujours et est migré.- L'URL de base se termine par
/v1. C'est l'adresse CheapTokens pour les Chat Completions de style OpenAI ; la liste complète des endpoints figure dans la documentation CheapTokens. $CHEAPTOKENS_est développé par le shell, donc le fichier ne contient aucun secret et unAPI_ KEY .crushrcde projet peut être versionné dans git sans risque.- L'identifiant du modèle est le complet,
deepseek-. Un identifiant court commeai/ DeepSeek- V4- Flash- 0731 deepseek-est rejeté par l'API. Après le nom du fournisseur vient un second slash, car l'identifiant en contient un lui-même.v4- flash -correspond aux 380K arrondis de DeepSeek-V4-Flash, et- context- window 380000 -à sa limite par réponse. Ce sont les vraies limites du modèle dans CheapTokens : 380K de contexte et jusqu'à 32 768 tokens par réponse. Mettez-les dans- default- max- tokens 32768 model addau lieu de laisser les valeurs d'exemple du README (64000 et 5000).

Le README ne montre model add qu'avec un identifiant simple (deepseek/). Votre identifiant a un slash supplémentaire, donc le sélecteur de modèle à l'étape suivante est la vraie vérification : si le modèle apparaît sous cheaptokens, la ligne a été lue comme prévu.
Vous voulez un autre modèle sur le même solde ? Ajoutez une ligne model add de plus avec son propre identifiant et ses limites. GLM-5.3-Flash est zai- (390K de contexte, jusqu'à 8 192 tokens par réponse), et MiniMax-M2.7 est MiniMaxAI/ (180K de contexte, jusqu'à 8 192 tokens par réponse). Gardez - inférieur ou égal à la limite de réponse du modèle ajouté.
Ouvrir Crush et lancer une première tâche#
Lancez crush dans un dossier de projet. Appuyez sur Ctrl+l pour ouvrir le sélecteur de modèle et choisissez DeepSeek-V4-Flash dans le groupe cheaptokens. Le README ne décrit pas de commande crushrc pour le modèle par défaut, donc le sélecteur est la solution.

Donnez-lui maintenant quelque chose de petit et vérifiable, par exemple : Read this repo and tell me which file starts the app, in two lines. Une réponse qui nomme un vrai fichier signifie que toute la chaîne fonctionne : clé, URL de base, identifiant du modèle.
Essayez vous-mêmeEssayez : vous appuyez sur Ctrl+l et le modèle n'est pas dans la liste. Que vérifiez-vous en premier ?Afficher la réponse
L'emplacement du fichier et la variable. Crush cherche la configuration par priorité : ./.crushrc, ./crushrc, ~/. Vérifiez que le projet n'a pas d'autre .crushrc ou crushrc au contenu différent, et que le fournisseur a été ajouté dans le fichier que vous avez modifié. Et echo $CHEAPTOKENS_ doit afficher la clé dans le même shell où vous lancez crush.
Les demandes de permission sont là exprès. permissions allow <tools> dans crushrc permet aux outils nommés de s'exécuter sans demander ; --yolo ignore toutes les demandes, et le README lui-même dit d'être très prudent avec.
Combien coûte une session de code#
Une étape d'agent dans un terminal est gourmande en entrée : Crush envoie l'historique, le contenu des fichiers et la sortie des outils à chaque fois, et reçoit une réponse modeste. Disons qu'une étape moyenne envoie 30 000 tokens et en reçoit 2 000. Sur DeepSeek-V4-Flash, cette étape coûte $0.00065, et le prix est le même à toute heure, sans heures de pointe. En comptant entrée et sortie ensemble, c'est moins cher que le prix de référence d'OpenRouter.
Remplacez par vos propres chiffres : une session de 40 étapes de ce type est à un curseur de distance.
Calculateur de coût
Une journée d'un agent de code dans Crush
Tokens d'entrée par requête: 30 000 · Tokens de sortie par requête: 2 000 · Requêtes par jour: 40
| Modèle | Par jour | Par mois |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.0272 | $0.816 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.026 | $0.78 |
| MiniMax-M2.7$0.05$0.15 | $0.072 | $2.16 |
L'entrée par étape augmente au fil de la session, donc vérifiez une longue session par rapport à la fenêtre de 380K plutôt qu'à la moyenne. Les prix actuels par token pour chaque modèle sont sur la page de tarifs.
Si ça ne fonctionne pas#
Crush écrit un journal dans votre projet, .. Lisez-le avant de deviner :
crush logs --tail 500
crush logs --follow
crush --debugVous pouvez aussi mettre option debug true dans crushrc pour garder la sortie de débogage active. Comparez ensuite ce que vous voyez au statut HTTP renvoyé par l'API :
- 401 : la clé a été envoyée mais n'est pas reconnue : faute de frappe ou clé remplacée. Créez-la ou copiez-la à nouveau.
- 402 : le solde ou la limite de la clé est épuisé. Une requête sans clé du tout ressemble à cela, donc lancez
echo $CHEAPTOKENS_dans le shell où vous démarrezAPI_ KEY crush. Si la clé est là, rechargez le solde. - 429 : trop de requêtes en peu de temps. Attendez la valeur
Retry-Afteret réessayez. - 400 ou « model not found » : regardez l'identifiant du modèle. Il doit être le complet de la documentation, avec le préfixe de l'éditeur.
Si vous venez de crush.json, notez que ~/ est l'état de Crush, pas une configuration ; ne le modifiez pas à la main.
Pour la même configuration dans d'autres outils, voir Connecter Aider à CheapTokens et Connecter Kilo Code à CheapTokens. La page du modèle pour DeepSeek pas cher donne les limites du modèle utilisé ici.



