Turo: instalás una vez y todos tus coding agents mandan 70% menos tokens

Turo: instalás una vez y todos tus coding agents mandan 70% menos tokens

Hay un impuesto silencioso en cada sesión con un agente: las palabras. Un system prompt anda entre 50k y 200k tokens, y la mayoría de esas palabras cargan gramática, no significado —artículos, preposiciones, hedges, cortesías—. Pagás por cada una, en cada turno, para siempre. Turo, que apareció esta semana en Hacker News como “an aggressive token-saving proxy for CLI AI agents”, tiene una respuesta directa: apuntá a las palabras que importan y tirá el resto.

El pitch son dos palabras —Point more. Token less.— y el ejemplo estrella del README lo hace concreto. Una instrucción de pull-request review de 138 tokens queda en 54 tokens con el significado intacto (−61%), o en 41 tokens con --level ultra (−70%), donde las inflexiones colapsan a su forma base de diccionario. El detalle que conviene tener claro de entrada: esos conteos son la estimación propia de turo, estilo cl100k, no un tokenizer real —el README lo dice sin vueltas, “treat them as a trend, not a bill”.

Lo que turo hace en concreto es pasar tu texto por cuatro etapas, todas activadas por default: borra filler (please, I think, of course), cambia palabras por sinónimos de menos tokens (utilizeuse), cambia palabras por la palabra más corta de su definición (approachcome), y después tira los stopwords restantes y se queda solo con las content words —nouns y verbs en ultra—, deduplicadas y en orden de lectura. Repite hasta que la salida deja de achicarse. El resultado no es prosa. Es un keyword stream, y ese es el trade-off deliberado: turo está pensado para texto que solo va a leer un modelo.

Esa es también la forma más limpia de ubicarlo frente a caveman, la herramienta hermana con la que se compara explícitamente. Caveman recorta filler con regex y mantiene prosa legible; turo corre ese mismo pase de filler y después sigue —clasificando por POS, lematizando, glosando—, cambiando legibilidad por un conteo mucho más chico. La regla que da el propio README: usá caveman cuando el resultado lo lee una persona, usá turo cuando lo lee solo un modelo.

La parte que lo hace valer la instalación es el alcance. npx turo instala el binario y registra la skill de turo y el comando /turo con cada coding agent que encuentra en tu máquina —Claude Code, Codex, Gemini CLI, opencode, Cursor, Windsurf, Cline, Copilot, y 20+ más—. Lo instalás una vez; todos los agentes reciben el mismo reducer. ¿Preferís solo el binario? brew install kdeps/tap/turo, go install, o el script de curl. Y para los agentes que turo no puede tocar desde adentro, hay un proxy: turo run claude levanta un proxy local, apunta la variable de base-URL del agente hacia él, y reduce cada request antes de que llegue al endpoint real —la respuesta vuelve en streaming, sin tocar.

Dos guardrails lo mantienen prolijo. Los bloques de código, file paths, URLs, números de versión, nombres de API y error strings pasan verbatim —turo solo toca prosa—. Y nunca emite una salida más grande que la entrada: si una etapa no ahorra tokens, el original pasa sin cambios. Hay además una pequeña capa de observabilidad: turo gain totaliza lo que ahorraste (por proyecto), turo discover escanea tu historial de Claude Code para estimar cuánto habrías ahorrado, y turo doctor chequea que todo esté bien cableado.

Una curiosidad para el final: un nivel wenyan cambia cada palabra sobreviviente por un solo carácter del chino clásico (water → 水). Solo gana en tokenizers optimizados para CJK como Qwen o DeepSeek —en modelos de OpenAI los caracteres cuestan más, así que es un dial de nicho, no el default—. Pero te dice hasta dónde se puede llevar la idea de “la menor cantidad de tokens posible”.

Si venís siguiendo la veta de eficiencia de tokens, esto rima con Headroom, aunque el mecanismo es otro: Headroom juega con caching y no toca el contenido; turo directamente reescribe tu prompt a puras palabras con carga semántica.

¿Le confiarías a un reducer lossy tu system prompt, o hay contexto que jamás recortarías? ¿Dónde ponés el límite entre ahorrar tokens y perder matiz?