Notas

ai-usage: las cuotas de los proveedores de IA, siempre a la vista

Un pequeño programa en Go que muestra el consumo de Codex, MiniMax y z.ai en la terminal y en la barra de estado de Term. La herramienta que nació de tantas ventanas de uso cerradas a mitad de una tarea.

3 min de lectura

Hace meses que trabajo con agentes de IA de verdad: proyectos enteros que avanzan en sesiones largas, procesos programados que publican cada noche y revisores en paralelo. Con todo eso, ha surgido una molestia nueva: las ventanas de uso. Los proveedores limitan el consumo en franjas horarias y, cuando la ventana se cierra a mitad de una tarea, el agente se queda bloqueado con un error 429. Me ha pasado tantas veces —hay entradas en los registros de este sitio web que han tenido que recuperarse precisamente por eso— que terminé necesitando algo muy sencillo: ver el consumo de cada proveedor en tiempo real, siempre visible, sin abrir nada.

De esa necesidad nació ai-usage, un pequeño programa escrito en Go que consulta las cuotas de mis tres proveedores —Codex, MiniMax y z.ai— y las muestra en una línea compacta dentro de la terminal o, mejor aún, en la barra de estado de Term, la nueva terminal con complementos que estoy probando en fase beta y de la que, por ahora, estoy muy contento.

De openusage a fuelcheck

La idea no nació de la nada. Hace tiempo que uso openusage, una aplicación que reúne el consumo de los servicios de IA en un mismo lugar, y me pregunté por qué todo esto no podía vivir directamente en la terminal, donde paso el día. Al buscar una base, encontré fuelcheck, un proyecto mínimo escrito en Go que hacía la mitad del camino: consultar las cuotas y mostrarlas. Lo tomé como punto de partida y creé un repositorio propio, con el nombre que describe lo que hace: ai-usage.

Qué hace

  • Tres proveedores: Codex, MiniMax y z.ai. Solo se consultan los que declaras y activas.
  • Un modelo común: cada API habla su idioma (MiniMax ofrece el porcentaje restante por modelo; z.ai codifica las ventanas con pares unidad/número) y el programa lo normaliza todo en consumo, ventana y cuenta atrás hasta el reinicio de la cuota.
  • Semáforo: verde con un 70 % o más de cuota libre, rojo por debajo del 35 %.
  • Diseño adaptable: todo en una línea si el ancho del terminal lo permite; si no, una fila por proveedor.
  • Modo continuo: con --watch, el componente queda fijo en un panel de tmux y se actualiza cada intervalo.
  • JSON normalizado: con --json, cualquier programa puede leer las cuotas sin interpretar tres esquemas diferentes.

El complemento de Term

La parte que más me entusiasma: Term (de Stencil) es una terminal de escritorio con complementos, todavía en beta, y le hice un complemento propio que muestra las cuotas en la barra inferior de las ventanas. No ocupa un panel de terminal: vive en la barra de estado, siempre visible. La integración está verificada con Term 0.9.12.

Go, después de C

Go es una evolución de C, el lenguaje que aprendí en 42 Barcelona, y la transición ha sido bastante natural: tipos estáticos junto al código, concurrencia sencilla para consultar los proveedores en paralelo y un único binario sin dependencias. Entender el proyecto original y adaptarlo fue cuestión de días, no de semanas.

Cómo lo estoy construyendo

El método es el que ya aplico en todos los proyectos: primero, el vocabulario del dominio en un glosario; después, un mapa de incógnitas con tareas hijas; y la especificación surge de los hechos de la investigación, no de las opiniones. El desarrollo está a cargo de oh my pi, el nuevo arnés de agentes que estoy probando, el mismo que usa Auto Magazine, y los resultados me convencen. Hay un detalle que me hizo gracia: durante una sesión, los dos revisores subagentes se toparon con un límite de uso del modelo. La herramienta que vigila las cuotas, abatida por una cuota. No podía haber sido más oportuna.

El repositorio es privado por ahora; cuando lo quiera abrir al público, queda pendiente una decisión sobre la limpieza del historial que ya tengo documentada. Cuando el proyecto madure un poco más, tendrá su ficha en el portafolio.