Personalizar la barra de estado de Claude Code: scripts e ideas
Vaya más allá de la configuración inicial: el JSON que recibe su script de statusline, los campos que merece la pena mostrar —modelo, tokens, coste, contexto, git—, ideas de color y distribución, y un script de la comunidad listo para robar.
En corto
- /statusline le escribe el script. Indique su sistema operativo, pida alcance global y un archivo .sh/.ps1 aparte, y apruebe los dos archivos: una entrada statusLine en ~/.claude/settings.json más el script al que apunta.
- El script lee un único objeto JSON por stdin —model.display_name, workspace.current_dir, context_window.used_percentage, cost.total_cost_usd, rate_limits— y muestra lo que usted decida.
- Pida los campos como lista numerada, coloree la barra de contexto por umbrales (verde bajo el 50 %, rojo a partir del 75 %), redondee los tokens a unidades K y reparta en varias líneas cuando una fila se sature.
- O instale un script de la comunidad: npx contextbricks le da modelo, rama y commit de git, un medidor de tokens estilo ladrillos y un aviso de límite semanal — así decide usted cuándo tocar /compact o /clear.
Claude Code's Hidden Status Line: Tokens, Model and Project, Your Way
Canal: 호두의 AI 분석실 (Waldo AI Lab)5:27
ContextBricks: My Custom Claude Code Status Line
Script de la comunidad: Jeremy Dawes6:17
Status line — official documentation
Docs: code.claude.com/docs
Los datos de esta página están cotejados con la documentación oficial de la status line y las dos grabaciones de arriba; los nombres de campos JSON citados coinciden exactamente con la referencia oficial. Las capturas son fotogramas de esas grabaciones.
Las capturas son fotogramas de los tutoriales de 호두의 AI 분석실 y Jeremy Dawes (ContextBricks), usados con atribución y enlazados a su marca de tiempo original en cada paso.
Personalice la barra de estado, paso a paso
Escriba bien el prompt de /statusline una vez
- 1
Un prompt de /statusline que diga su SO, el alcance y el archivo del script
Ejecute /statusline y deje tres cosas claras de entrada: su sistema (Mac, Linux, Windows o WSL), que la línea debe configurarse de forma global y que quiere un archivo .sh aparte —.ps1 en Windows. Si no, el agente de configuración adivina su entorno y puede apuntar a la shell equivocada, y un script a nivel de proyecto solo aparece en un repositorio. El prompt cabe en cuatro líneas; guárdelo en una nota para reutilizarlo.

El prompt de /statusline preparado: SO, alcance global, archivo aparte — listo para pegar.Ver en 1:15 - 2
Apruebe los dos archivos que crea el agente
Conceda los permisos de lectura y escritura y el agente informa exactamente de lo que tocó: ~/.claude/settings.json contiene ahora la configuración statusLine, y un script como ~/.claude/statusline-command.sh genera el contenido de la línea. Al vivir la lógica en un archivo aparte, Claude edita después el script — no sus ajustes. Reinicie Claude Code para que aparezca la línea.

Archivos creados/actualizados: settings.json guarda la entrada statusLine; el script construye el contenido.Ver en 3:20 - 3
Lea la especificación de la línea por defecto antes de ampliarla
De fábrica, la línea generada muestra el directorio actual, el nombre del modelo como [Claude Opus 4.5], el output style si no es el predeterminado, el modo vim, la rama git cuando está en un repositorio y el porcentaje de ventana de contexto usado — por ejemplo Claude-project [Claude Opus 4.5] (git:main) 12 %. Como la configuración es global, se aplica a todas las sesiones de Claude Code de la máquina.

La lista de visualización por defecto y un ejemplo renderizado de la línea generada.Ver en 2:45
Decida qué muestra la línea
- 4
Pida los campos que quiere, numerados
Solicite las incorporaciones como lista ordenada y el agente responde con un orden de visualización numerado. Esta ejecución produjo: nombre del modelo, una barra de progreso de 20 caracteres, un porcentaje tipo 20 %, tokens como 40000/200000, git:main y, al final, el directorio del proyecto — renderizado como Claude 3.5 Sonnet [==== ] 20% 40000/200000 git:main Claude-project. Los cambios aterrizan en el script; reinicie Claude Code para verlos.

Orden de visualización 1-6 con una línea de ejemplo, escrita en el script.Ver en 3:45 - 5
Dé a cada elemento un color con significado
Pida un color por elemento y el script recibe códigos ANSI con umbrales. La tabla acordada en esta ejecución: modelo en cian; barra de progreso verde por debajo del 50 %, amarilla del 50 al 75 %, roja por encima del 75 %; el porcentaje imita a la barra; tokens en magenta; rama en verde; proyecto en azul; separadores en gris. Reserve el rojo para la barra de contexto: el color de alarma solo para la presión real.

Tabla de colores elemento a elemento, con umbrales para la barra de progreso.Ver en 4:15 - 6
Redondee los tokens a unidades K y contrá telos con /context
Cifras crudas como 21373/200000 cuesta escanearlas. Pida unidades K y la línea lee 21k/200k — el agente avisa de que el valor va redondeado. Luego verifique: ejecute /context en la misma sesión y compare; los totales coinciden. Una rareza de la demo: tras redondear, una sesión de 22k y otra de 23K pueden verse igual — suficiente para una línea que se lee de un vistazo.

21373/200000 pasa a 21k/200k; /context confirma los mismos totales.Ver en 4:30 - 7
Abra dos sesiones y compruebe que cada línea se rige por sí misma
Abra dos terminales y arranque Claude Code en ambas. Cada línea de estado informa de su propia sesión: 11 % y 22k/200k a la izquierda, 9 % y 18k/200k a la derecha, mientras el /context de cada ventana coincide con su línea. Por eso la rama y el proyecto pertenecen a la línea: con varias pestañas en marcha, ve de un vistazo cuál pesa más sin ejecutar /context en todas.

Dos sesiones de Claude Code, cada línea de estado con su propio consumo de contexto.Ver en 5:15
Robe un script y léalo a diario
- 8
Sin escribir código: instale un script de la comunidad con npx
No tiene que escribir el script usted. ContextBricks se instala con un comando — npx contextbricks —, escribe ~/.claude/statusline.sh y actualiza settings.json, guardando antes una copia de seguridad. Su lista: nombre del modelo, mensaje git repo:branch [commit], indicadores de cambios sin confirmar, ahead y behind, líneas cambiadas en la sesión, uso de contexto en tiempo real con ladrillos visuales y un desglose de tokens. Se desinstala con ./uninstall.sh; la ruta de backup impresa restaura el script anterior.

npx contextbricks: script instalado, settings.json actualizado, capacidades enumeradas.Ver en 0:20 - 9
Lea el medidor mientras el agente trabaja
La línea personalizada brilla a mitad de sesión. En la demo lee [Sonnet 4.5], +2381/-0 líneas, y una barra de contexto al 18 % (36k/200k tokens) con el reparto sys:4k tools:16k mcp:2k mem:10k msg:4k y 163k libres. El autor cuenta tokens parseando la transcripción de la conversación —una estimación, no una cifra de la API— y le parece exacta bastante para decidir cuándo compactar o limpiar.

36k/200k tokens con desglose por categorías mientras se escriben los documentos de planificación.Ver en 5:00 - 10
Cierre por señal: el commit aterriza, el límite semanal se acerca
Tras un commit de git, la línea incorpora rama y commit: contextbricks:master [ffe9523] Add comprehensive planning documentation. El borde derecho añade una segunda señal — Approaching weekly limit. Con el porcentaje de contexto, el marcador de commit y el aviso de límite, sabe cuándo lanzar /compact o /clear a propósito en vez de que la autocompactación interrumpa la tarea.

Rama y commit aparecen en la línea; el aviso de límite semanal, a la derecha.Ver en 6:02
Lo que su script puede leer — campo a campo
Todo lo que aparece en la línea viene de un único objeto JSON que el script recibe por stdin — al iniciar la sesión y de nuevo tras cada actualización: un nuevo mensaje del asistente, un /compact terminado, un cambio de modo de permisos. Estos son los campos oficiales que merecen una fila.
- 1Modelo y effort — model.display_name como etiqueta (Sonnet 4.5, Opus 4.5) y effort.level si quiere ver el nivel de razonamiento al lado.
- 2Lugar — workspace.current_dir es el campo preferido para el directorio actual, workspace.project_dir el de lanzamiento, y workspace.repo.owner/.name identifican el repositorio parseado del remoto origin; la rama, con git branch --show-current.
- 3Contexto — context_window.used_percentage y remaining_percentage vienen precalculados, context_window.current_usage separa input, output, creación y lectura de caché, y context_window.context_window_size es 200000 por defecto (1000000 extendido).
- 4Dinero y tiempo — cost.total_cost_usd para el coste de sesión (se reinicia con /clear), cost.total_duration_ms y total_api_duration_ms para reloj frente a espera de API, más cost.total_lines_added y total_lines_removed.
- 5Límites — rate_limits.five_hour y rate_limits.seven_day exponen used_percentage y resets_at en los planes Pro y Max; la documentación incluye también un objeto prompt_cache con hit_ratio y expires_at para filas conscientes de la caché.
Detalles prácticos de la documentación: cada echo o print es su propia fila, así que los diseños multilínea son simplemente más print; los códigos ANSI los colorean; las variables de entorno COLUMNS y LINES dan el ancho del terminal; y todo campo condicionalmente ausente merece un fallback jq como .context_window.used_percentage // 0 para que la línea sobreviva a los primeros segundos de sesión.
Cuando la línea se porta mal
Casi toda línea de estado rota se remonta a cinco causas — y cada arreglo está a un prompt o a un comando de distancia.
- 1Línea en blanco o guiones (--) — son campos nulos antes de la primera respuesta de la API. La documentación recomienda fallbacks jq (// 0, // empty), y el aviso de confianza del workspace debe aceptarse o la línea sigue vacía.
- 2El script no se ejecuta — déle permisos con chmod +x, escriba en stdout y no en stderr, y lance claude --debug para ver sus errores.
- 3Números que no cuadran — el autor de ContextBricks cuenta que Claude erró el cálculo de tokens varios intentos seguidos. Pida al agente volcar el JSON crudo a un archivo de depuración y reescribir el script contra eso; luego compare con /context.
- 4Lío de shells en Windows — Claude Code usa Git Bash si está instalado y PowerShell en caso contrario; rutas con barras normales y el script en su propio .ps1.
- 5Demasiado en una fila — pida multilínea (la ruta y la info del repo pasan a una segunda línea) o recorte: tokens en unidades K, un solo color de separador, y fuera los campos que nunca mira.
Y si quiere salir del todo: /statusline delete (o /statusline clear) elimina la función, el uninstall.sh de un instalador de la comunidad la deshace, y la copia de seguridad de settings que dejó el instalador restaura su script anterior.
