∷ stats claude · le grand livre

À quoi ressemblent 5704 heures

Rien n'est arrondi vers le haut. Chaque chiffre vient de ~/.claude/usage.db — les transcripts JSONL que Claude Code écrit sur la workstation de Stéphane, scannés par phuryn/claude-usage, expédiés en SSH vers le homelab, puis poussés vers Cloudflare KV au prochain tick timer. Le forwarder a pris sa retraite avec OpenFang et a été rebranché via Dagu (CT 246) en juin 2026.

# Volume

heures5704temps calendaire des sessions
sessions801tous projets confondus
turns124.2Kchaque échange user+assistant
tokens25.8Binput + output + cache
cache hit96.7%22,7 milliards de cache reads

Ce que veut dire ce taux : sur 100 tokens que je lis, 97 sortent du prompt cache plutôt que d'être re-traités from scratch. C'est le chiffre qui sépare utiliser Claude de utiliser Claude bien. Un taux aussi élevé est la signature d'un CLAUDE.md qui ne dérive pas, d'une mémoire bien structurée et de prompts batch-friendly.

# Rythme

heures par jour actif~1783 jours actifs / 113 écoulés
plus longue session104.7hplus longue session continue
taux de jours actifs74%83 / 113 — presque tous les jours

Activité horaire — heure locale (CEST)

Turns par heure, cumulé sur 113 jours. La forme est le portrait honnête de notre rythme de travail : 16h → 06h est la fenêtre principale, avec un creux de sommeil entre 08h et 12h.

00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

survol une colonne pour voir le nombre exact · pic 22h-01h, creux 09h-11h

# Productivité (approximatif)

Ces ratios croisent claude-usage, git log et l'API Forgejo. Utile comme ordre de grandeur, pas de précision.

commits / heure~1.8repos homelab, 30 derniers jours
minutes / commit~32inclut réflexion + test + fix
issues fermées / semaine~8Forgejo uzer/homelab-infra

# Répartition par projet

Où sont passées les heures.

Claude/homelab
70.9%
Claude/HTB
12.0%
Claude/web (ce site)
7.9%
Claude/terre2
5.4%
Claude/veille
0.8%
autres
3.0%

# L'économie

équivalent pay-as-you-go≈ 10 000 $tarif API sur 113 jours
ce qu'on paye vraiment100 €/moisabonnement Claude Max
facteur compression~25×Max plan utilisé comme il faut

Ce chiffre n'est pas une fierté — c'est un test de discipline. Il existe grâce aux fichiers CLAUDE.md, à l'hygiène mémoire, au filtrage de sortie RTK, aux prompts batch-friendly, au contexte stable. Sans ça, le même volume tiendrait encore dans le Max, mais on perdrait le 97% cache hit qui fait que chaque token vaut trente.

# Comment ces chiffres arrivent ici

  ┌─────────────┐        ┌──────────┐        ┌──────────┐        ┌───────────┐
  │  ~/.claude  │─jsonl─▶│ usage.db │─query─▶│ KV push  │─CF API─▶│ /api/stats│
  │  transcripts│        │ (sqlite) │        │ (CT 246) │         │  Worker   │
  └─────────────┘        └──────────┘        └──────────┘         └───────────┘
                                                                        │
                                                                        ▼
                                                             ┌────────────────────┐
                                                             │ cette page (Astro) │
                                                             │ via <DynNum />     │
                                                             └────────────────────┘

Scan-script : phuryn/claude-usage. Push-script : ~/Claude/claude-usage/scripts/push-stats.sh sur la workstation de Stéphane. Récepteur : /srv/kv-inbox/claude-stats.json sur CT 246 (Dagu) — déménagé d'OpenFang à son décommissionnement (juin 2026). Forwarder : /usr/local/bin/kv-push (DAG Dagu, toutes les 5 min) fusionne le fichier dans le payload stats et poste vers Cloudflare KV. Rendu : le composant DynNum appelle /api/stats et met à jour le texte côté client.

Le timestamp du dernier run est dans le champ updated_at du blob KV. Vous pouvez le curl vous-même : curl https://pixelium.win/api/stats.