Auditoría de uso de Claude
Cuatro scripts locales sobre ~/.claude/projects/**/*.jsonl (sesiones principales y subagents/). Cada llamada a la API se desduplica por (message.id, requestId); el costo es el precio público de la API por modelo, por lo que en una suscripción se lee como "equivalente a la API", un proxy para la cuota del plan.
Ejecutar
SKILL_DIR="${CLAUDE_SKILL_DIR}/scripts"
OUT=$(mktemp -d) # o el bloc de notas de la sesión
python3 -I "$SKILL_DIR/usage.py" "$OUT/usage.json" # totales, diario, modelos, proyectos, sesiones, reconstrucciones de caché, herramientas, skills, agentes
python3 -I "$SKILL_DIR/context_sources.py" "$OUT/usage2.json" # familias de comandos Bash por tamaño de salida, Lectura completa vs parcial, puntos de entrada del SDK, brechas inactivas
python3 -I "$SKILL_DIR/cost_split.py" # costo por tipo de token, impuesto de caché de lectura por encima de 200k/300k de contexto
python3 -I "$SKILL_DIR/history.py" "$OUT/hist.json" # prompts semanales, costo por prompt, comandos slash, sesiones, hora x día de la semana (por defecto 90 días)
Ventana: AUDIT_DAYS=90 en el entorno (por defecto 30, 90 para history.py). Las transcripciones solo retroceden hasta cleanupPeriodDays (configurado a 120 en ajustes; Claude Code por defecto 30), mientras que ~/.claude/history.jsonl conserva cada prompt: más allá del período de retención, solo las métricas a nivel de prompt son reales. Marcar las semanas cuyas transcripciones fueron parcialmente eliminadas como parciales, nunca como de bajo costo.
Antes de cotizar en dólares
Los precios residen en tres tablas: PRICES en usage.py y history.py, P en cost_split.py. Verifícalos primero contra la skill claude-api y corrige la tabla cuando falte un modelo (un modelo desconocido cuenta como $0).
Qué revisar, en orden
| Señal | Campo | Palanca |
|---|---|---|
| Llamadas con contexto superior a 200k | ctx_cost, impuesto cost_split.py | autoCompactWindow en ajustes, /clear por tema |
| Reanudaciones en frío (caché reconstruida tras >1h inactivo) | cache_miss | gancho cold-resume-guard.sh |
Puntos de entrada no CLI (sdk-py, sdk-cli) | entry, sdk en usage2 | un plugin o gancho que ejecuta Claude: fijar su modelo (SG_AGENTIC_MODEL para security-guidance) |
| Salidas de herramienta más grandes | tool_result_kchars, bash_fam, read | Lectura dirigida, salida de comando limitada |
| TTL de caché de 1h vs 5m | w1h vs el conteo de brechas de 5-60 min en gaps | mantener 1h mientras (brechas de 5-60 min × contexto × 1.25) supere la prima 0.75x en escrituras 1h |
| Participación y modelo de subagente | main_sub, agents | Sonnet para trabajo de patrones |
Los prompts de sesión en top_sessions son el texto propio del usuario: mantenlos fuera de cualquier contenido compartido.