1. ¿Qué es un token?
Se le llama token a la unidad mínima de texto que procesa un modelo de IA. No es una palabra ni un carácter, sino un fragmento intermedio, que puede variar dependiendo de cada modelo de IA o del idioma que utilices para comunicarte.
En inglés se suele decir que 1 token equivale aproximadamente a unos 4 caracteres. En español la proporción empeora, ya que los tokenizadores están entrenados con textos en inglés: una misma palabra puede dividirse en más fragmentos en español, y a la larga, el consumo ser mayor.
Dentro de una conversación con un agente hay varios tipos de tokens:
- Entrada/Input: Todo lo que se envía al modelo (prompt, historial, salida de tools, archivos...)
- Salida/Output: Lo que genera el modelo (respuesta, código, razonamientos...)
- Contexto: La ventana total de tokens que el modelo puede ver en una llamada.
- Caché: Tokens de entrada que se reutilizan de una llamada anterior (más baratos).
- Razonamiento: Tokens internos (salida) que generan algunos modelos antes de responder.
📌 En cada prompt enviado a la IA, el agente no envía sólo tu último mensaje. Envía todo el contexto necesario para que el modelo sepa qué está pasando. Cuanto más largo sea ese contexto, más tokens de entrada consumes en cada respuesta. Recuerda que la facturación normalmente se hace cada 1M (un millón de tokens), y los tokens de salida suelen ser más caros que los de entrada.
2. ¿Por qué gasto tantos tokens?
La respuesta a esto no es sencilla: Depende de cómo uses la IA. Dos personas pueden hacer la misma tarea con el mismo modelo y una gastar diez veces más que la otra. Así que para poder reducir nuestro gasto, lo primero es descubrir cuanto estamos gastando.
Aún así, repasemos antes algunos detalles que pueden ser útiles:
- El contexto: Cada prompt reenvía el historial completo de la conversación. Usar caché.
- System prompt + instrucciones:
AGENTS.md, skills, tools... ocupan contexto desde el primer mensaje. - Los MCP: Cada MCP añade definiciones de tools que se envían en cada turno, se usen o no.
- Los archivos referenciados: Leer archivos cuando basta parte concreta (peor si se lee varias veces).
- La salida de comandos: Cuidado al usar CLI con salidas muy grandes (logs,
git diffenorme, etc). - Bucles del agente: Si el agente reintenta o hace algo varias veces (o con cambios pequeños).
- El modelo elegido: Usar un modelo frontera (grande) para tareas pequeñas gasta en exceso.
- Los subagentes: Cada subagente tiene su propio contexto, por lo que duplican consumo.
- Razonamiento: Los modelos que «piensan» antes de responder, generan más tokens extra.
Si quieres profundizar en cómo cambia la forma de programar con IA, tienes el post Cómo es programar en la era Post-IA, donde hablo de los distintos tipos de desarrolladores.
3. Instalación de tokscale
Antes de intentar reducir nada, vamos a investigar cuánto gastas cuando usas agentes. Para ello, vamos a utilizar Tokscale, una herramienta open source (MIT) que lee los registros locales de tus agentes y te muestra el consumo de tokens y el coste estimado.

Aunque OpenCode ya trae opencode stats, Tokscale te da más información, puede ofrecerte información de prácticamente cualquier agente utilizado y permite comparar por modelo, proyecto, sesión o fechas.
Requisitos
Sólo necesitas Node.js o Bun. La herramienta se ejecuta con pnpx, bunx o npx, así que no hace falta ni instalarla de forma permanente. La primera ejecución puede tardar unos segundos mientras busca el paquete y escanea los registros:
pnpx tokscale@latest # Si estás usando pnpm
bunx tokscale@latest # Si estás usando bun
npx tokscale@latest # Si estás usando npm
Se abrirá una TUI (interfaz de texto) donde podremos ver nuestros datos.
Dónde están los datos
Tokscale trabaja con los ficheros de sesión que ya generan los agentes. Estos ficheros pueden estar en diferentes rutas dependiendo del agente que utilices. Si quieres investigar, en GitHub tienen las rutas que utiliza cada agente. Tokscale guardará sus datos en ~/.config/tokscale/.
Tokscale funciona en local por defecto. No envía tus sesiones a ningún servidor salvo que ejecutes
tokscale submit, una funcionalidad opcional para publicar tus estadísticas en el leaderboard. Para calcular los precios estimados, consulta catálogos públicos como LiteLLM u OpenRouter. Si no quieres ni eso, usa--offliney usará la caché de precios ya descargada.
4. Uso de tokscale
El comando principal abre la TUI interactiva:
pnpx tokscale@latest
La interfaz de Tokscale tiene varias secciones. Puedes cambiar entre ellas con las flechas, con TAB o haciendo clic con el ratón:
| Vista | Qué muestra |
|---|---|
| Overview | Resumen general, gráfico de actividad y modelos más usados. |
| Usage | Cuotas de suscripciones, si tienes credenciales. |
| Models | Tokens y coste desglosados por modelo. |
| Daily | Consumo agrupado por días. |
| Hourly | Consumo agrupado por horas. |
| Monthly | Consumo agrupado por mes. |
| Sessions | Detalle por sesión de cada agente (útil para ver costo por funcionalidades). |
| Projects | Consumo agrupado por proyecto o directorio de trabajo. |
| Stats | Gráfico de contribución estilo GitHub. |
| Agents | Consumo separado por modalidad del agente. |
También existe una vista Minutely (por minuto), oculta por defecto porque es más costosa de calcular. Se activa con
minutelyTabEnableden~/.config/tokscale/settings.json. Esta funcionalidad es muy útil para detectar acciones muy costosas y aprender sobre como trabajamos.
5. Analizar datos
La interfaz es cómoda, pero para entender nuestro consumo conviene ir desde lo general a lo más concreto:
-
Total: Abre
tokscaley revisa el resumen de Overview para tener idea general. -
Modelos: ¿Qué modelo es el que ha gastado más? ¿Es un modelo grande? ¿Está haciendo trabajo que podría hacer otro más barato?
-
Proyectos: Puedes observar que proyecto te ha consumido más tokens.
-
Sesiones: Busca sesiones con muchas llamadas y poco resultado. Es una buena forma de aprender a optimizar.
-
Daily/Hourly: Te muestran si hay gasto constante. Minutely, si lo activas, puedes verlo todo más a detalle.
Cómo leer las columnas
En cada una de estas pestañas encontraremos tablas con varias columnas:
| Columna | Qué significa |
|---|---|
| Msgs | Recuerda que un agente encadena múltiples acciones y mensajes. |
| Input | Tokens enviados al modelo. Si es muy alto, el contexto está inflado. |
| Output | Tokens generados. Si es muy alto, el modelo está siendo muy verboso o la tarea es demasiado amplia. |
| Cache Read | Tokens de entrada reutilizados desde caché (más baratos). Cuanto más alto, mejor. |
| Cache Write | Tokens que se han almacenado en caché. Muchos modelos no lo soportan. |
| Total | Cálculo de la suma de los tokens de entrada y salida, incluyendo los de caché. |
| Cost | Coste estimado sin subsidiar, si usaras la API (precios de LiteLLM/OpenRouter). |
6. Comandos CLI de tokscale
La interfaz TUI de tokscale está muy bien, pero los comandos te permiten automatizar y crear informes. Esto puede ser especialmente útil para hacerte una API que consulte información o generar reportes para enviarlos por email o para revisión cada cierto tiempo.
Veamos los comandos más útiles:
| Comando | Qué hace |
|---|---|
tokscale |
Abre la interfaz de texto interactiva. |
tokscale --json |
Te muestra los datos en formato JSON (útil para scripts). |
tokscale --client codex |
Filtra por agente. Puedes usar varios: opencode,claude,codex. |
tokscale --today |
Muestra los datos de hoy. |
tokscale --yesterday |
Muestra los datos de ayer. |
tokscale --week |
Muestra los datos de esta semana. |
tokscale --month |
Muestra los datos de este mes. |
tokscale --year 2026 |
Muestra los datos del año indicado. |
tokscale report --week |
Hace un informe de la última semana. |
Con
tokscale --since 2026-01-01 --until 2026-01-31puedes establecer una franja de tiempo personalizada.
Agrupar los resultados
La opción --group-by permite agrupar filas. Es una de las opciones más útiles para analizar:
tokscale models --group-by model # Un modelo por fila
tokscale models --group-by client,model # Cliente + modelo
tokscale models --group-by client,provider,model # Más granular
tokscale models --group-by session,model
Precios y suscripciones
tokscale pricing "claude-opus-5-5" # Precio de un modelo
tokscale usage # Uso de tus suscripciones
tokscale config list # Ver tu config actual
Si trabajas sin red o quieres evitar consultas externas, usa --offline. Necesitarás haber refrescado antes la caché de precios:
tokscale pricing refresh # Hazlo antes, con conexión
tokscale --offline



