Vai al contenuto principale
La barra di stato è una barra personalizzabile nella parte inferiore di Claude Code che esegue qualsiasi script di shell che configuri. Riceve dati di sessione JSON su stdin e visualizza tutto ciò che il tuo script stampa, fornendoti una visualizzazione persistente e immediata dell’utilizzo del contesto, dei costi, dello stato git o di qualsiasi altra cosa tu voglia tracciare. Le barre di stato sono utili quando:
  • Vuoi monitorare l’utilizzo della finestra di contesto mentre lavori
  • Hai bisogno di tracciare i costi della sessione
  • Lavori su più sessioni e hai bisogno di distinguerle
  • Vuoi che il ramo git e lo stato siano sempre visibili
Ecco un esempio di una barra di stato multi-riga che visualizza le informazioni git sulla prima riga e una barra di contesto codificata a colori sulla seconda.
Una barra di stato multi-riga che mostra il nome del modello, la directory, il ramo git sulla prima riga, e una barra di progresso dell'utilizzo del contesto con costo e durata sulla seconda riga
Questa pagina illustra come configurare una barra di stato di base, spiega come fluiscono i dati da Claude Code al tuo script, elenca tutti i campi che puoi visualizzare, e fornisce esempi pronti all’uso per modelli comuni come lo stato git, il tracciamento dei costi e le barre di progresso.

Configura una barra di stato

Usa il comando /statusline per far generare uno script a Claude Code, oppure crea manualmente uno script e aggiungilo alle tue impostazioni.

Usa il comando /statusline

Il comando /statusline accetta istruzioni in linguaggio naturale che descrivono cosa vuoi visualizzare. Claude Code genera un file di script in ~/.claude/ e aggiorna automaticamente le tue impostazioni:
/statusline show model name and context percentage with a progress bar

Configura manualmente una barra di stato

Aggiungi un campo statusLine alle tue impostazioni utente (~/.claude/settings.json, dove ~ è la tua directory home) o alle impostazioni del progetto. Imposta type su "command" e punta command a un percorso di script o a un comando di shell inline. Per una procedura dettagliata sulla creazione di uno script, vedi Costruisci una barra di stato passo dopo passo.
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh",
    "padding": 2
  }
}
Il campo command viene eseguito in una shell, quindi puoi anche usare comandi inline invece di un file di script. Questo esempio usa jq per analizzare l’input JSON e visualizzare il nome del modello e la percentuale di contesto:
{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"
  }
}
Il campo opzionale padding aggiunge spazi orizzontali extra (in caratteri) al contenuto della barra di stato. Il valore predefinito è 0. Questo padding è in aggiunta alla spaziatura integrata dell’interfaccia, quindi controlla l’indentazione relativa piuttosto che la distanza assoluta dal bordo del terminale.

Disabilita la barra di stato

Esegui /statusline e chiedigli di rimuovere o cancellare la tua barra di stato (ad esempio, /statusline delete, /statusline clear, /statusline remove it). Puoi anche eliminare manualmente il campo statusLine dal tuo settings.json.

Costruisci una barra di stato passo dopo passo

Questa procedura mostra cosa sta accadendo dietro le quinte creando manualmente una barra di stato che visualizza il modello corrente, la directory di lavoro e la percentuale di utilizzo della finestra di contesto.
Eseguire /statusline con una descrizione di quello che vuoi configura tutto questo automaticamente per te.
Questi esempi usano script Bash, che funzionano su macOS e Linux. Su Windows, vedi Configurazione Windows per esempi PowerShell e Git Bash.
Una barra di stato che mostra il nome del modello, la directory e la percentuale di contesto
1

Crea uno script che legge JSON e stampa l'output

Claude Code invia dati JSON al tuo script tramite stdin. Questo script usa jq, un parser JSON da riga di comando che potrebbe essere necessario installare, per estrarre il nome del modello, la directory e la percentuale di contesto, quindi stampa una riga formattata.Salva questo in ~/.claude/statusline.sh (dove ~ è la tua directory home, come /Users/username su macOS o /home/username su Linux):
#!/bin/bash
# Read JSON data that Claude Code sends to stdin
input=$(cat)

# Extract fields using jq
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
# The "// 0" provides a fallback if the field is null
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

# Output the status line - ${DIR##*/} extracts just the folder name
echo "[$MODEL] 📁 ${DIR##*/} | ${PCT}% context"
2

Rendilo eseguibile

Contrassegna lo script come eseguibile in modo che la tua shell possa eseguirlo:
chmod +x ~/.claude/statusline.sh
3

Aggiungi alle impostazioni

Dì a Claude Code di eseguire il tuo script come barra di stato. Aggiungi questa configurazione a ~/.claude/settings.json, che imposta type su "command" (che significa “esegui questo comando di shell”) e punta command al tuo script:
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}
La tua barra di stato appare nella parte inferiore dell’interfaccia. Le impostazioni si ricaricano automaticamente, ma le modifiche non appariranno fino alla tua prossima interazione con Claude Code.

Come funzionano le barre di stato

Claude Code esegue il tuo script e invia i dati di sessione JSON ad esso tramite stdin. Il tuo script legge il JSON, estrae quello di cui ha bisogno e stampa il testo su stdout. Claude Code visualizza tutto ciò che il tuo script stampa. Quando si aggiorna Il tuo script viene eseguito dopo ogni nuovo messaggio dell’assistente, quando cambia la modalità di autorizzazione o quando la modalità vim si attiva/disattiva. Gli aggiornamenti vengono debounced a 300ms, il che significa che i cambiamenti rapidi si raggruppano insieme e il tuo script viene eseguito una volta che le cose si stabilizzano. Se un nuovo aggiornamento si attiva mentre il tuo script è ancora in esecuzione, l’esecuzione in corso viene annullata. Se modifichi il tuo script, le modifiche non appariranno fino al prossimo aggiornamento di Claude Code. Cosa può produrre il tuo script
La barra di stato viene eseguita localmente e non consuma token API. Si nasconde temporaneamente durante determinate interazioni dell’interfaccia utente, inclusi i suggerimenti di completamento automatico, il menu della guida e i prompt di autorizzazione.

Dati disponibili

Claude Code invia i seguenti campi JSON al tuo script tramite stdin:
CampoDescrizione
model.id, model.display_nameIdentificatore del modello corrente e nome visualizzato
cwd, workspace.current_dirDirectory di lavoro corrente. Entrambi i campi contengono lo stesso valore; workspace.current_dir è preferito per coerenza con workspace.project_dir.
workspace.project_dirDirectory in cui Claude Code è stato avviato, che potrebbe differire da cwd se la directory di lavoro cambia durante una sessione
cost.total_cost_usdCosto totale della sessione in USD
cost.total_duration_msTempo totale trascorso dal momento dell’avvio della sessione, in millisecondi
cost.total_api_duration_msTempo totale trascorso in attesa delle risposte API in millisecondi
cost.total_lines_added, cost.total_lines_removedRighe di codice modificate
context_window.total_input_tokens, context_window.total_output_tokensConteggi cumulativi dei token nella sessione
context_window.context_window_sizeDimensione massima della finestra di contesto in token. 200000 per impostazione predefinita, o 1000000 per i modelli con contesto esteso.
context_window.used_percentagePercentuale pre-calcolata della finestra di contesto utilizzata
context_window.remaining_percentagePercentuale pre-calcolata della finestra di contesto rimanente
context_window.current_usageConteggi dei token dall’ultima chiamata API, descritti in campi della finestra di contesto
exceeds_200k_tokensSe il conteggio totale dei token (token di input, cache e output combinati) dalla risposta API più recente supera 200k. Questo è un limite fisso indipendentemente dalla dimensione effettiva della finestra di contesto.
session_idIdentificatore univoco della sessione
transcript_pathPercorso del file di trascrizione della conversazione
versionVersione di Claude Code
output_style.nameNome dello stile di output corrente
vim.modeModalità vim corrente (NORMAL o INSERT) quando la modalità vim è abilitata
agent.nameNome dell’agente quando si esegue con il flag --agent o le impostazioni dell’agente configurate
worktree.nameNome del worktree attivo. Presente solo durante le sessioni --worktree
worktree.pathPercorso assoluto della directory del worktree
worktree.branchNome del ramo git per il worktree (ad esempio, "worktree-my-feature"). Assente per i worktree basati su hook
worktree.original_cwdLa directory in cui Claude si trovava prima di entrare nel worktree
worktree.original_branchRamo git estratto prima di entrare nel worktree. Assente per i worktree basati su hook
Il tuo comando della barra di stato riceve questa struttura JSON tramite stdin:
{
  "cwd": "/current/working/directory",
  "session_id": "abc123...",
  "transcript_path": "/path/to/transcript.jsonl",
  "model": {
    "id": "claude-opus-4-6",
    "display_name": "Opus"
  },
  "workspace": {
    "current_dir": "/current/working/directory",
    "project_dir": "/original/project/directory"
  },
  "version": "1.0.80",
  "output_style": {
    "name": "default"
  },
  "cost": {
    "total_cost_usd": 0.01234,
    "total_duration_ms": 45000,
    "total_api_duration_ms": 2300,
    "total_lines_added": 156,
    "total_lines_removed": 23
  },
  "context_window": {
    "total_input_tokens": 15234,
    "total_output_tokens": 4521,
    "context_window_size": 200000,
    "used_percentage": 8,
    "remaining_percentage": 92,
    "current_usage": {
      "input_tokens": 8500,
      "output_tokens": 1200,
      "cache_creation_input_tokens": 5000,
      "cache_read_input_tokens": 2000
    }
  },
  "exceeds_200k_tokens": false,
  "vim": {
    "mode": "NORMAL"
  },
  "agent": {
    "name": "security-reviewer"
  },
  "worktree": {
    "name": "my-feature",
    "path": "/path/to/.claude/worktrees/my-feature",
    "branch": "worktree-my-feature",
    "original_cwd": "/path/to/project",
    "original_branch": "main"
  }
}
Campi che potrebbero essere assenti (non presenti in JSON):
  • vim: appare solo quando la modalità vim è abilitata
  • agent: appare solo quando si esegue con il flag --agent o le impostazioni dell’agente configurate
  • worktree: appare solo durante le sessioni --worktree. Quando presente, branch e original_branch potrebbero anche essere assenti per i worktree basati su hook
Campi che potrebbero essere null:
  • context_window.current_usage: null prima della prima chiamata API in una sessione
  • context_window.used_percentage, context_window.remaining_percentage: potrebbero essere null all’inizio della sessione
Gestisci i campi mancanti con accesso condizionale e i valori null con fallback predefiniti nei tuoi script.

Campi della finestra di contesto

L’oggetto context_window fornisce due modi per tracciare l’utilizzo del contesto:
  • Totali cumulativi (total_input_tokens, total_output_tokens): somma di tutti i token nell’intera sessione, utile per tracciare il consumo totale
  • Utilizzo corrente (current_usage): conteggi dei token dall’ultima chiamata API, usa questo per una percentuale di contesto accurata poiché riflette lo stato effettivo del contesto
L’oggetto current_usage contiene:
  • input_tokens: token di input nel contesto corrente
  • output_tokens: token di output generati
  • cache_creation_input_tokens: token scritti nella cache
  • cache_read_input_tokens: token letti dalla cache
Il campo used_percentage viene calcolato solo dai token di input: input_tokens + cache_creation_input_tokens + cache_read_input_tokens. Non include output_tokens. Se calcoli manualmente la percentuale di contesto da current_usage, usa la stessa formula solo per l’input per corrispondere a used_percentage. L’oggetto current_usage è null prima della prima chiamata API in una sessione.

Esempi

Questi esempi mostrano modelli comuni della barra di stato. Per usare qualsiasi esempio:
  1. Salva lo script in un file come ~/.claude/statusline.sh (o .py/.js)
  2. Rendilo eseguibile: chmod +x ~/.claude/statusline.sh
  3. Aggiungi il percorso alle tue impostazioni
Gli esempi Bash usano jq per analizzare JSON. Python e Node.js hanno l’analisi JSON integrata.

Utilizzo della finestra di contesto

Visualizza il modello corrente e l’utilizzo della finestra di contesto con una barra di progresso visiva. Ogni script legge JSON da stdin, estrae il campo used_percentage e costruisce una barra di 10 caratteri dove i blocchi pieni (▓) rappresentano l’utilizzo:
Una barra di stato che mostra il nome del modello e una barra di progresso con percentuale
#!/bin/bash
# Read all of stdin into a variable
input=$(cat)

# Extract fields with jq, "// 0" provides fallback for null
MODEL=$(echo "$input" | jq -r '.model.display_name')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)

# Build progress bar: printf -v creates a run of spaces, then
# ${var// /▓} replaces each space with a block character
BAR_WIDTH=10
FILLED=$((PCT * BAR_WIDTH / 100))
EMPTY=$((BAR_WIDTH - FILLED))
BAR=""
[ "$FILLED" -gt 0 ] && printf -v FILL "%${FILLED}s" && BAR="${FILL// /▓}"
[ "$EMPTY" -gt 0 ] && printf -v PAD "%${EMPTY}s" && BAR="${BAR}${PAD// /░}"

echo "[$MODEL] $BAR $PCT%"

Stato git con colori

Mostra il ramo git con indicatori codificati a colori per i file in staging e modificati. Questo script usa codici di escape ANSI per i colori del terminale: \033[32m è verde, \033[33m è giallo e \033[0m ripristina il valore predefinito.
Una barra di stato che mostra il modello, la directory, il ramo git e indicatori codificati a colori per i file in staging e modificati
Ogni script verifica se la directory corrente è un repository git, conta i file in staging e modificati e visualizza indicatori codificati a colori:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')

GREEN='\033[32m'
YELLOW='\033[33m'
RESET='\033[0m'

if git rev-parse --git-dir > /dev/null 2>&1; then
    BRANCH=$(git branch --show-current 2>/dev/null)
    STAGED=$(git diff --cached --numstat 2>/dev/null | wc -l | tr -d ' ')
    MODIFIED=$(git diff --numstat 2>/dev/null | wc -l | tr -d ' ')

    GIT_STATUS=""
    [ "$STAGED" -gt 0 ] && GIT_STATUS="${GREEN}+${STAGED}${RESET}"
    [ "$MODIFIED" -gt 0 ] && GIT_STATUS="${GIT_STATUS}${YELLOW}~${MODIFIED}${RESET}"

    echo -e "[$MODEL] 📁 ${DIR##*/} | 🌿 $BRANCH $GIT_STATUS"
else
    echo "[$MODEL] 📁 ${DIR##*/}"
fi

Tracciamento di costi e durata

Traccia i costi API della tua sessione e il tempo trascorso. Il campo cost.total_cost_usd accumula il costo di tutte le chiamate API nella sessione corrente. Il campo cost.total_duration_ms misura il tempo totale trascorso dall’inizio della sessione, mentre cost.total_api_duration_ms traccia solo il tempo trascorso in attesa delle risposte API. Ogni script formatta il costo come valuta e converte i millisecondi in minuti e secondi:
Una barra di stato che mostra il nome del modello, il costo della sessione e la durata
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
DURATION_MS=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')

COST_FMT=$(printf '$%.2f' "$COST")
DURATION_SEC=$((DURATION_MS / 1000))
MINS=$((DURATION_SEC / 60))
SECS=$((DURATION_SEC % 60))

echo "[$MODEL] 💰 $COST_FMT | ⏱️ ${MINS}m ${SECS}s"

Visualizza più righe

Il tuo script può produrre più righe per creare una visualizzazione più ricca. Ogni istruzione echo produce una riga separata nell’area di stato.
Una barra di stato multi-riga che mostra il nome del modello, la directory, il ramo git sulla prima riga, e una barra di progresso dell'utilizzo del contesto con costo e durata sulla seconda riga
Questo esempio combina diverse tecniche: colori basati su soglie (verde sotto il 70%, giallo 70-89%, rosso 90%+), una barra di progresso e informazioni sul ramo git. Ogni istruzione print o echo crea una riga separata:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
DURATION_MS=$(echo "$input" | jq -r '.cost.total_duration_ms // 0')

CYAN='\033[36m'; GREEN='\033[32m'; YELLOW='\033[33m'; RED='\033[31m'; RESET='\033[0m'

# Pick bar color based on context usage
if [ "$PCT" -ge 90 ]; then BAR_COLOR="$RED"
elif [ "$PCT" -ge 70 ]; then BAR_COLOR="$YELLOW"
else BAR_COLOR="$GREEN"; fi

FILLED=$((PCT / 10)); EMPTY=$((10 - FILLED))
printf -v FILL "%${FILLED}s"; printf -v PAD "%${EMPTY}s"
BAR="${FILL// /█}${PAD// /░}"

MINS=$((DURATION_MS / 60000)); SECS=$(((DURATION_MS % 60000) / 1000))

BRANCH=""
git rev-parse --git-dir > /dev/null 2>&1 && BRANCH=" | 🌿 $(git branch --show-current 2>/dev/null)"

echo -e "${CYAN}[$MODEL]${RESET} 📁 ${DIR##*/}$BRANCH"
COST_FMT=$(printf '$%.2f' "$COST")
echo -e "${BAR_COLOR}${BAR}${RESET} ${PCT}% | ${YELLOW}${COST_FMT}${RESET} | ⏱️ ${MINS}m ${SECS}s"
Questo esempio crea un link cliccabile al tuo repository GitHub. Legge l’URL del remote git, converte il formato SSH in HTTPS con sed e avvolge il nome del repository nei codici di escape OSC 8. Tieni premuto Cmd (macOS) o Ctrl (Windows/Linux) e fai clic per aprire il link nel tuo browser.
Una barra di stato che mostra un link cliccabile a un repository GitHub
Ogni script ottiene l’URL del remote git, converte il formato SSH in HTTPS e avvolge il nome del repository nei codici di escape OSC 8. La versione Bash usa printf '%b' che interpreta gli escape di backslash in modo più affidabile rispetto a echo -e su diverse shell:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')

# Convert git SSH URL to HTTPS
REMOTE=$(git remote get-url origin 2>/dev/null | sed 's/[email protected]:/https:\/\/github.com\//' | sed 's/\.git$//')

if [ -n "$REMOTE" ]; then
    REPO_NAME=$(basename "$REMOTE")
    # OSC 8 format: \e]8;;URL\a then TEXT then \e]8;;\a
    # printf %b interprets escape sequences reliably across shells
    printf '%b' "[$MODEL] 🔗 \e]8;;${REMOTE}\a${REPO_NAME}\e]8;;\a\n"
else
    echo "[$MODEL]"
fi

Memorizza nella cache le operazioni costose

Il tuo script della barra di stato viene eseguito frequentemente durante le sessioni attive. Comandi come git status o git diff possono essere lenti, specialmente in repository di grandi dimensioni. Questo esempio memorizza nella cache le informazioni git in un file temporaneo e le aggiorna solo ogni 5 secondi. Usa un nome di file stabile e fisso per il file di cache come /tmp/statusline-git-cache. Ogni invocazione della barra di stato viene eseguita come un nuovo processo, quindi gli identificatori basati su processi come $$, os.getpid() o process.pid producono un valore diverso ogni volta e la cache non viene mai riutilizzata. Ogni script verifica se il file di cache è mancante o più vecchio di 5 secondi prima di eseguire i comandi git:
#!/bin/bash
input=$(cat)

MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')

CACHE_FILE="/tmp/statusline-git-cache"
CACHE_MAX_AGE=5  # seconds

cache_is_stale() {
    [ ! -f "$CACHE_FILE" ] || \
    # stat -f %m is macOS, stat -c %Y is Linux
    [ $(($(date +%s) - $(stat -f %m "$CACHE_FILE" 2>/dev/null || stat -c %Y "$CACHE_FILE" 2>/dev/null || echo 0))) -gt $CACHE_MAX_AGE ]
}

if cache_is_stale; then
    if git rev-parse --git-dir > /dev/null 2>&1; then
        BRANCH=$(git branch --show-current 2>/dev/null)
        STAGED=$(git diff --cached --numstat 2>/dev/null | wc -l | tr -d ' ')
        MODIFIED=$(git diff --numstat 2>/dev/null | wc -l | tr -d ' ')
        echo "$BRANCH|$STAGED|$MODIFIED" > "$CACHE_FILE"
    else
        echo "||" > "$CACHE_FILE"
    fi
fi

IFS='|' read -r BRANCH STAGED MODIFIED < "$CACHE_FILE"

if [ -n "$BRANCH" ]; then
    echo "[$MODEL] 📁 ${DIR##*/} | 🌿 $BRANCH +$STAGED ~$MODIFIED"
else
    echo "[$MODEL] 📁 ${DIR##*/}"
fi

Configurazione Windows

Su Windows, Claude Code esegue i comandi della barra di stato tramite Git Bash. Puoi invocare PowerShell da quella shell:
{
  "statusLine": {
    "type": "command",
    "command": "powershell -NoProfile -File C:/Users/username/.claude/statusline.ps1"
  }
}
Oppure esegui uno script Bash direttamente:
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

Suggerimenti

  • Testa con input simulato: echo '{"model":{"display_name":"Opus"},"context_window":{"used_percentage":25}}' | ./statusline.sh
  • Mantieni l’output breve: la barra di stato ha una larghezza limitata, quindi l’output lungo potrebbe essere troncato o andare a capo in modo sgradevole
  • Memorizza nella cache le operazioni lente: il tuo script viene eseguito frequentemente durante le sessioni attive, quindi comandi come git status possono causare lag. Vedi l’esempio di caching per come gestire questo.
Progetti della comunità come ccstatusline e starship-claude forniscono configurazioni pre-costruite con temi e funzionalità aggiuntive.

Risoluzione dei problemi

La barra di stato non appare
  • Verifica che il tuo script sia eseguibile: chmod +x ~/.claude/statusline.sh
  • Controlla che il tuo script stampi su stdout, non su stderr
  • Esegui il tuo script manualmente per verificare che produca output
  • Se disableAllHooks è impostato su true nelle tue impostazioni, anche la barra di stato è disabilitata. Rimuovi questa impostazione o impostala su false per riabilitarla.
  • Esegui claude --debug per registrare il codice di uscita e stderr dalla prima invocazione della barra di stato in una sessione
  • Chiedi a Claude di leggere il tuo file di impostazioni ed eseguire il comando statusLine direttamente per far emergere gli errori
La barra di stato mostra -- o valori vuoti
  • I campi potrebbero essere null prima che la prima risposta API si completi
  • Gestisci i valori null nel tuo script con fallback come // 0 in jq
  • Riavvia Claude Code se i valori rimangono vuoti dopo più messaggi
La percentuale di contesto mostra valori inaspettati
  • Usa used_percentage per uno stato di contesto accurato piuttosto che i totali cumulativi
  • total_input_tokens e total_output_tokens sono cumulativi nella sessione e potrebbero superare la dimensione della finestra di contesto
  • La percentuale di contesto potrebbe differire dall’output /context a causa di quando ciascuno viene calcolato
I link OSC 8 non sono cliccabili
  • Verifica che il tuo terminale supporti i hyperlink OSC 8 (iTerm2, Kitty, WezTerm)
  • Terminal.app non supporta i link cliccabili
  • Le sessioni SSH e tmux potrebbero eliminare le sequenze OSC a seconda della configurazione
  • Se le sequenze di escape appaiono come testo letterale come \e]8;;, usa printf '%b' invece di echo -e per una gestione più affidabile degli escape
Glitch di visualizzazione con sequenze di escape
  • Le sequenze di escape complesse (colori ANSI, link OSC 8) possono occasionalmente causare output corrotto se si sovrappongono ad altri aggiornamenti dell’interfaccia utente
  • Se vedi testo corrotto, prova a semplificare il tuo script in output di testo semplice
  • Le barre di stato multi-riga con codici di escape sono più soggette a problemi di rendering rispetto al testo semplice su una sola riga
Errori di script o blocchi
  • Gli script che escono con codici diversi da zero o non producono output causano il vuoto della barra di stato
  • Gli script lenti bloccano l’aggiornamento della barra di stato fino al completamento. Mantieni gli script veloci per evitare output obsoleto.
  • Se un nuovo aggiornamento si attiva mentre uno script lento è in esecuzione, lo script in corso viene annullato
  • Testa il tuo script indipendentemente con input simulato prima di configurarlo
Le notifiche condividono la riga della barra di stato
  • Le notifiche di sistema come errori del server MCP, aggiornamenti automatici e avvisi di token vengono visualizzate sul lato destro della stessa riga della tua barra di stato
  • L’abilitazione della modalità verbose aggiunge un contatore di token a questa area
  • Su terminali stretti, queste notifiche potrebbero troncare l’output della tua barra di stato