MXterm Pro

Token Meter: consumo de Claude Code y Codex

El Token Meter lee las transcripciones que Claude Code, Codex, Gemini CLI y omp escriben en disco y suma los totales en la barra de título. También puede mostrar los límites de tu plan y, para seis proveedores de API, el saldo, la cuota o el gasto de tu cuenta. Los límites del plan y los límites en vivo de Codex tienen cada uno su propio interruptor; los proveedores de cuentas se activan al guardar una clave. El popover lista todos los proveedores que configuraste, y el que fijas va primero.

El chip de la barra de título

La barra de título muestra un chip. Haz clic para abrir un popover con una fila por cada proveedor que tenga algo que mostrar: Claude Code, Codex y Gemini cuando se encuentran sus carpetas de transcripciones en este equipo, Otros agentes cuando omp facturó en los últimos 30 días a una cuenta que no es ninguna de esas, y cada proveedor de cuenta para el que guardaste una clave (Kimi también aparece cuando Kimi Code CLI tiene la sesión iniciada en este equipo). Las filas mantienen un orden fijo: Claude Code, Codex, Gemini, Otros agentes, DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter, Z.ai, salvo el proveedor que fijes, que va primero (consulta "Fijar un proveedor arriba", más abajo).

El chip muestra el proveedor que esté más cerca de un límite. Lo que muestra depende de lo que realmente se sabe:

  • Un porcentaje cuando algún proveedor publicó una ventana de cuota: la más restringida de todas. El ícono del proveedor aparece al lado, y al pasar el cursor sobre el chip se indica la ventana y cuándo se restablece.
  • Un conteo de tokens cuando ningún proveedor publica una cuota: los tokens usados en las últimas 5 horas, leídos de las transcripciones en este equipo, para la primera fila que exista entre Claude Code, Codex, Gemini y Otros agentes.
  • El saldo más bajo cuando no hay filas de transcripciones locales (Claude Code, Codex, Gemini, Otros agentes), ningún proveedor publica una cuota y al menos un proveedor informa un saldo en dólares estadounidenses: el menor, como importe (por ejemplo $12.34), con el ícono de ese proveedor. Un saldo no tiene tope, así que nunca se convierte en porcentaje, y un saldo en yuanes nunca se convierte a dólares para la comparación.
  • Ninguna cifra cuando no hay filas de transcripciones locales y los proveedores que configuraste informan solo un gasto, o solo saldos en yuanes. Entonces el chip muestra un ícono de medidor simple.

Un porcentaje es neutro por debajo de 60 %, ámbar desde 60 % y rojo desde 85 %. Ese color solo se aplica a un porcentaje que publicó un proveedor, nunca a un conteo de tokens ni a un saldo.

El chip se oculta por completo cuando no hay nada que decir: ninguna carpeta de transcripciones de agentes en este equipo y ninguna clave de proveedor guardada. El primer escaneo empieza 8 segundos después de abrir la app, y las primeras cifras aparecen cuando termina.

De dónde salen los números

AgenteCarpetaArchivos que lee
Claude Code~/.claude/projectsTranscripciones .jsonl de la carpeta y sus subcarpetas
Codex~/.codexArchivos de sesión .jsonl de la carpeta y sus subcarpetas
Gemini CLI~/.gemini/tmpArchivos de conversación .jsonl de la carpeta y sus subcarpetas
omp~/.omp/agent/sessionsArchivos de sesión .jsonl de la carpeta y sus subcarpetas

El uso se cuenta por turno y se agrupa por hora y por modelo. Se omiten los archivos que no se modificaron en los últimos 30 días, y los datos de más de 30 días se descartan. omp trabaja con varios proveedores, así que cada turno de omp va a la fila de la cuenta a la que se facturó: Anthropic a Claude Code, OpenAI a Codex, Google a Gemini y cualquier otro (DeepSeek, MiniMax y demás) a Otros agentes. Un turno que omp importó de una sesión de Claude Code o de Codex no se cuenta dos veces. OpenCode y los demás agentes no se cuentan: la app solo lee las cuatro carpetas de arriba.

MXterm Pro escribe ~/.codex/config.toml para conectar Codex con su servidor MCP (consulta Agentes de código y Control Room, antes War Room), lo que crea la carpeta ~/.codex. Desde el siguiente inicio puede aparecer en el popover una fila de Codex con 0, aunque Codex no esté instalado.
El Token Meter busca las carpetas de transcripciones en tu carpeta de usuario: HOME cuando está definida, si no USERPROFILE, si no HOMEDRIVE más HOMEPATH. Una app de Windows abierta desde el Explorador suele tener solo USERPROFILE. La versión para Windows está sin firmar, y el escaneo de transcripciones está verificado solo en macOS.

El popover: una fila por proveedor

Cada fila muestra el dato principal de ese proveedor: hasta tres barras pequeñas (5h, sem y una tercera que es mes, Cuota o el nombre de un límite específico de un modelo) para las ventanas que publica o, para un saldo o un gasto, una línea de texto. La primera línea indica cuándo se restablece la ventana más cercana a su límite: Se restablece en … para la ventana de 5 horas, o por ejemplo La semana se restablece en … para otra. Una ventana cuya hora de restablecimiento ya pasó sin una lectura nueva desde entonces muestra una barra vacía y un guion en lugar de una cifra desactualizada (Restablecido, sin lecturas desde entonces, en el detalle expandido y al pasar el cursor). La fila de Claude Code también dice No se pudo actualizar · última lectura cuando su lectura de los límites del plan tiene más de 15 minutos.

Cada fila lleva una etiqueta que indica de quién son sus números. Cuenta significa que el proveedor los informa para toda tu cuenta, incluido el uso en otros equipos: barras de límites del plan, saldos y el gasto de una cuenta. Este Mac significa que se contaron solo a partir de las transcripciones de esta computadora: una fila que no tiene límites muestra el gasto de Hoy y los tokens, por ejemplo $1.20 today · 3.4M tokens. Las filas de Gemini y de Otros agentes siempre muestran esa línea local, porque la app no lee ninguna cuota de ellos.

El popover lista todos los proveedores que tienen una fila, el fijado primero y el resto en su orden fijo. El chip puede mostrar un proveedor que no va primero.

Los proveedores de cuentas que no configuraste aparecen después de las filas como Configurar en Configuración; desde dos en adelante se agrupan en una sola línea Más proveedores… con sus íconos, que puedes pulsar para mostrarlos. Cualquier fila configurada abre Configuración → Token Meter.

Haz clic en la fila de Claude Code, de Codex, de Gemini o de Otros agentes para ampliar su detalle. Primero van los límites propios del proveedor bajo la etiqueta Cuenta, y luego lo que se contó aquí bajo Este Mac:

  • Barras de Sesión y Semana, más los límites por modelo que informe el proveedor, cada uno con su hora de restablecimiento. Solo para Claude Code y Codex, y solo cuando esos límites están disponibles (consulta las dos secciones siguientes).
  • Tokens: usados en las últimas 5 horas, los últimos 7 días y los últimos 30 días. Las ventanas de 5 horas y de 7 días se cuentan en bloques de horas completas, así que cada una puede incluir parte de una hora adicional.
  • Costo: aproximado para hoy, los últimos 7 días y los últimos 30 días. Una cifra que no se pudo valorar dice sin precio aún, y una que deja fuera algunos tokens sin precio empieza con ≥.
  • Últimas 24 horas: una barra por hora.
  • Últimos 30 días: una barra por día. Cambia entre Tokens y Costo, y pasa el cursor o el foco sobre un día para ver su total y sus tres modelos principales por tokens.
  • Los últimos 7 días divididos en Entrada nueva, Salida, Escrituras en caché, Lecturas de caché y Turnos.
  • Hace cuánto se calcularon los números, y la línea Leído de las propias transcripciones de cada agente en este Mac. No se envía nada a ningún lado.

Al final del popover, una fila Todos los agentes suma el total de hoy, de los últimos 7 días y de los últimos 30 días de todos los agentes, con los tokens sobre el costo. Aparece cuando dos o más agentes han usado tokens en los últimos 30 días, y al hacer clic en ella se muestra el desglose por agente.

Fijar un proveedor arriba

El proveedor que aparece primero en el popover es Claude Code por defecto. Para cambiarlo, abre Configuración → Token Meter y elige otro proveedor en Fijado en la parte superior, o elige Ninguno (orden fijo).

Fijar solo mueve una fila. Todos los proveedores que configuraste siguen en la lista, y el chip sigue el límite más cercano a agotarse. Si el proveedor fijado no tiene fila (no se encontró Codex, no hay clave guardada), no se mueve nada.

Cifras de costo

El costo es el conteo de tokens valorado a las tarifas públicas de API de cada modelo, con una tabla de precios integrada en la app. Cuando omp registró su propio costo de un turno, se usa esa cifra para esos tokens. El popover lo etiqueta A tarifas de API, no lo que se facturó en una suscripción y muestra la fecha de esa tabla. Si pagas un plan de suscripción, no es lo que se te cobró.

  • Hoy empieza a la medianoche local. Últimos 7 días y Últimos 30 días son ventanas móviles; solo se guardan 30 días de historial.
  • Los modelos que la tabla de precios no incluye cuentan para los tokens, pero no para el costo. Entonces la cifra indica que es un mínimo, nombra esos modelos y muestra qué proporción de los tokens se valoró.
  • Un costo muestra — cuando ningún dato de la ventana tiene un precio conocido.
  • La tabla de precios no ha sido comprobada con la página de precios de OpenAI para los modelos de OpenAI, así que trata los costos de Codex como una estimación.

Cómo se actualiza

  • El primer escaneo empieza 8 segundos después de abrir la app. Con transcripciones grandes puede tardar un rato.
  • Después, la app vuelve a escanear cada 60 segundos y lee solo lo que se agregó a cada archivo desde el último escaneo.
  • La barra de título recoge el último resultado de transcripciones cada 30 segundos, y pide los límites del plan de Claude, los límites en vivo de Codex y las lecturas de cuentas cada 60 segundos. Cada uno de esos proveedores sigue aplicando su propio mínimo de 5 minutos.
  • El botón de actualizar en la parte superior del popover (Volver a comprobar todos los proveedores) obtiene de una vez la última lectura de cada proveedor, sin esperar a la siguiente actualización de la barra de título. No inicia un nuevo escaneo de transcripciones ni acorta el mínimo de 5 minutos de Anthropic, de los límites en vivo de Codex y de los proveedores de cuentas: un proveedor consultado hace menos de 5 minutos responde con su última lectura.
  • El avance del escaneo se guarda en token-meter-cache.json en la carpeta de configuración de la app (en macOS, ~/Library/Application Support/com.mxterm.desktop), así que tras reiniciar la app solo lee lo que cambió mientras estuvo cerrada.

Límites reales del plan de Claude

Las transcripciones de Claude Code no registran los límites de tu plan, así que por defecto el medidor muestra tokens en lugar de un porcentaje. Para ver los porcentajes que informa Anthropic, abre Configuración → Token Meter, busca Límites del plan y activa Mostrar porcentajes de límite reales para Claude. Viene desactivado por defecto y cubre solo Claude Code.

Cuando lo activas:

  1. La app lee el elemento del llavero de Claude Code, Claude Code-credentials, con la herramienta security de macOS. Claude Code escribe ese elemento con la misma herramienta, así que macOS normalmente no muestra ningún aviso.
  2. La app toma de ese elemento el token de inicio de sesión de Claude Code y llama con él a GET https://api.anthropic.com/api/oauth/usage. El token se guarda en la memoria de la app hasta que caduca o Anthropic lo rechaza, así que el llavero se lee una vez por token. Nunca se escribe en disco ni se registra en logs.
  3. El chip y el popover muestran tus porcentajes de 5 horas y semanal, y cuándo se restablecen.

La app llama al endpoint como máximo una vez cada 300 segundos y mientras tanto muestra la última lectura. Tras una respuesta de límite de solicitudes (HTTP 429), espera 900 segundos antes del siguiente intento. Si no se puede llegar a Anthropic, la última lectura se queda en pantalla.

Si macOS rechaza la lectura (un llavero bloqueado, o un aviso del sistema que rechazas), la función queda bloqueada hasta que la desactives y la actives de nuevo o reinicies la app. Si Claude Code no tiene la sesión iniciada, el panel te pide ejecutar claude para iniciar sesión. Los límites del plan funcionan solo en macOS; en otros sistemas no se puede leer la credencial y el panel muestra el mismo mensaje de sesión no iniciada. Para prohibir las lecturas del llavero en una Mac administrada (el elemento de Claude Code y las claves de cuentas guardadas por MXterm Pro), inicia MXterm Pro con la variable de entorno MXTERM_DISABLE_KEYCHAIN=1.

Límites de Codex, desde el disco o en vivo

Codex no necesita ningún interruptor ni red para sus límites. Escribe en sus propios archivos de sesión los encabezados de límite de uso que le envió el servidor, así que los porcentajes de 5 horas y semanal que muestra la interfaz de Codex ya están en los archivos que escanea el Token Meter. La fila expandida de Codex indica Según Codex, hace …, porque una cifra solo está tan actualizada como tu último turno de Codex en este equipo.

Si quieres un número actual en este momento, Configuración → Token Meter tiene Límites en vivo de Codex. Viene desactivado por defecto. Cuando lo activas, la app lee el inicio de sesión de ChatGPT del propio Codex en ~/.codex/auth.json y lo envía solo a chatgpt.com para obtener tus límites actuales; nunca modifica ni renueva ese inicio de sesión. La comprobación se ejecuta como máximo una vez cada 5 minutos. Una lectura en vivo de menos de 15 minutos reemplaza la leída del disco, y entonces la fila dice En vivo desde OpenAI, actualizado hace ….

Un inicio de sesión guardado en el llavero del sistema en lugar de en ~/.codex/auth.json no se lee: el panel dice entonces No hay inicio de sesión de ChatGPT de Codex en ~/.codex/auth.json. Ejecuta `codex login`. Si OpenAI limita las solicitudes de la comprobación, la app espera 15 minutos antes de volver a intentarlo.

Saldos de cuenta con tus claves de API

Seis proveedores pueden informar el estado de tu cuenta: un saldo, una cuota o lo que se ha gastado. Cada uno se lee con una clave de API que pegas en Configuración → Token Meter, en Proveedores de cuentas. Sin clave guardada, la app no hace ninguna llamada al llavero y, salvo Kimi cuando Kimi Code CLI tiene la sesión iniciada en este equipo (consulta la nota más abajo), tampoco ninguna llamada de red.

ProveedorLa clave que pideLo que muestra la fila
DeepSeekUna clave de API de la plataforma de DeepSeek (página de claves de API)Saldo, dividido en pagado y otorgado
MoonshotUna clave de API que se obtiene en la Open Platform de Moonshot / Kimi, con una Región Internacional o ChinaSaldo
KimiUna clave de API de Kimi CodeCuota: la ventana de 7 días y la ventana de límite de uso de 5 horas
MiniMaxUna clave del MiniMax Coding Plan, que empieza con sk-cp-, con una Región Global o ChinaCuota usada del plan, como porcentaje
OpenRouterUna clave de API de openrouter.ai/keys, no una clave de administraciónCuota cuando la clave tiene un límite de gasto; si no, el gasto acumulado
Z.aiTu clave de API del plan de programación de Z.ai / BigModel, con una Región Global o ChinaCuota del plan de programación GLM

Cada clave se guarda en el almacén de credenciales de tu sistema (el macOS Keychain; la versión para Windows usa el Administrador de credenciales, pero no ha sido comprobada) y se envía solo a la API de ese proveedor, con las dos excepciones descritas en Lo que sale de tu equipo. El panel lo dice, con palabras que nombran el macOS Keychain en ambos sistemas: Las claves se guardan en el macOS Keychain y solo se envían a ese proveedor. No se escribe nada secreto en los archivos de la app, solo si un proveedor está configurado, su región y los últimos cuatro caracteres de la clave, para que el panel pueda mostrar Clave guardada · …abcd. Si macOS rechaza el acceso al Keychain, las filas de los proveedores que configuraste dicen Acceso a macOS Keychain bloqueado hasta que guardes o quites una clave o reinicies la app, en lugar de esperar una lectura que no va a llegar.

Los formatos de respuesta de estos seis proveedores no se han comprobado con respuestas reales, así que una fila puede no mostrar ninguna cifra, o una incorrecta, hasta que se comprueben. Trata estas lecturas como no verificadas.

Un proveedor se actualiza como máximo una vez cada 5 minutos. Un proveedor que limita las solicitudes se deja en pausa 15 minutos; uno que responde Clave rechazada queda en pausa hasta que cambies la clave. Si una actualización falla porque no se puede llegar al proveedor o este limita las solicitudes, y ya había una lectura correcta, la fila conserva la cifra anterior y la marca con No se pudo actualizar · última lectura. Una clave rechazada o una respuesta ilegible descarta la cifra anterior.

Kimi es el único proveedor que puede funcionar sin una clave pegada: si Kimi Code CLI tiene la sesión iniciada en este equipo y su token no ha caducado, la app lee ese token de ~/.kimi-code/credentials/kimi-code.json y lo envía a api.kimi.com para leer tu cuota, sin ningún interruptor que activar. Solo lee ese archivo y nunca renueva el token, y una clave que pegues tiene prioridad.

En paneles y pestañas

La cifra de tokens de un panel está en su fila de la barra lateral izquierda, no en el encabezado del panel ni en la pestaña. La segunda línea de la fila muestra el agente y lo que usó la conversación de ese panel en esta Mac (hasta los últimos 30 días), como Claude Code · 1.7M · $0.41, a precios de lista y no lo que te cobraron. Una fila de espacio de trabajo muestra el total de sus paneles cuya conversación se conoce. Un panel cuya conversación no se conoce no muestra nada, y un panel de Gemini tampoco: no se adivina ninguna cifra.

En un panel que ejecuta Claude Code o Codex, aparece un aviso cuando el porcentaje publicado por el propio plan llega al 80% (quizá te convenga ir cerrando) y otra vez al 95% (mejor parar). Solo sale de un porcentaje real, así que necesita que estén disponibles los límites descritos arriba; los demás agentes nunca lo reciben. El aviso es solo informativo: se cierra con su ✕, y no pausa al agente ni escribe en el panel. Cuando la última línea de Claude Code en una conversación es un límite del plan con una hora de restablecimiento todavía por delante, el encabezado del panel dice Esperando a que el plan se restablezca con esa hora.

Esto sale del código y de sus pruebas. Todavía no se ha probado en máquinas reales.

Lo que sale de tu equipo

Los conteos de tokens y los costos se calculan en tu equipo, y las transcripciones nunca se envían a ningún lado. Los límites de Codex leídos del disco también son locales. Un teléfono emparejado puede leer desde esta Mac los porcentajes de tu plan, nunca los saldos. Tres cosas pueden hacer una solicitud de red, y cada una va solo a su propio proveedor:

  • Mostrar porcentajes de límite reales para Claude → api.anthropic.com, con el token de inicio de sesión del propio Claude Code.
  • Límites en vivo de Codex → chatgpt.com, con el inicio de sesión del propio Codex.
  • Proveedores de cuentas → la API del propio proveedor, con la clave que guardaste para él. Hay dos excepciones. Para Kimi, si no guardaste ninguna clave y Kimi Code CLI tiene la sesión iniciada en este equipo, la app envía el token de la CLI a api.kimi.com, sin clave y sin interruptor. Una clave de MiniMax rechazada en la región Global se reintenta en el host de MiniMax en China, api.minimaxi.com. Una redirección se rechaza de plano, así que una clave solo puede llegar a un host del proveedor para el que se guardó.

Para el resto del tráfico de red de la app, consulta Telemetría: qué envía la app.

Pregunta a una IA sobre MXterm Pro

Abre una respuesta en vivo en ChatGPT, Claude o Perplexity, basada en esta página. La escribe el asistente, no nosotros, así que revisa las fuentes que cita.

Pregunta enviada¿De dónde saca el Token Meter sus cifras y cómo leo el chip de la barra de título y el popover?