Statusline do Claude Code
Cada pedaço da linha tem número e nome. Para pedir mudança, basta citar: "troca o 3 pelo 5", "tira o custo", "o tmux em azul". Esta é a versão 13, desenhada por você em 05/10/2026.
Três estados da mesma linha
Sessão recém-aberta, sessão no meio do dia, e sessão apertando nos limites. É a cor que muda, não o lugar.
- começo: contexto 5%, limites baixos Opus 5 (1M context) | 5% | (2% - 45m) | [28% - 4d] | rodrigo@campestre | <claude1> | [-> iphosting <-] (R$ 1,90)
- meio: contexto 55% (amarelo), 5h em 62% (âmbar) Fable 5.1 | 55% | (62% - 2h) | [28% - 4d] | rodrigo@campestre | <claude1> | [-> zeus <-] (R$ 62,90)
- apertando: contexto 92% e os dois limites acima de 80% (vermelho) Opus 5 (1M context) | 92% | (91% - 2h) | [85% - 3d] | rodrigo@campestre | <claude1> | [-> zeus <-] (R$ 247,13)
Os segmentos, um a um
Ordem de hoje, da esquerda para a direita. "Some quando" diz em que situação o segmento desaparece inteiro, levando o separador junto: a linha nunca mostra um traço órfão.
modelo Fable 5.1
- O que diz
- O modelo que está respondendo, com o nome inteiro que o Claude Code manda: "Fable 5.1", "Opus 5 (1M context)".
- Formato
- Texto puro, sem delimitador. Abre a linha.
- Cor
- ciano, ANSI 36, fixa.
- Fonte
model.display_namedo payload, commodel.idde reserva.- Some quando
- Nunca.
contexto 55%
- O que diz
- Quanto da janela de contexto da conversa já foi usado.
- Formato
- Só a porcentagem inteira. A barra de dez casas saiu.
- Cor
- verde 32 abaixo de 50%, amarelo 33 de 50 a 79, vermelho 31 de 80 em diante.
- Fonte
context_window.used_percentage, arredondado para baixo.- Some quando
- Nunca. Sem o campo, mostra 0%.
limite 5h (62% - 2h)
- O que diz
- Quanto da cota da janela de 5 horas do plano já foi gasto, e em quanto tempo a janela vira.
- Formato
- Um par de parênteses, porcentagem, hífen, tempo até o reset. Sem rótulo: o parêntese é o que diz "5 horas". O tempo aparece sempre que o payload traz o horário do reset e ele ainda não passou; sai em minutos até 1h, horas até 48h, dias acima disso.
- Cor
- lilás 146 abaixo de 50%, âmbar 33 de 50 a 79, vermelho 31 de 80 em diante. A cor diz o gasto; o tempo, quando renova.
- Fonte
rate_limits.five_hour.used_percentageeresets_at.- Some quando
- O payload não traz a janela: sessão com chave de API, versão antiga do Claude Code, ou sessão atrás do Claude Code Router.
limite 7d [28% - 4d]
- O que diz
- O mesmo do 3, para a janela de 7 dias.
- Formato
- Colchetes, para distinguir da janela de 5h. Tem separador entre o 3 e o 4, como entre os outros. Se só um dos limites vier, ele aparece sozinho.
- Cor
- Mesma régua do 3: lilás, âmbar, vermelho.
- Fonte
rate_limits.seven_day.used_percentageeresets_at.- Some quando
- Igual ao 3.
conta rodrigo@campestre
- O que diz
- Em qual conta Claude esta sessão está logada. Existe porque a máquina tem três instalações, cada uma numa conta: presidente@campestrevarginha, rodrigo@campestre.social e diretor@aciv.
- Formato
- Sem delimitador. Três recortes, pela variável
CLAUDE_STATUSLINE_CONTA:curto(padrão) mostrarodrigo@campestre,completomostrarodrigo@campestre.social.br,localmostrarodrigo. - Cor
- azul 110, fixa.
- Fonte
- O arquivo
.claude.jsonda instalação (HOME do processo, ouCLAUDE_CONFIG_DIRquando definido), em cache revalidado por data do arquivo. - Some quando
- Sessão com chave de API (sem conta OAuth), arquivo ausente ou ilegível.
tmux <claude1>
- O que diz
- Nome da sessão tmux onde esta janela está.
- Formato
- Sinais de menor e maior. Só o nome da sessão; o tmux também sabe o número e o nome da janela e do pane, que hoje não aparecem.
- Cor
- magenta 35, fixa.
- Fonte
tmux display-messageperguntando pelo pane atual, a cada repaint, sem cache: renomear a sessão aparece na hora. Custa 4ms.- Some quando
- A sessão não está dentro do tmux, ou o servidor tmux não responde.
projeto [-> zeus <-]
- O que diz
- A pasta de trabalho atual, só o último nome do caminho.
- Formato
- Colchete com setas apontando para o nome.
- Cor
- laranja 208, fixa.
- Fonte
workspace.current_dir, comcwdde reserva.- Some quando
- Nunca.
custo (R$ 62,90)
- O que diz
- Quanto a sessão teria custado em dólar, convertido para real. Em plano de assinatura é referência, não cobrança.
- Formato
- Parênteses,
R$, valor com vírgula. É o único segmento sem separador antes: fica colado ao projeto por um espaço, como um apêndice dele. - Cor
- verde claro 92, fixa.
- Fonte
cost.total_cost_usdvezes a cotação do dólar, em cache por 12 horas (AwesomeAPI, com open.er-api de reserva), renovada em segundo plano, nunca no caminho do repaint.- Some quando
- Nunca. Sem o campo, mostra
(R$ 0,00).
separador |
- O que diz
- Divide os segmentos. Espaço, barra vertical, espaço: 3 colunas cada.
- Cor
- cinza 90.
- Regra
- Nasce junto com o segmento que vem depois dele. Segmento ausente leva o separador embora. A única exceção é o custo, que se cola ao projeto com um espaço simples.
o que saiu na versão 13
- git
- Branch e contagem de arquivos sujos (
main:3). Custava dois subprocessos por repaint. - tempo
- Duração da sessão (
[2h15m]). Isso liberou os colchetes para o limite de 7 dias. - barra
- Os dez blocos do contexto. Ficou só a porcentagem.
- rótulos
- "5h" e "7d" dentro dos limites, e a flecha antes do tempo de reset.
- chaves
- As chaves em volta da conta.
- separador
- O ponto centralizado virou barra vertical.
Como ler de relance
O que separa na leitura é a forma do delimitador.
| Forma | Segmento |
|---|---|
| palavra | 1 modelo |
| n% | 2 contexto |
| ( ... ) | 3 limite 5h |
| [ ... ] | 4 limite 7d |
| a@b | 5 conta |
| < ... > | 6 tmux |
| [-> ... <-] | 7 projeto |
| (R$ ...) | 8 custo |
Largura
O terminal não quebra a linha: o que passa da largura é cortado pela direita, e hoje nada é descartado de propósito.
| Situação | Colunas |
|---|---|
| Linha normal, com conta curta e tmux (os três exemplos acima) | 99 a 112 |
| Pior caso: conta completa, projeto longo, custo alto, tmux | 147 |
| Janela tmux inteira nesta máquina (varia com a tela: 158 agora, 286 em setembro) | 158 a 286 |
| Split vertical do tmux (duas colunas) | 143 |
| Dois splits (três colunas) | 95 |
A versão 13 encurtou a linha em cerca de 35 colunas: a janela dividida ao meio cabe com folga, e só com dois splits o fim da linha encosta. Uma ordem de descarte por largura está pensada mas não implementada: custo, depois tmux, depois conta no formato curto, depois abreviar o projeto, depois os limites abaixo de 50%. Vermelho nunca sairia.
O que o Claude Code entrega e a linha não mostra
Dados que chegam ao script a cada repaint e hoje ficam de fora. Qualquer um pode virar segmento.
| Dado | Campo | Observação |
|---|---|---|
| Nível de esforço do modelo | effort.level | Muda o comportamento e não aparece em nenhum outro lugar da tela. |
| Modo rápido ligado | fast_mode | Idem. |
| Pensamento estendido ligado | thinking.enabled | Idem. |
| Cache de prompt quente ou frio | prompt_cache.warm, hit_ratio, expires_at | Muda o custo real da sessão. O candidato mais interessante. |
| Tempo de sessão | cost.total_duration_ms | Era o segmento 6 até a versão 12. |
| Branch e arquivos sujos | git na pasta atual | Era o segmento 3 até a versão 12. Não vem do payload. |
| Linhas adicionadas e removidas | cost.total_lines_added, total_lines_removed | Quanto código a sessão mexeu. |
| Tempo só de API | cost.total_api_duration_ms | Contra o tempo de sessão, mostra quanto foi espera do modelo. |
| Tokens de entrada e saída | context_window.total_input_tokens, total_output_tokens | Em número absoluto, além da porcentagem. |
| Contexto restante | context_window.remaining_percentage | O complemento do 2. |
| Versão do Claude Code | version | Hoje 2.1.289. |
| Estilo de saída | output_style.name | |
| Janela e pane do tmux | tmux #I, #W, #P | Não vem do payload: vem do tmux, junto com o nome da sessão. |
| Largura do terminal | COLUMNS (ambiente) | É o que permitiria o descarte por largura. |
Regras que valem para a linha inteira
- Uma linha só, redesenhada a cada repaint da tela. Tudo é barato: o render inteiro custa cerca de 41ms.
- Nada de rede no caminho do repaint. Cotação e afins vêm de cache e renovam em segundo plano.
- Todo comando externo tem timeout de 1 segundo.
- Segmento sem dado some inteiro, com o separador. A linha nunca mostra erro, só mostra menos.
- Três faixas de severidade, sempre nos mesmos cortes: abaixo de 50, de 50 a 79, de 80 em diante.
- As três instalações desta máquina usam o mesmo script. Mudança vale para todas.