Saltar al contenido principal
La línea de estado es una barra personalizable en la parte inferior de Claude Code que ejecuta cualquier script de shell que configures. Recibe datos de sesión JSON en stdin y muestra lo que tu script imprime, dándote una vista persistente y de un vistazo del uso de contexto, costos, estado de git, o cualquier otra cosa que desees rastrear. Las líneas de estado son útiles cuando:
  • Deseas monitorear el uso de la ventana de contexto mientras trabajas
  • Necesitas rastrear los costos de la sesión
  • Trabajas en múltiples sesiones y necesitas distinguirlas
  • Deseas que la rama de git y el estado siempre sean visibles
Aquí hay un ejemplo de una línea de estado de múltiples líneas que muestra información de git en la primera línea y una barra de contexto codificada por colores en la segunda.
Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea
Esta página te guía a través de configurar una línea de estado básica, explica cómo fluyen los datos desde Claude Code a tu script, enumera todos los campos que puedes mostrar, y proporciona ejemplos listos para usar para patrones comunes como estado de git, seguimiento de costos y barras de progreso.

Configurar una línea de estado

Usa el comando /statusline para que Claude Code genere un script para ti, o crea manualmente un script y agrégalo a tu configuración.

Usar el comando /statusline

El comando /statusline acepta instrucciones en lenguaje natural que describen lo que deseas mostrar. Claude Code genera un archivo de script en ~/.claude/ y actualiza tu configuración automáticamente:
/statusline show model name and context percentage with a progress bar

Configurar manualmente una línea de estado

Agrega un campo statusLine a tu configuración de usuario (~/.claude/settings.json, donde ~ es tu directorio de inicio) o configuración del proyecto. Establece type en "command" y apunta command a una ruta de script o un comando de shell en línea. Para un tutorial completo sobre cómo crear un script, consulta Construir una línea de estado paso a paso.
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh",
    "padding": 2
  }
}
El campo command se ejecuta en un shell, por lo que también puedes usar comandos en línea en lugar de un archivo de script. Este ejemplo usa jq para analizar la entrada JSON y mostrar el nombre del modelo y el porcentaje de contexto:
{
  "statusLine": {
    "type": "command",
    "command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"
  }
}
El campo padding opcional agrega espaciado horizontal adicional (en caracteres) al contenido de la línea de estado. Por defecto es 0. Este relleno se suma al espaciado integrado de la interfaz, por lo que controla la indentación relativa en lugar de la distancia absoluta desde el borde de la terminal.

Desactivar la línea de estado

Ejecuta /statusline y pídele que elimine o borre tu línea de estado (por ejemplo, /statusline delete, /statusline clear, /statusline remove it). También puedes eliminar manualmente el campo statusLine de tu settings.json.

Construir una línea de estado paso a paso

Este tutorial muestra lo que está sucediendo bajo el capó creando manualmente una línea de estado que muestra el modelo actual, el directorio de trabajo y el porcentaje de uso de la ventana de contexto.
Ejecutar /statusline con una descripción de lo que deseas configura todo esto automáticamente para ti.
Estos ejemplos usan scripts de Bash, que funcionan en macOS y Linux. En Windows, consulta Configuración de Windows para ejemplos de PowerShell y Git Bash.
Una línea de estado que muestra el nombre del modelo, directorio y porcentaje de contexto
1

Crear un script que lea JSON e imprima salida

Claude Code envía datos JSON a tu script a través de stdin. Este script usa jq, un analizador JSON de línea de comandos que es posible que necesites instalar, para extraer el nombre del modelo, el directorio y el porcentaje de contexto, luego imprime una línea formateada.Guarda esto en ~/.claude/statusline.sh (donde ~ es tu directorio de inicio, como /Users/username en macOS o /home/username en 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

Hacerlo ejecutable

Marca el script como ejecutable para que tu shell pueda ejecutarlo:
chmod +x ~/.claude/statusline.sh
3

Agregar a la configuración

Dile a Claude Code que ejecute tu script como la línea de estado. Agrega esta configuración a ~/.claude/settings.json, que establece type en "command" (lo que significa “ejecutar este comando de shell”) y apunta command a tu script:
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}
Tu línea de estado aparece en la parte inferior de la interfaz. La configuración se recarga automáticamente, pero los cambios no aparecerán hasta tu próxima interacción con Claude Code.

Cómo funcionan las líneas de estado

Claude Code ejecuta tu script y canaliza datos de sesión JSON a través de stdin. Tu script lee el JSON, extrae lo que necesita e imprime texto a stdout. Claude Code muestra lo que tu script imprime. Cuándo se actualiza Tu script se ejecuta después de cada nuevo mensaje del asistente, cuando cambia el modo de permiso, o cuando se activa/desactiva el modo vim. Las actualizaciones se debounce en 300ms, lo que significa que los cambios rápidos se agrupan y tu script se ejecuta una vez que las cosas se estabilizan. Si una nueva actualización se activa mientras tu script aún se está ejecutando, la ejecución en vuelo se cancela. Si editas tu script, los cambios no aparecerán hasta que tu próxima interacción con Claude Code active una actualización. Lo que tu script puede generar
La línea de estado se ejecuta localmente y no consume tokens de API. Se oculta temporalmente durante ciertas interacciones de la interfaz, incluidas sugerencias de autocompletado, el menú de ayuda y solicitudes de permiso.

Datos disponibles

Claude Code envía los siguientes campos JSON a tu script a través de stdin:
CampoDescripción
model.id, model.display_nameIdentificador del modelo actual y nombre para mostrar
cwd, workspace.current_dirDirectorio de trabajo actual. Ambos campos contienen el mismo valor; workspace.current_dir es preferido para consistencia con workspace.project_dir.
workspace.project_dirDirectorio donde se lanzó Claude Code, que puede diferir de cwd si el directorio de trabajo cambia durante una sesión
cost.total_cost_usdCosto total de la sesión en USD
cost.total_duration_msTiempo total transcurrido desde que comenzó la sesión, en milisegundos
cost.total_api_duration_msTiempo total dedicado a esperar respuestas de API en milisegundos
cost.total_lines_added, cost.total_lines_removedLíneas de código cambiadas
context_window.total_input_tokens, context_window.total_output_tokensConteos de tokens acumulativos en toda la sesión
context_window.context_window_sizeTamaño máximo de la ventana de contexto en tokens. 200000 por defecto, o 1000000 para modelos con contexto extendido.
context_window.used_percentagePorcentaje precalculado de ventana de contexto utilizada
context_window.remaining_percentagePorcentaje precalculado de ventana de contexto restante
context_window.current_usageConteos de tokens de la última llamada a API, descritos en campos de ventana de contexto
exceeds_200k_tokensSi el conteo total de tokens (tokens de entrada, caché y salida combinados) de la respuesta de API más reciente excede 200k. Este es un umbral fijo independientemente del tamaño real de la ventana de contexto.
session_idIdentificador único de sesión
transcript_pathRuta al archivo de transcripción de conversación
versionVersión de Claude Code
output_style.nameNombre del estilo de salida actual
vim.modeModo vim actual (NORMAL o INSERT) cuando el modo vim está habilitado
agent.nameNombre del agente cuando se ejecuta con la bandera --agent o configuración de agente configurada
worktree.nameNombre del worktree activo. Presente solo durante sesiones --worktree
worktree.pathRuta absoluta al directorio del worktree
worktree.branchNombre de rama de Git para el worktree (por ejemplo, "worktree-my-feature"). Ausente para worktrees basados en hooks
worktree.original_cwdEl directorio en el que estaba Claude antes de entrar en el worktree
worktree.original_branchRama de Git extraída antes de entrar en el worktree. Ausente para worktrees basados en hooks
Tu comando de línea de estado recibe esta estructura JSON a través de 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"
  }
}
Campos que pueden estar ausentes (no presentes en JSON):
  • vim: aparece solo cuando el modo vim está habilitado
  • agent: aparece solo cuando se ejecuta con la bandera --agent o configuración de agente configurada
  • worktree: aparece solo durante sesiones --worktree. Cuando está presente, branch y original_branch también pueden estar ausentes para worktrees basados en hooks
Campos que pueden ser null:
  • context_window.current_usage: null antes de la primera llamada a API en una sesión
  • context_window.used_percentage, context_window.remaining_percentage: pueden ser null al principio de la sesión
Maneja campos faltantes con acceso condicional y valores nulos con valores predeterminados de respaldo en tus scripts.

Campos de ventana de contexto

El objeto context_window proporciona dos formas de rastrear el uso de contexto:
  • Totales acumulativos (total_input_tokens, total_output_tokens): suma de todos los tokens en toda la sesión, útil para rastrear el consumo total
  • Uso actual (current_usage): conteos de tokens de la llamada a API más reciente, úsalo para un porcentaje de contexto preciso ya que refleja el estado real del contexto
El objeto current_usage contiene:
  • input_tokens: tokens de entrada en contexto actual
  • output_tokens: tokens de salida generados
  • cache_creation_input_tokens: tokens escritos en caché
  • cache_read_input_tokens: tokens leídos del caché
El campo used_percentage se calcula solo a partir de tokens de entrada: input_tokens + cache_creation_input_tokens + cache_read_input_tokens. No incluye output_tokens. Si calculas el porcentaje de contexto manualmente desde current_usage, usa la misma fórmula de solo entrada para coincidir con used_percentage. El objeto current_usage es null antes de la primera llamada a API en una sesión.

Ejemplos

Estos ejemplos muestran patrones comunes de línea de estado. Para usar cualquier ejemplo:
  1. Guarda el script en un archivo como ~/.claude/statusline.sh (o .py/.js)
  2. Hazlo ejecutable: chmod +x ~/.claude/statusline.sh
  3. Agrega la ruta a tu configuración
Los ejemplos de Bash usan jq para analizar JSON. Python y Node.js tienen análisis JSON integrado.

Uso de ventana de contexto

Muestra el modelo actual y el uso de la ventana de contexto con una barra de progreso visual. Cada script lee JSON desde stdin, extrae el campo used_percentage y construye una barra de 10 caracteres donde los bloques rellenos (▓) representan el uso:
Una línea de estado que muestra el nombre del modelo y una barra de progreso con porcentaje
#!/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%"

Estado de git con colores

Muestra la rama de git con indicadores codificados por colores para archivos preparados y modificados. Este script usa códigos de escape ANSI para colores de terminal: \033[32m es verde, \033[33m es amarillo, y \033[0m restablece al predeterminado.
Una línea de estado que muestra modelo, directorio, rama de git e indicadores codificados por colores para archivos preparados y modificados
Cada script verifica si el directorio actual es un repositorio de git, cuenta archivos preparados y modificados, y muestra indicadores codificados por colores:
#!/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

Seguimiento de costos y duración

Rastrea los costos de API de tu sesión y el tiempo transcurrido. El campo cost.total_cost_usd acumula el costo de todas las llamadas a API en la sesión actual. El campo cost.total_duration_ms mide el tiempo total transcurrido desde que comenzó la sesión, mientras que cost.total_api_duration_ms rastrea solo el tiempo dedicado a esperar respuestas de API. Cada script formatea el costo como moneda y convierte milisegundos a minutos y segundos:
Una línea de estado que muestra el nombre del modelo, costo de sesión y duración
#!/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"

Mostrar múltiples líneas

Tu script puede generar múltiples líneas para crear una pantalla más rica. Cada declaración echo produce una fila separada en el área de estado.
Una línea de estado de múltiples líneas que muestra el nombre del modelo, directorio, rama de git en la primera línea, y una barra de progreso de uso de contexto con costo y duración en la segunda línea
Este ejemplo combina varias técnicas: colores basados en umbrales (verde por debajo del 70%, amarillo 70-89%, rojo 90%+), una barra de progreso e información de rama de git. Cada declaración print o echo crea una fila separada:
#!/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"

Enlaces clickeables

Este ejemplo crea un enlace clickeable a tu repositorio de GitHub. Lee la URL remota de git, convierte el formato SSH a HTTPS con sed, y envuelve el nombre del repositorio en códigos de escape OSC 8. Mantén presionado Cmd (macOS) o Ctrl (Windows/Linux) y haz clic para abrir el enlace en tu navegador.
Una línea de estado que muestra un enlace clickeable a un repositorio de GitHub
Cada script obtiene la URL remota de git, convierte el formato SSH a HTTPS, y envuelve el nombre del repositorio en códigos de escape OSC 8. La versión de Bash usa printf '%b' que interpreta escapes de barra invertida de manera más confiable que echo -e en diferentes shells:
#!/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

Cachear operaciones costosas

Tu script de línea de estado se ejecuta frecuentemente durante sesiones activas. Comandos como git status o git diff pueden ser lentos, especialmente en repositorios grandes. Este ejemplo cachea información de git en un archivo temporal y solo la actualiza cada 5 segundos. Usa un nombre de archivo de caché estable y fijo como /tmp/statusline-git-cache. Cada invocación de línea de estado se ejecuta como un nuevo proceso, por lo que identificadores basados en procesos como $$, os.getpid(), o process.pid producen un valor diferente cada vez y el caché nunca se reutiliza. Cada script verifica si el archivo de caché falta o es más antiguo que 5 segundos antes de ejecutar comandos de 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

Configuración de Windows

En Windows, Claude Code ejecuta comandos de línea de estado a través de Git Bash. Puedes invocar PowerShell desde ese shell:
{
  "statusLine": {
    "type": "command",
    "command": "powershell -NoProfile -File C:/Users/username/.claude/statusline.ps1"
  }
}
O ejecuta un script de Bash directamente:
{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

Consejos

  • Prueba con entrada simulada: echo '{"model":{"display_name":"Opus"},"context_window":{"used_percentage":25}}' | ./statusline.sh
  • Mantén la salida corta: la barra de estado tiene un ancho limitado, por lo que la salida larga puede truncarse o ajustarse de manera incómoda
  • Cachea operaciones lentas: tu script se ejecuta frecuentemente durante sesiones activas, por lo que comandos como git status pueden causar retrasos. Consulta el ejemplo de caché para saber cómo manejar esto.
Proyectos comunitarios como ccstatusline y starship-claude proporcionan configuraciones preconstruidas con temas y características adicionales.

Solución de problemas

La línea de estado no aparece
  • Verifica que tu script sea ejecutable: chmod +x ~/.claude/statusline.sh
  • Comprueba que tu script genere salida a stdout, no stderr
  • Ejecuta tu script manualmente para verificar que produce salida
  • Si disableAllHooks está establecido en true en tu configuración, la línea de estado también está deshabilitada. Elimina esta configuración o establécela en false para volver a habilitarla.
  • Ejecuta claude --debug para registrar el código de salida y stderr de la primera invocación de línea de estado en una sesión
  • Pídele a Claude que lea tu archivo de configuración y ejecute el comando statusLine directamente para exponer errores
La línea de estado muestra -- o valores vacíos
  • Los campos pueden ser null antes de que se complete la primera respuesta de API
  • Maneja valores nulos en tu script con valores predeterminados de respaldo como // 0 en jq
  • Reinicia Claude Code si los valores permanecen vacíos después de múltiples mensajes
El porcentaje de contexto muestra valores inesperados
  • Usa used_percentage para un estado de contexto preciso en lugar de totales acumulativos
  • Los total_input_tokens y total_output_tokens son acumulativos en toda la sesión y pueden exceder el tamaño de la ventana de contexto
  • El porcentaje de contexto puede diferir de la salida /context debido a cuándo se calcula cada uno
Los enlaces OSC 8 no son clickeables
  • Verifica que tu terminal admita hipervínculos OSC 8 (iTerm2, Kitty, WezTerm)
  • Terminal.app no admite enlaces clickeables
  • Las sesiones SSH y tmux pueden eliminar secuencias OSC dependiendo de la configuración
  • Si las secuencias de escape aparecen como texto literal como \e]8;;, usa printf '%b' en lugar de echo -e para un manejo más confiable de escapes
Problemas de visualización con secuencias de escape
  • Las secuencias de escape complejas (colores ANSI, enlaces OSC 8) pueden ocasionalmente causar salida garbled si se superponen con otras actualizaciones de la interfaz
  • Si ves texto corrupto, intenta simplificar tu script a salida de texto plano
  • Las líneas de estado de múltiples líneas con códigos de escape son más propensas a problemas de renderizado que el texto plano de una sola línea
Errores de script o bloqueos
  • Los scripts que salen con códigos distintos de cero o no producen salida hacen que la línea de estado se quede en blanco
  • Los scripts lentos bloquean la línea de estado de actualizar hasta que se completen. Mantén los scripts rápidos para evitar salida obsoleta.
  • Si una nueva actualización se activa mientras un script lento se está ejecutando, el script en vuelo se cancela
  • Prueba tu script de forma independiente con entrada simulada antes de configurarlo
Las notificaciones comparten la fila de la línea de estado
  • Las notificaciones del sistema como errores de servidor MCP, actualizaciones automáticas y advertencias de tokens se muestran en el lado derecho de la misma fila que tu línea de estado
  • Habilitar el modo verbose agrega un contador de tokens a esta área
  • En terminales estrechas, estas notificaciones pueden truncar tu salida de línea de estado