Cómo ahorrar tokens de Claude Code
Matheus Cardoso
Cada comando que Claude Code ejecuta en la terminal consume tokens. Un git status verboso, logs de pruebas con cientos de líneas, listados completos de directorio — todo va directo al contexto del modelo. rtk es un proxy de línea de comandos que filtra y comprime ese output antes de que llegue al LLM, reduciendo el consumo en 60-90%.
El problema
Claude Code usa la herramienta Bash para interactuar con el proyecto. Cada output crudo de comando — espacios, metadatos, boilerplate — se cuenta como tokens. En un proyecto TypeScript medio, una sesión de 30 minutos consume alrededor de 118.000 tokens solo en comandos de shell.
Los tokens desperdiciados en ruido de output son costo sin valor. Claude no necesita 3.000 tokens de git status cuando 200 tokens con la información relevante son suficientes.
Cómo funciona
rtk actúa como un proxy transparente entre Claude y el shell. El hook instalado reescribe automáticamente los comandos Bash — git status se convierte en rtk git status — antes de la ejecución. Claude nunca ve la reescritura, solo recibe el output comprimido.
Se aplican cuatro estrategias por tipo de comando: filtrado inteligente (elimina ruido, comentarios, boilerplate), agrupamiento (agrega elementos similares), truncamiento (mantiene contexto relevante) y deduplicación (colapsa líneas repetidas con conteo).
Instalación
La forma más simple es vía Homebrew. Para Linux o sin brew, existe un instalador vía 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 statsConfiguración
Después de instalar, ejecuta rtk init -g para configurar el hook en Claude Code:
# configure the hook for Claude Code
rtk init -g
# restart Claude Code, then test
git status # automatically rewritten to rtk git statusReinicia Claude Code. A partir de ahí, comandos como git status se reescriben y filtran automáticamente sin ningún cambio en el workflow.
Ahorro de tokens
Estimaciones en un proyecto TypeScript/Rust medio, sesión de 30 minutos:
Comandos principales
Los comandos más usados en el desarrollo diario — todos con output comprimido automáticamente vía 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 pytestHerramientas nativas
El hook solo funciona en llamadas de herramienta Bash. Las herramientas nativas de Claude Code como Read, Grep y Glob no pasan por el hook. Para esos casos, usa comandos de shell (cat, rg, find) o llama a rtk directamente:
# 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" .Más
rtk es open-source con licencia MIT. Binary único en Rust, sin dependencias, overhead menor a 10ms. Código y documentación en github.com/rtk-ai/rtk.