TALLYGRAPHUNIFIED SPEND CONSOLE

Cómo funciona

Qué lee el CLI, qué manda y cómo la entrega aguanta fallas de red sin perder datos.

El trabajo se parte en dos. Todo lo que toca tus archivos corre en tu máquina. TallyGraph solo recibe registros de uso normalizados por HTTPS, autenticados con tu token de escritura.

TU MÁQUINATALLYGRAPHsolo lecturaHTTPSHistorial4 agentes localesCLI tallygraphlee, normaliza, encolaAPI de ingestavalida, deduplicaDashboardgasto por modelo
La frontera es la llamada HTTPS. Prompts, respuestas y código nunca la cruzan.

Una corrida de collect

Descubrirrutas conocidasLeereventos de uso v2SpoolSQLite, ~/.tallygraphEnviarlotes de 100API de ingestadeduplica external_id
Las filas salen del spool solo cuando la API las acepta. Una corrida fallida no pierde nada.
  • Descubrir. Revisa la ruta por defecto de cada agente compatible.
  • Leer. Interpreta el historial y arma un evento por llamada al modelo: modelo, tokens (entrada, salida, lectura y escritura de caché), hora y un external_id estable.
  • Spool. Guarda los eventos en una cola SQLite local en ~/.tallygraph (o TALLYGRAPH_STATE_DIR), con tope de 100,000 filas pendientes.
  • Enviar. Manda lotes con Authorization: Bearer y reintenta hasta cinco veces. Las filas aceptadas se borran. Las que la API rechaza por inválidas se apartan con el motivo, para que una fila mala no frene al resto.
  • Ingesta. La API valida cada campo y cuenta los external_id repetidos como duplicados en vez de guardarlos dos veces. Volver a correr collect siempre es seguro.
  • Reporte. Tras una entrega exitosa el CLI publica un reporte de runtimes (id de instalación y versiones) para que el workspace marque runtimes malos. Si falla avisa, pero el código de salida sigue en 0.

Qué se manda y qué se queda en tu máquina

Se manda a TallyGraphSe queda en tu máquina
Nombre del modelo y proveedorPrompts y respuestas
Conteo de tokens y costoCódigo fuente y contenido de archivos
Hora, ids de sesión y de requestEntradas y salidas de herramientas
Nombres de las herramientas usadas (por ejemplo Edit, Bash)Rutas completas y rama de git, salvo que uses --include-paths
Nombre de la carpeta del proyecto (solo el último segmento)API keys y credenciales
Versiones de los runtimes (este CLI, Node, los CLIs de los agentes) y un id de instalación aleatorioTu nombre y correo

El servidor también lo hace cumplir. Los metadatos tienen un tope de 8 KB, y la API rechaza cualquier evento cuyos metadatos traigan llaves como prompt, messages, content, transcript o apikey.

Modo servicio

al iniciarHTTPSProgramador del SOlaunchd, systemd, schtaskscollect --watchcada 15 minAPI de ingestaigual que a mano

service install registra collect --watch en el programador nativo: un agente de launchd en macOS, una unidad systemd --user en Linux, una tarea del Programador de tareas en Windows. Corre con tu usuario, no como root. Cambia el periodo con --interval (segundos, mínimo 30).

Captura en vivo con tap

Para casi todos basta con el historial. Si un agente no guarda el uso localmente, o lo quieres en tiempo real, tallygraph tap levanta un proxy local y apunta el cliente hacia él.

BASE_URLmismo requestTu clienteclaude, codex, opencodetallygraph tap127.0.0.1, puerto al azarAPI del proveedorAnthropic u OpenAI
El tap reenvía cada request sin cambios y solo anota los contadores de uso de la respuesta.
terminal
tallygraph tap -- claude
# o, para cualquier cliente:
tallygraph tap --provider openai --no-launch
export OPENAI_BASE_URL=http://127.0.0.1:<puerto>