Como economizar tokens do Claude Code

Matheus Cardoso

Cada comando que o Claude Code executa no terminal consome tokens. Um git status verboso, logs de teste com centenas de linhas, listagens de diretório completas — tudo vai direto pro contexto do modelo. O rtk é um proxy de linha de comando que filtra e comprime esse output antes que ele chegue ao LLM, reduzindo o consumo em 60-90%.


O problema

O Claude Code usa a ferramenta Bash para interagir com o projeto. Cada output bruto de comando — espaços, metadados, boilerplate — é contado como tokens. Em um projeto TypeScript médio, uma sessão de 30 minutos consume cerca de 118.000 tokens só em comandos de shell.

Tokens desperdiçados com ruído de output são custo sem valor. O Claude não precisa ver 3.000 tokens de git status quando 200 tokens com as informações relevantes são suficientes.

git status3,000 tokensoutput bruto
npm test25,000 tokenslogs completos
cat file.ts40,000 tokensarquivo inteiro

Como funciona

O rtk age como um proxy transparente entre o Claude e o shell. O hook instalado reescreve automaticamente comandos Bash — git status vira rtk git status — antes da execução. O Claude nunca vê a reescrita, apenas recebe o output comprimido.

Sem rtkgit status
~3.000 tokens
Com rtkgit status → rtk git status
~200 tokens

Quatro estratégias são aplicadas por tipo de comando: filtragem inteligente (remove ruído, comentários, boilerplate), agrupamento (agrega itens similares), truncamento (mantém contexto relevante) e deduplicação (colapsa linhas repetidas com contagem).


Instalação

A forma mais simples é via Homebrew. Para Linux ou sem brew, existe o instalador via curl:

# macOS (recommended)
brew install rtk

# Linux / macOS via curl
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

# verify
rtk --version
rtk gain       # shows token savings stats

Configuração

Após instalar, execute rtk init -g para configurar o hook no Claude Code:

# configure the hook for Claude Code
rtk init -g

# restart Claude Code, then test
git status  # automatically rewritten to rtk git status

Reinicie o Claude Code. A partir daí, comandos como git status são automaticamente reescritos e filtrados sem nenhuma mudança no workflow.


Economia de tokens

Estimativas em um projeto TypeScript/Rust médio, sessão de 30 minutos:

git status3,000600-80%
git diff10,0002,500-75%
cat / read40,00012,000-70%
grep / rg16,0003,200-80%
npm/cargo test25,0002,500-90%
Total~118,000~23,900-80%

Comandos principais

Os comandos mais usados no desenvolvimento diário — todos com output comprimido automaticamente via hook:

# git — compact output for all operations
rtk git status           # grouped changed files
rtk git log -n 10        # one-line commits
rtk git diff             # condensed diff
rtk git commit -m "msg"  # returns "ok abc1234"
rtk git push             # returns "ok main"

# files — filtered and truncated
rtk ls .                 # token-optimized directory tree
rtk read file.ts         # smart file reading
rtk grep "pattern" .     # grouped search results

# tests — failures only
rtk npm test
rtk cargo test           # -90% vs raw output
rtk pytest

Ferramentas nativas

O hook funciona apenas em chamadas de ferramenta Bash. Ferramentas nativas do Claude Code como Read, Grep e Glob não passam pelo hook. Para esses casos, use comandos de shell (cat, rg, find) ou chame o rtk diretamente:

# use shell commands instead of native Claude Code tools
# so the hook (and rtk) can intercept them

cat file.ts      # triggers rtk read via hook
rg "pattern" .   # triggers rtk grep via hook
find . -name "*.ts"  # triggers rtk find via hook

# or call rtk directly
rtk read file.ts
rtk grep "pattern" .
rtk find "*.ts" .

Mais

rtk é open-source com licença MIT. Single binary Rust, sem dependências, overhead menor que 10ms. Código e documentação em github.com/rtk-ai/rtk.