Voir ce que Claude voit : /context et une statusline qui sert vraiment
À la fin de cet article, tu sauras lire précisément ce que Claude Code a chargé à un instant donné, et tu auras un bandeau permanent en bas de ton terminal qui te dit où en est ta session sans avoir à taper une commande pour le savoir.
Les articles précédents t’ont fait ouvrir tes fichiers CLAUDE.md avec /memory. /context fait autre chose : il mesure ce que Claude Code a chargé. Ici, on le lit en entier, et on automatise la surveillance avec une statusline.
Ce qu’il te faut
Claude Code installé et connecté. Rien de plus pour /context. Pour la statusline, jq est utile si tu veux personnaliser au-delà de ce que la commande générative te propose (installation ici si tu ne l’as pas déjà), mais tu n’en as pas besoin pour la première version.
Étape 1 — Lire /context comme un inventaire, pas juste un test (2 minutes)
Jusqu’ici, tu as utilisé /memory pour ouvrir tes fichiers de mémoire. Pour voir ce que Claude Code a réellement chargé au démarrage, c’est /context qu’il faut lire, et en entier. Imagine la mémoire de travail (context window) de Claude comme un bureau de taille limitée : tout ce que Claude peut voir et utiliser pendant la conversation doit tenir sur ce bureau. /context te montre tout ce qui occupe ce bureau au démarrage, pas seulement tes CLAUDE.md : les instructions de base données à Claude (le prompt système), la liste des outils disponibles, les fichiers de mémoire automatique (MEMORY.md si tu as activé cette fonction), et chaque fichier de préférences avec la place qu’il prend.
Ce qui vaut la peine d’être surveillé : si un seul CLAUDE.md occupe une part disproportionnée de ce bureau, c’est le signal concret pour revenir à l’article sur le fichier général et couper au lieu d’empiler. /context n’est pas qu’un outil de dépannage ponctuel : reprends ce réflexe chaque fois qu’une session te semble plus lente à démarrer ou moins précise que d’habitude.
Étape 2 — Générer une première statusline (2 minutes)
Un bandeau d’état (statusline), c’est une ligne fixe en bas de ton terminal, un peu comme la barre d’état tout en bas de l’écran d’un logiciel de comptabilité. Elle affiche en continu des informations utiles sans que tu aies à les demander : modèle actif, coût de la session, pourcentage de mémoire de travail utilisée, branche Git. Le plus rapide pour en créer une : le demander en langage naturel, avec tes propres mots.
/statusline affiche le nom du modèle et le pourcentage de contexte utilisé,
avec une petite barre de progression
Claude Code écrit lui-même un petit programme (un script) dans ~/.claude/ et met à jour ta configuration sans que tu aies à toucher un fichier. Accepte les autorisations demandées si on te les propose. Le bandeau apparaît tout de suite en bas de l’interface.
Pour retirer une statusline que tu ne veux plus : /statusline supprime-la, ou /statusline enlève-la.
Étape 3 — Comprendre ce qu’elle peut afficher (3 minutes)
À chaque mise à jour, ton script reçoit un paquet de données organisées au format JSON, une manière standard d’écrire des informations en texte que beaucoup de logiciels utilisent pour se parler entre eux. Ce paquet contient : le modèle utilisé, le dossier de travail courant, le coût estimé de la session, le pourcentage de mémoire de travail déjà utilisée, la branche Git, le niveau de raisonnement actif, et même le pourcentage consommé de ta limite d’usage Pro/Max (sur 5 heures et sur 7 jours). Le bandeau se met à jour tout seul (nouveau message, fin d’un /compact, changement de mode), pas uniquement au démarrage de la session.
Trois informations valent vraiment la place qu’elles prennent, au quotidien :
- Le pourcentage de mémoire de travail utilisée : le signal le plus utile pour savoir quand faire un
/compact(la commande qui résume la conversation pour libérer de la place), avant que Claude Code ne te le rappelle lui-même. - Le coût de la session, si tu factures du temps ou si tu veux simplement garder un œil sur ta consommation.
- La branche Git courante, utile si tu jongles entre plusieurs branches, ou plusieurs copies de travail parallèles (worktrees), dans la même journée.
Étape 4 — Une statusline manuelle, si tu veux aller plus loin (5 minutes)
Si la version générée par /statusline ne te suffit pas, tu peux écrire le script toi-même. Sur macOS, Linux, ou Git Bash sous Windows :
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "[$MODEL] ${PCT}% contexte | $$(printf '%.2f' "$COST")"
Enregistre-le dans ~/.claude/statusline.sh, rends-le exécutable, puis déclare-le dans ~/.claude/settings.json :
chmod +x ~/.claude/statusline.sh
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
Sous Windows, en PowerShell natif (sans Git Bash), le script s’écrit différemment et se déclare en appelant powershell explicitement :
$input_json = $input | Out-String | ConvertFrom-Json
$model = $input_json.model.display_name
$used = $input_json.context_window.used_percentage
if ($used) {
Write-Host "[$model] ${used}% contexte"
} else {
Write-Host "[$model]"
}
{
"statusLine": {
"type": "command",
"command": "powershell -NoProfile -ExecutionPolicy Bypass -File C:/Users/ton_compte/.claude/statusline.ps1"
}
}
Deux détails qui piègent sous Windows, les deux vérifiés en testant la commande telle quelle :
- Barres obliques, pas antislashs, dans le chemin à l’intérieur de
command. Claude Code passe cette commande par Git Bash quand il est installé, qui traite les antislashs comme des caractères d’échappement et casse le chemin silencieusement. -ExecutionPolicy Bypassest nécessaire sur une installation Windows par défaut : sans ce paramètre,powershell -Filerefuse d’exécuter le script avec une erreurcannot be loaded because running scripts is disabled on this system. Le paramètre contourne la restriction pour cette seule commande, sans toucher au réglage global de ta machine.
Ce qui compte, ce n’est pas d’en afficher le plus possible
Le piège classique avec un bandeau d’état, c’est d’y empiler tout ce que les données proposent, au point qu’il déborde ou devienne illisible sur un terminal étroit. La barre a une largeur limitée, et les notifications système (mises à jour, erreurs de serveur MCP) partagent la même ligne, à droite. Trois informations lisibles d’un coup d’œil valent mieux que sept qui se coupent au milieu.
Ce qui vient de se passer
/context te sert maintenant à faire l’inventaire de ce que Claude a en mémoire, pas juste à vérifier un fichier, avec le réflexe de le consulter dès qu’une session semble lourde. Un bandeau d’état tourne en bas de ton terminal, généré en une phrase ou écrit à la main, et te dit en continu où en est ta session sans que tu aies à demander.
En résumé
/contextliste tout ce qui occupe la mémoire de travail au démarrage :CLAUDE.md, mémoire automatique, outils disponibles. Reviens-y dès qu’une session semble lente ou moins précise./statusline <description en langage naturel>génère un bandeau d’état fonctionnel en une seule commande.- Les données disponibles incluent le modèle, le pourcentage de mémoire de travail utilisée, le coût, la branche Git, et les limites d’usage Pro/Max.
- Un script manuel se configure via le champ
statusLinede~/.claude/settings.json; sous Windows, utilise des barres obliques normales dans les chemins. - Trois informations lisibles valent mieux qu’un bandeau surchargé.
Prochaine étape : le mode plan et le mode auto, pour savoir quand laisser Claude avancer seul et quand lui demander de s’arrêter avant d’agir.
Cette mise en pratique poursuit la série sur l’installation et la configuration de Claude Code, de zéro jusqu’à un premier programme fonctionnel. La vidéo est ici.
Abonne-toi au blog pour suivre la suite de la série.