Voltar ao blog

Ferramentas e integraçõesGuia

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.

Por CheapTokens TeamPublicado em 6 min de leitura

Arquivo de configuração do Crush com as linhas de provider e modelo do CheapTokens
Nesta página
  1. Instale o Crush
  2. Coloque o CheapTokens no crushrc
  3. Abra o Crush e execute uma primeira tarefa
  4. Quanto custa uma sessão de programação
  5. Se não funcionar

Para conectar o Crush ao CheapTokens, coloque dois comandos no seu crushrc: provider add com a URL base https://api.cheaptokens.dev/v1 e --type completions, 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

bash
brew install charmbracelet/tap/crush

npm

bash
npm install -g @charmland/crush

winget

bash
winget install charmbracelet.crush

Go

bash
go install github.com/charmbracelet/crush@latest

O 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 ~/.config/crush/crushrc.

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):

bash
export CHEAPTOKENS_API_KEY="your-key-here"

Depois abra ~/.config/crush/crushrc e escreva:

bash
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 32768

Alguns detalhes merecem uma segunda olhada:

  • --type completions é o nome do Crush para providers compatíveis com OpenAI que não são a própria OpenAI. responses é para proxy da OpenAI, messages para os compatíveis com Anthropic. O antigo openai-compat ainda 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_API_KEY é expandido pelo shell, então o arquivo não contém segredo e um .crushrc de projeto pode ir para o git com segurança.
  • O id do modelo é o completo, deepseek-ai/DeepSeek-V4-Flash-0731. Um id curto como deepseek-v4-flash é rejeitado pela API. Depois do nome do provider vem uma segunda barra, porque o próprio id tem uma.
  • --context-window 380000 é o valor arredondado de 380K do DeepSeek-V4-Flash, e --default-max-tokens 32768 é 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 model add em vez de deixar os valores de exemplo do README (64000 e 5000).
O arquivo crushrc com um provider e um modelo do CheapTokens
crushrc: uma linha de provider e uma linha de modelo; a chave vem do ambiente

O README mostra model add apenas com um id simples (deepseek/deepseek-chat). 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-org/GLM-5.3-Flash (contexto de 390K, até 8.192 tokens por resposta), e MiniMax-M2.7 é MiniMaxAI/MiniMax-M2.7 (contexto de 180K, até 8.192 tokens por resposta). Mantenha --default-max-tokens 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.

Do crushrc à primeira resposta: provider, modelo, seletor, tarefa
O caminho da configuração à primeira resposta

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, ~/.config/crush/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_API_KEY 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

ModeloPor diaPor mês
GLM-5.3-Flash$0.0272$0.816
DeepSeek-V4-Flash$0.026$0.78
MiniMax-M2.7$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, ./.crush/logs/crush.log. Leia-o antes de adivinhar:

bash
crush logs --tail 500
crush logs --follow
crush --debug

Você 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_API_KEY no shell em que você inicia o crush. Se a chave estiver lá, recarregue o saldo.
  • 429: muitas requisições em pouco tempo. Aguarde o valor de Retry-After e 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 ~/.local/share/crush/crush.json é 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.