Herramientas e integracionesGuía
Conectar Crush con CheapTokens: proveedor, modelo y clave en crushrc
Añade CheapTokens a Crush con dos comandos de crushrc: un proveedor de completions y un modelo con límites reales; la clave viene de una variable de entorno.

En esta página
Para conectar Crush con CheapTokens, pon dos comandos en tu crushrc: provider add con la URL base https:/ y -, y model add con el id completo del modelo. Luego abre Crush, pulsa Ctrl+l, elige el modelo y dale una tarea. La clave permanece en una variable de entorno, no en el archivo.
Si seguiste una guía más antigua, probablemente edite crush.json. Crush sigue leyendo ese archivo, pero su README lo llama obsoleto: la configuración actual es crushrc, y desde la v0.99.0 (29 de octubre de 2026) el proveedor --type describe el formato de la API, no el proveedor. Las fuentes son el README de Crush y las notas de la versión, consultadas el 10 de noviembre de 2026; la última versión estable en esa fecha es la v0.100.0.
Instalar Crush#
Elige el gestor de paquetes que ya tengas. Crush es un solo binario, así que da igual la ruta que tomes.
Instalar Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestEl README también lista los repositorios apt y yum, Scoop, Nix, Arch y FreeBSD. Ejecuta crush una vez para comprobar que arranca y luego sal.
Poner CheapTokens en crushrc#
El README describe crushrc como "solo Bash con algunos builtins específicos de Crush". Ese es todo el truco: escribes shell, y provider add y model add son comandos que Crush entiende. Crush busca el archivo en este orden: ./.crushrc, ./crushrc y luego ~/.
Así que tú eliges dónde vive. Un .crushrc local del proyecto se aplica a un repositorio; el de ~/.config/crush/ se aplica en todas partes. Para la primera prueba, el global es más fácil.
Primero pon la clave en tu shell. Créala en tu panel de CheapTokens y expórtala (el valor de abajo es un marcador de posición):
export CHEAPTOKENS_API_KEY="your-key-here"Luego abre ~/ y escribe:
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 32768Algunos detalles merecen un segundo vistazo:
-es el nombre de Crush para los proveedores compatibles con OpenAI que no son OpenAI en sí.- type completions responseses para el proxy de OpenAI,messagespara los compatibles con Anthropic. El antiguoopenai-compatsigue funcionando y se migra.- La URL base termina en
/v1. Esa es la dirección de CheapTokens para Chat Completions al estilo OpenAI; la lista completa de endpoints está en la documentación de CheapTokens. $CHEAPTOKENS_lo expande el shell, así que el archivo no contiene ningún secreto y unAPI_ KEY .crushrcde proyecto puede ir a git sin riesgo.- El id del modelo es el completo,
deepseek-. La API rechaza un id corto comoai/ DeepSeek- V4- Flash- 0731 deepseek-. Tras el nombre del proveedor viene una segunda barra, porque el id mismo tiene una.v4- flash -son los 380K redondeados de DeepSeek-V4-Flash, y- context- window 380000 -es su límite por respuesta. Estos son los límites reales del modelo en CheapTokens: 380K de contexto y hasta 32.768 tokens por respuesta. Ponlos en- default- max- tokens 32768 model adden lugar de dejar los valores de ejemplo del README (64000 y 5000).

El README muestra model add solo con un id simple (deepseek/). Tu id tiene una barra extra, así que el selector de modelos del siguiente paso es la comprobación real: si el modelo aparece bajo cheaptokens, la línea se leyó como se esperaba.
¿Quieres otro modelo con el mismo saldo? Añade otra línea model add con su propio id y límites. GLM-5.3-Flash es zai- (390K de contexto, hasta 8.192 tokens por respuesta), y MiniMax-M2.7 es MiniMaxAI/ (180K de contexto, hasta 8.192 tokens por respuesta). Mantén - igual o por debajo del límite de respuesta del modelo que añadas.
Abrir Crush y ejecutar una primera tarea#
Inicia crush en una carpeta de proyecto. Pulsa Ctrl+l para abrir el selector de modelos y elige DeepSeek-V4-Flash del grupo cheaptokens. El README no describe un comando de crushrc para el modelo por defecto, así que el selector es la vía.

Ahora dale algo pequeño y verificable, por ejemplo: Read this repo and tell me which file starts the app, in two lines. Una respuesta que nombre un archivo real significa que toda la cadena funciona: clave, URL base, id del modelo.
Pruébalo tú mismoPruébalo: pulsas Ctrl+l y el modelo no está en la lista. ¿Qué compruebas primero?Mostrar respuesta
La ubicación del archivo y la variable. Crush busca la configuración por prioridad: ./.crushrc, ./crushrc, ~/. Comprueba que el proyecto no tenga otro .crushrc o crushrc con contenido distinto, y que el proveedor se añadiera en el archivo que editaste. Y echo $CHEAPTOKENS_ debe imprimir la clave en el mismo shell donde inicias crush.
Los avisos de permisos están ahí a propósito. permissions allow <tools> en crushrc permite que las herramientas nombradas se ejecuten sin preguntar; --yolo omite todos los avisos, y el propio README dice que hay que tener mucho cuidado con él.
Cuánto cuesta una sesión de programación#
Un paso de agente en una terminal tiene mucha entrada: Crush envía el historial, el contenido de los archivos y la salida de las herramientas cada vez, y recibe una respuesta modesta. Digamos que un paso medio envía 30.000 tokens y recibe 2.000. En DeepSeek-V4-Flash ese paso cuesta $0.00065, y el precio es el mismo a cualquier hora, sin horas punta. Contando entrada y salida juntas, es más barato que el precio de referencia de OpenRouter.
Sustituye por tus propios números: una sesión de 40 pasos así está a un deslizador de distancia.
Calculadora de costos
Un día de un agente de programación en Crush
Tokens de entrada por solicitud: 30.000 · Tokens de salida por solicitud: 2000 · Solicitudes por día: 40
| Modelo | Por día | Por mes |
|---|---|---|
| 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 |
La entrada por paso crece a medida que avanza la sesión, así que comprueba una sesión larga contra la ventana de 380K en lugar de contra la media. Los precios actuales por token de cada modelo están en la página de precios.
Si no funciona#
Crush escribe un log en tu proyecto, .. Léelo antes de adivinar:
crush logs --tail 500
crush logs --follow
crush --debugTambién puedes poner option debug true en crushrc para mantener la salida de depuración activada. Luego compara lo que ves con el estado HTTP que devolvió la API:
- 401: la clave se envió pero no se reconoció: una errata o una clave sustituida. Créala o cópiala de nuevo.
- 402: el saldo o el límite de la clave se ha agotado. Una petición sin clave alguna se ve igual, así que ejecuta
echo $CHEAPTOKENS_en el shell donde iniciasAPI_ KEY crush. Si la clave está ahí, recarga el saldo. - 429: demasiadas peticiones en poco tiempo. Espera el valor de
Retry-Aftery vuelve a intentarlo. - 400 o "model not found": mira el id del modelo. Debe ser el completo de la documentación, con el prefijo del proveedor.
Si vienes de crush.json, ten en cuenta que ~/ es el estado de Crush, no una configuración; no lo edites a mano.
Para la misma configuración en otras herramientas, consulta Conectar Aider con CheapTokens y Conectar Kilo Code con CheapTokens. La página del modelo para DeepSeek barato tiene los límites del modelo usado aquí.



