Conecte o Crush ao CheapTokens: provider, modelo e chave no crushrc
Adicione o CheapTokens ao Crush com dois comandos no crushrc: um provider de completions e um modelo com limites reais; a chave vem de uma variável de ambiente.

Nesta página
Para conectar o Crush ao CheapTokens, coloque dois comandos no seu crushrc: provider add com a URL base https:/ e -, e model add com o id completo do modelo. Depois abra o Crush, pressione Ctrl+l, escolha o modelo e dê uma tarefa a ele. A chave fica em uma variável de ambiente, não no arquivo.
Se você seguiu um guia mais antigo, ele provavelmente edita crush.json. O Crush ainda lê esse arquivo, mas o README o chama de obsoleto: a configuração atual é crushrc, e desde a v0.99.0 (29 de outubro de 2026) o provider --type descreve o formato da API, não o fornecedor. As fontes são o README do Crush e as notas de versão, verificadas em 10 de novembro de 2026; a versão estável mais recente nessa data é a v0.100.0.
Instale o Crush#
Escolha o gerenciador de pacotes que você já tem. O Crush é um único binário, então não importa qual caminho você seguir.
Instale o Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestO README também lista repositórios apt e yum, Scoop, Nix, Arch e FreeBSD. Execute crush uma vez para verificar se ele inicia, depois saia.
Coloque o CheapTokens no crushrc#
O README descreve o crushrc como "apenas Bash com alguns builtins específicos do Crush". Esse é o truque inteiro: você escreve shell, e provider add e model add são comandos que o Crush entende. O Crush procura o arquivo nesta ordem: ./.crushrc, ./crushrc, depois ~/.
Então você escolhe onde ele fica. Um .crushrc local do projeto se aplica a um repositório; o de ~/.config/crush/ se aplica a todos. Para a primeira tentativa, o global é mais fácil.
Primeiro coloque a chave no seu shell. Crie-a no seu painel do CheapTokens e exporte-a (o valor abaixo é um placeholder):
export CHEAPTOKENS_API_KEY="your-key-here"Depois abra ~/ e escreva:
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 32768Alguns detalhes merecem uma segunda olhada:
-é o nome do Crush para providers compatíveis com OpenAI que não são a própria OpenAI.- type completions responsesé para proxy da OpenAI,messagespara os compatíveis com Anthropic. O antigoopenai-compatainda funciona e é migrado.- A URL base termina em
/v1. Esse é o endereço do CheapTokens para Chat Completions no estilo OpenAI; a lista completa de endpoints está na documentação do CheapTokens. $CHEAPTOKENS_é expandido pelo shell, então o arquivo não contém segredo e umAPI_ KEY .crushrcde projeto pode ir para o git com segurança.- O id do modelo é o completo,
deepseek-. Um id curto comoai/ DeepSeek- V4- Flash- 0731 deepseek-é rejeitado pela API. Depois do nome do provider vem uma segunda barra, porque o próprio id tem uma.v4- flash -é o valor arredondado de 380K do DeepSeek-V4-Flash, e- context- window 380000 -é o limite por resposta dele. Esses são os limites reais do modelo no CheapTokens: contexto de 380K e até 32.768 tokens por resposta. Coloque-os em- default- max- tokens 32768 model addem vez de deixar os valores de exemplo do README (64000 e 5000).

O README mostra model add apenas com um id simples (deepseek/). Seu id tem uma barra extra, então o seletor de modelos no próximo passo é a verificação real: se o modelo aparecer em cheaptokens, a linha foi lida como pretendido.
Quer outro modelo no mesmo saldo? Adicione mais uma linha model add com seu próprio id e limites. GLM-5.3-Flash é zai- (contexto de 390K, até 8.192 tokens por resposta), e MiniMax-M2.7 é MiniMaxAI/ (contexto de 180K, até 8.192 tokens por resposta). Mantenha - igual ou abaixo do limite de resposta do modelo que você adicionar.
Abra o Crush e execute uma primeira tarefa#
Inicie crush em uma pasta de projeto. Pressione Ctrl+l para abrir o seletor de modelos e escolha DeepSeek-V4-Flash no grupo cheaptokens. O README não descreve um comando crushrc para o modelo padrão, então o seletor é o caminho.

Agora dê a ele algo pequeno e verificável, digamos: Read this repo and tell me which file starts the app, in two lines. Uma resposta que nomeia um arquivo real significa que toda a cadeia funciona: chave, URL base, id do modelo.
Experimente você mesmoTente: você pressiona Ctrl+l e o modelo não está na lista. O que você verifica primeiro?Mostrar resposta
O local do arquivo e a variável. O Crush procura a configuração por prioridade: ./.crushrc, ./crushrc, ~/. Verifique se o projeto não tem outro .crushrc ou crushrc com conteúdo diferente, e se o provider foi adicionado no arquivo que você editou. E echo $CHEAPTOKENS_ deve imprimir a chave no mesmo shell em que você inicia o crush.
Os prompts de permissão estão lá de propósito. permissions allow <tools> no crushrc permite que ferramentas nomeadas rodem sem perguntar; --yolo pula todos os prompts, e o próprio README diz para ter muito cuidado com ele.
Quanto custa uma sessão de programação#
Um passo de agente em um terminal é pesado em entrada: o Crush envia o histórico, o conteúdo dos arquivos e a saída das ferramentas toda vez, e recebe uma resposta modesta. Digamos que um passo médio envie 30.000 tokens e receba 2.000. No DeepSeek-V4-Flash esse passo custa $0.00065, e o preço é o mesmo a qualquer hora, sem horários de pico. Contando entrada e saída juntas, isso é mais barato que o preço de referência do OpenRouter.
Troque pelos seus próprios números: uma sessão de 40 passos assim está a um slider de distância.
Calculadora de custos
Um dia de um agente de programação no Crush
Tokens de entrada por solicitação: 30.000 · Tokens de saída por solicitação: 2.000 · Solicitações por dia: 40
| Modelo | Por dia | Por mês |
|---|---|---|
| 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 |
A entrada por passo cresce conforme a sessão avança, então verifique uma sessão longa contra a janela de 380K em vez da média. Os preços atuais por token de cada modelo estão na página de preços.
Se não funcionar#
O Crush grava um log no seu projeto, .. Leia-o antes de adivinhar:
crush logs --tail 500
crush logs --follow
crush --debugVocê também pode colocar option debug true no crushrc para manter a saída de debug ativada. Depois compare o que vê com o status HTTP retornado pela API:
- 401: a chave foi enviada mas não reconhecida: um erro de digitação ou uma chave substituída. Crie ou copie novamente.
- 402: o saldo ou o limite da chave acabou. Uma requisição sem chave nenhuma parece igual, então execute
echo $CHEAPTOKENS_no shell em que você inicia oAPI_ KEY crush. Se a chave estiver lá, recarregue o saldo. - 429: muitas requisições em pouco tempo. Aguarde o valor de
Retry-Aftere tente de novo. - 400 ou "model not found": olhe o id do modelo. Ele deve ser o completo da documentação, com o prefixo do fornecedor.
Se você veio do crush.json, note que ~/ é o estado do Crush, não uma configuração; não o edite à mão.
Para a mesma configuração em outras ferramentas, veja Conecte o Aider ao CheapTokens e Conecte o Kilo Code ao CheapTokens. A página do modelo para DeepSeek barato tem os limites do modelo usado aqui.



