From statusline
Configure et installe la statusline Claude Code. Utiliser quand l'utilisateur demande d'installer, configurer ou setup la statusline, /statusline-setup, ou veut avoir une status line.
How this skill is triggered — by the user, by Claude, or both
Slash command
/statusline:setupThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Configure la statusline Claude Code basee sur [hell0github/claude-statusline](https://github.com/hell0github/claude-statusline).
Configure la statusline Claude Code basee sur hell0github/claude-statusline.
marketplace | 140k/168k [████████░░] | $19/$140 [███░░░│░░░] 13% | 16:46/18:00 | 235/min | ×1
│ │ │ │ │ │
│ │ │ │ │ └─ Sessions actives
│ │ │ │ └─ Burn rate (tokens/min)
│ │ │ └─ Heure actuelle / Reset fenetre 5h
│ │ └─ Fenetre 5h : cout / limite, % utilise
│ └─ Context window : tokens / limite (168K)
└─ Nom du projet
date -dLe repo source utilise date -d (syntaxe GNU/Linux) qui n'existe pas sur macOS.
Solution automatique : Le skill installe coreutils via Homebrew et patche les scripts pour utiliser gdate.
Si show_monthly: true, le champ tracking.payment_cycle_start_date est obligatoire.
Solution : Le skill demande la date de debut de cycle si l'utilisateur active le suivi mensuel.
OBLIGATOIRE : Toujours nettoyer avant d'installer pour eviter les conflits.
echo "=== Nettoyage statusline existante ===" && \
rm -f ~/.claude/statusline.sh 2>/dev/null && echo " Shim supprime" || true && \
rm -rf ~/Projects/cc-statusline 2>/dev/null && echo " Repo supprime" || true && \
echo "=== Nettoyage termine ==="
Ensuite, lire ~/.claude/settings.json et supprimer la section statusLine si elle existe.
echo "=== Verification des prerequis ===" && \
echo "OS: $(uname -s)" && \
echo "jq: $(which jq > /dev/null 2>&1 && echo '✅' || echo '❌ REQUIS')" && \
echo "ccusage: $(which ccusage > /dev/null 2>&1 && echo '✅' || echo '⚠️ Recommande')" && \
echo "git: $(which git > /dev/null 2>&1 && echo '✅' || echo '❌ REQUIS')" && \
if [ "$(uname -s)" = "Darwin" ]; then
echo "gdate: $(which gdate > /dev/null 2>&1 && echo '✅' || echo '❌ REQUIS sur macOS')"
fi
Installation automatique des prerequis manquants :
Si jq manque :
# macOS
brew install jq
# Linux
sudo apt install jq
Si ccusage manque (recommande mais optionnel) :
npm install -g ccusage
Sur macOS, si gdate manque, installer automatiquement coreutils :
if [ "$(uname -s)" = "Darwin" ] && ! which gdate > /dev/null 2>&1; then
echo "Installation de coreutils (gdate)..."
brew install coreutils
fi
Utiliser AskUserQuestion :
| Option | Description |
|---|---|
api | Pay-as-you-go / API Usage - Pas de limite hebdomadaire |
max20x | Claude Max 20x - $200/mois, 220K tokens/5h, $850/semaine |
max5x | Claude Max 5x - $100/mois, 88K tokens/5h, $500/semaine |
pro | Claude Pro - $20/mois, 19K tokens/5h, $300/semaine |
mkdir -p ~/Projects && \
git clone https://github.com/hell0github/claude-statusline.git ~/Projects/cc-statusline && \
mkdir -p ~/Projects/cc-statusline/data && \
cp ~/Projects/cc-statusline/config/config.example.json ~/Projects/cc-statusline/config/config.json && \
echo "✅ Repo clone dans ~/Projects/cc-statusline"
IMPORTANT : Cette phase est obligatoire sur macOS pour corriger le bug date -d.
Verifier si on est sur macOS et appliquer le patch automatiquement :
if [ "$(uname -s)" = "Darwin" ]; then
sed -i '' 's/date -d/gdate -d/g' ~/Projects/cc-statusline/src/statusline-utils.sh
sed -i '' 's/date -d/gdate -d/g' ~/Projects/cc-statusline/src/statusline.sh
echo "✅ Patch macOS applique (date -> gdate)"
fi
Verifier que le patch a ete applique :
grep -c "gdate -d" ~/Projects/cc-statusline/src/statusline-utils.sh
# Doit retourner 8
Utiliser AskUserQuestion :
| Option | Exemple | Description |
|---|---|---|
24h (Recommande) | 17:30/18:00 | Format 24 heures |
12h | 5:30PM/6PM | Format 12 heures avec AM/PM |
Appliquer le patch selon le choix :
Si l'utilisateur choisit 24h, appliquer ce patch :
# Patch format 24h pour CURRENT_TIME
sed -i '' 's/date "+%-l:%M%p"/date "+%H:%M"/g' ~/Projects/cc-statusline/src/statusline.sh
sed -i '' 's/date "+%I:%M%p"/date "+%H:%M"/g' ~/Projects/cc-statusline/src/statusline.sh
# Patch format 24h pour RESET_TIME (gdate sur macOS)
sed -i '' 's/"+%-l%p"/"+%H:%M"/g' ~/Projects/cc-statusline/src/statusline.sh
echo "✅ Format 24h applique"
Si l'utilisateur choisit 12h, ne rien faire (c'est le format par defaut).
Lire et modifier ~/Projects/cc-statusline/config/config.json :
Modifier ces champs :
user.plan : garder "max20x" (valeur fictive, pas de limites)sections.show_five_hour_window : falsesections.show_daily : falsesections.show_weekly : falsesections.show_monthly : falsesections.show_timer : falseDemander les preferences avec AskUserQuestion :
Question 1 - Sections a afficher :
Question 2 - Weekly display mode :
recommend : % journalier recommande [Recommande]usage : % d'utilisation hebdomadaireavail : % restant disponibleQuestion 3 - Suivi mensuel (si "Complet" ou demande explicite) :
Si suivi mensuel active, demander la date de debut du cycle de facturation avec AskUserQuestion :
Options predefinies :
L'utilisateur peut aussi choisir "Other" pour saisir un jour personnalise (ex: "le 28", "7", "23").
Construction de la date ISO a partir du jour choisi :
YYYY-MM-DDTHH:MM:SS-HH:MMExemple :
# Si l'utilisateur dit "le 28" ou choisit le 28
# Construire : 2025-01-28T00:00:00-08:00
# Obtenir la timezone locale
TZ_OFFSET=$(date +%z | sed 's/\(..\)$/:\1/')
# Ex: -08:00 pour PST
Modifier ~/Projects/cc-statusline/config/config.json :
Changer user.plan vers le plan choisi (pro, max5x, ou max20x)
Configurer les sections selon le choix
Configurer weekly_display_mode selon le choix
Si suivi mensuel active :
sections.show_monthly: truetracking.payment_cycle_start_date avec la date ISO fournieExemple :
{
"sections": {
"show_monthly": true
},
"tracking": {
"payment_cycle_start_date": "2025-01-01T00:00:00-08:00"
}
}
cat > ~/.claude/statusline.sh << 'EOF'
#!/bin/bash
exec "$HOME/Projects/cc-statusline/src/statusline.sh" "$@"
EOF
chmod +x ~/.claude/statusline.sh && \
echo "✅ Shim cree dans ~/.claude/statusline.sh"
Lire ~/.claude/settings.json et ajouter/verifier la section statusLine :
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 0
}
}
echo '{"workspace":{"current_dir":"~"},"transcript_path":""}' | ~/.claude/statusline.sh
Si le test echoue avec "ERROR in statusline.sh" :
gdate est installe (brew install coreutils)Si le test echoue avec "Configuration validation failed" :
show_monthly: falseAfficher ce resume :
✅ Statusline v2.1.0 configuree !
Mode : <api | pro | max5x | max20x>
Sections actives : <liste>
Weekly mode : <recommend | usage | avail>
Format heure : <24h | 12h>
<Si monthly actif : Cycle depuis <date>>
<Si macOS : Patch gdate applique ✅>
Fichiers :
- Config : ~/Projects/cc-statusline/config/config.json
- Shim : ~/.claude/statusline.sh
⚠️ Redemarrez Claude Code pour appliquer.
Puis afficher le guide de lecture de la statusline :
📊 Comprendre la statusline :
Exemple : marketplace | 140k/168k [████░░] | $15/$140 [██│░░░] 10% | weekly 77% | total $135 | 17:26/19:00 (1h 33m) | 56/min | ×2
┌─────────────────────┬────────────────────────────────────────────────────────┐
│ Segment │ Signification │
├─────────────────────┼────────────────────────────────────────────────────────┤
│ marketplace │ Nom du projet (dossier courant) │
│ 140k/168k [████░░] │ Context window : tokens utilises / limite (168K) │
│ $15/$140 [██│░░] 10%│ Fenetre 5h : cout actuel / limite, % de la limite │
│ weekly 77% │ Utilisation hebdomadaire (mode usage) │
│ ou recom 14% │ % journalier recommande pour finir le budget (mode recommend) │
│ ou avail 23% │ % restant disponible cette semaine (mode avail) │
│ total $135 │ Cout total du mois (depuis date cycle) │
│ 17:26/19:00 (1h 33m)│ Heure actuelle / reset 5h, temps restant │
│ 56/min │ Burn rate : tokens consommes par minute │
│ ×2 │ Nombre de sessions Claude Code actives │
└─────────────────────┴────────────────────────────────────────────────────────┘
Couleurs :
- Vert : usage normal
- Orange : attention, approche des limites
- Rouge : limite atteinte ou depassee
⚠️ Difference entre statusline et interface Claude (/status) :
┌─────────────────────┬─────────────────────────────────────────────────────────┐
│ Source │ Ce qu'elle mesure │
├─────────────────────┼─────────────────────────────────────────────────────────┤
│ Interface Claude │ Usage API reel mesure par Anthropic (serveur) │
│ (/status) │ = donnees officielles, peut inclure usage web/mobile │
├─────────────────────┼─────────────────────────────────────────────────────────┤
│ Statusline │ Cout estime localement par ccusage depuis les │
│ (ccusage) │ transcripts (~/.claude/projects/) │
│ │ = uniquement Claude Code, pas web/mobile │
└─────────────────────┴─────────────────────────────────────────────────────────┘
Calcul du % weekly dans la statusline : cout_estime / limite_hebdo_plan
Limites hebdomadaires par plan :
┌──────────┬──────────────┬─────────────────┬─────────────────────────────────┐
│ Plan │ Limite hebdo │ Tokens/5h │ Exemple │
├──────────┼──────────────┼─────────────────┼─────────────────────────────────┤
│ pro │ $300/semaine │ 19K tokens/5h │ $150 depenses = 50% weekly │
│ max5x │ $500/semaine │ 88K tokens/5h │ $390 depenses = 78% weekly │
│ max20x │ $850/semaine │ 220K tokens/5h │ $425 depenses = 50% weekly │
│ api │ Pas de limite│ Pay-as-you-go │ weekly desactive │
└──────────┴──────────────┴─────────────────┴─────────────────────────────────┘
Note : Un ecart entre les 2 sources est normal (methodes de calcul differentes).
Commandes utiles :
- Modifier config : edit ~/Projects/cc-statusline/config/config.json
- Mise a jour : cd ~/Projects/cc-statusline && git pull
- Reconfigurer : demander "installe la statusline"
Installer coreutils :
brew install coreutils
Verifier que le patch a ete applique :
grep "gdate -d" ~/Projects/cc-statusline/src/statusline-utils.sh
Si aucun resultat, reappliquer le patch :
sed -i '' 's/date -d/gdate -d/g' ~/Projects/cc-statusline/src/statusline-utils.sh
sed -i '' 's/date -d/gdate -d/g' ~/Projects/cc-statusline/src/statusline.sh
Mettre show_monthly: false dans config.json.
ls -la ~/.claude/statusline.sh
cat ~/.claude/settings.json | jq '.statusLine'
echo '{"workspace":{"current_dir":"~"},"transcript_path":""}' | ~/.claude/statusline.sh
Pour passer en 24h :
sed -i '' 's/date "+%-l:%M%p"/date "+%H:%M"/g' ~/Projects/cc-statusline/src/statusline.sh
sed -i '' 's/date "+%I:%M%p"/date "+%H:%M"/g' ~/Projects/cc-statusline/src/statusline.sh
sed -i '' 's/"+%-l%p"/"+%H:%M"/g' ~/Projects/cc-statusline/src/statusline.sh
Pour revenir en 12h (AM/PM), reinstaller le repo et reappliquer les patches.
Relancer ce skill - le nettoyage est automatique en Phase 1.
Apres un git pull, les patches macOS et format heure seront ecrases. Re-appliquer :
cd ~/Projects/cc-statusline
git pull
# Re-appliquer patch macOS si Darwin
if [ "$(uname -s)" = "Darwin" ]; then
sed -i '' 's/date -d/gdate -d/g' src/statusline-utils.sh
sed -i '' 's/date -d/gdate -d/g' src/statusline.sh
fi
# Re-appliquer patch 24h si souhaite
sed -i '' 's/date "+%-l:%M%p"/date "+%H:%M"/g' src/statusline.sh
sed -i '' 's/date "+%I:%M%p"/date "+%H:%M"/g' src/statusline.sh
sed -i '' 's/"+%-l%p"/"+%H:%M"/g' src/statusline.sh
npx claudepluginhub lingelo/marketplace-claude-code --plugin statuslineInteractive wizard sets up Claude Code's custom status line with progress bars, token counts, git branch, model name, and session info. Cross-platform for Mac/Linux/Windows via bash/PowerShell scripts.
Customizes the Claude Code statusline: add/remove segments (cost, git, model, context), switch color themes (catppuccin, dracula, nord), and modify display settings.
Creates and customizes Claude Code status lines to display contextual info like model name, git branch, token usage, project colors, and session cost. Supports manual scripts or ccstatusline widget.