SSD Nodes Learn 🎉 VPS desde $5.50/mês
Guias Matt ConnorPor Matt Connor

Estilos de saída do Claude Code explicados

Entenda como os estilos alteram o prompt do sistema, a transcrição e cada resposta do Claude Code, além de criar estilos próprios e evitar mudanças ignoradas na sessão.

O que é um estilo de saída no Claude Code

Um estilo de saída no Claude Code é um bloco de instruções que o Claude Code acrescenta ao prompt do sistema. Ele altera a forma como o Claude responde: o papel que assume e o formato do que apresenta. Não ensina nada ao Claude sobre a sua base de código e não pode dar-lhe permissão para executar nada.

O Claude Code inclui cinco estilos incorporados. A sua escolha fica guardada na chave de definições outputStyle, que é lida uma vez quando a sessão é iniciada. Este facto explica grande parte da confusão em torno desta funcionalidade, porque um estilo que altere a meio de uma sessão é guardado e depois ignorado até limpar essa definição.

Num VPS, isto é mais do que uma preferência estética. A transcrição é o que lê através de uma ligação SSH (secure shell), normalmente dentro de uma janela tmux. Por isso, cada linha que o Claude apresenta é uma linha que espera para receber e uma linha num buffer de histórico com tamanho fixo.

Onde fica a definição outputStyle

Escolha um estilo no menu /config, em Output style. O Claude Code grava a sua escolha em .claude/settings.local.json no projeto em que está a trabalhar.

O comando autónomo /output-style já não existe. Foi descontinuado na v2.1.73 e removido na v2.1.91. Por isso, numa versão atual, não faz nada. Verifique o que está a executar antes de seguir um guia antigo. As versões desta página foram verificadas em agosto de 2026.

claude --version

Também pode definir a chave manualmente. Quatro ficheiros de definições podem contê-la, e a definição mais específica tem precedência sobre a mais abrangente.

  • ~/.claude/settings.json é o ficheiro do utilizador. Aplica-se a todos os projetos nessa máquina.
  • .claude/settings.json é o ficheiro do projeto. É enviado para o git, por isso aplica-se a todas as pessoas que clonarem o repositório.
  • .claude/settings.local.json é o ficheiro local do projeto. Não é enviado para o git e substitui os dois ficheiros anteriores. É este ficheiro que o menu /config altera.
  • As definições geridas, distribuídas por uma equipa de TI a partir de um caminho do sistema como /etc/claude-code/ no Linux, substituem todas as outras.

O valor da chave é o nome do estilo:

{
  "outputStyle": "Concise"
}

Para uma única sessão, passe a mesma chave na linha de comandos. A flag --settings aceita um caminho ou uma cadeia JSON incorporada. Os valores desta opção substituem as mesmas chaves dos ficheiros de definições durante essa execução:

claude --settings '{"outputStyle": "Concise"}'

Os rótulos dos menus e os comandos slash foram alterados pelo menos uma vez durante a existência desta funcionalidade. A chave outputStyle não mudou. Quando uma captura de ecrã de um guia deixar de corresponder ao que vê, defina a chave diretamente e confirme-a com /status, que apresenta as fontes de definições em vigor.

Por que seu novo estilo de saída não faz nada até você limpar

O Claude Code cria o prompt do sistema uma vez, quando a sessão é iniciada, e o estilo de saída faz parte desse prompt do sistema. Portanto, alterar a configuração durante uma sessão apenas armazena o valor e não muda nada visível, porque a sessão em execução continua enviando o prompt criado na inicialização. O novo estilo é carregado no próximo /clear ou na próxima inicialização.

/clear
/context

/context mostra o que está ocupando atualmente a janela de contexto, dividido por categoria, incluindo o prompt do sistema. Execute-o em uma sessão nova com cada estilo. A linha do prompt do sistema é o lado de entrada da comparação. Essa também é a forma mais rápida de confirmar que um estilo personalizado foi carregado. Para entender melhor o que preenche essa janela, consulte como o contexto se preenche numa sessão longa do Claude Code.

Há um motivo para a configuração esperar em vez de ser aplicada dinamicamente. A API atende solicitações repetidas a partir de um cache de prompts que corresponde ao início de cada solicitação, e o prompt do sistema fica exatamente no início. Reescrevê-lo no meio da conversa invalidaria tudo o que vem depois dele. Assim, o próximo turno teria de processar todo o seu histórico novamente como uma nova entrada. Fixar o estilo no início da sessão evita esse custo. Trocar de estilo é simples. Basta limpar.

O que cada estilo de saída integrado altera na transcrição

  • Default é o prompt de sistema normal do Claude Code, escrito para tarefas de engenharia de software.
  • Concise apresenta primeiro o resultado. Remove a introdução e a narração passo a passo, e mantém as respostas curtas até pedir mais detalhes. O trabalho de engenharia realizado permanece igual. Nunca encurta um relatório de erro ou um aviso de segurança, e continua a pedir confirmação completa antes de uma ação destrutiva. Este estilo requer o Claude Code v2.1.237 ou posterior.
  • Explanatory adiciona "Insights" educativos entre os passos de uma tarefa. Eles explicam por que uma decisão de implementação foi tomada e que padrão a sua base de código já utiliza. A transcrição fica mais longa de propósito.
  • Learning vai além. O Claude partilha esses insights e depois pede que escreva pequenas partes do código, marcando cada local com um comentário TODO(human) no ficheiro.
  • Proactive faz o Claude agir em vez de perguntar. Ele toma decisões razoáveis em tarefas rotineiras, em vez de parar para pedir confirmação.

Leia atentamente o último estilo, porque é o mais mal interpretado. O Proactive é uma orientação no prompt de sistema. Ele altera o que o Claude tenta fazer. O modo de permissões continua a decidir o que é efetivamente executado sem lhe pedir confirmação. Essa é a configuração relevante num servidor que permanece em execução sem supervisão. Isso é explicado em modo automático e modos de permissões do Claude Code.

Como um estilo de saída difere de CLAUDE.md, de um hook e de um subagente

Todas estas opções servem para indicar ao Claude como deve comportar-se, mas atuam em camadas diferentes.

  • Um estilo de saída é adicionado ao prompt do sistema. Aplica-se a todas as respostas da conversa principal.
  • CLAUDE.md é adicionado como uma mensagem do utilizador depois do prompt do sistema. É o local indicado para convenções do projeto e informações sobre a base de código.
  • --append-system-prompt acrescenta texto ao prompt do sistema numa única invocação, sem remover nada. É a versão pontual de um estilo de saída.
  • Um hook é um comando shell que o Claude Code executa quando ocorre um evento. É aplicado pelo harness, por isso é executado mesmo que o Claude não o tivesse escolhido. Consulte o que um hook do Claude Code pode e não pode fazer.
  • Um subagente é executado com o seu próprio prompt do sistema e o seu próprio conjunto de ferramentas.

Um teste simples permite decidir entre as duas primeiras opções. As informações sobre o projeto devem ficar em CLAUDE.md, porque o Claude precisa de as conhecer. A formulação deve ficar num estilo de saída, porque está relacionada com a forma como a resposta é apresentada. Tudo o que tiver de acontecer sempre, independentemente da decisão do modelo, deve ser um hook.

Os estilos de saída aplicam-se apenas à conversa principal. Um subagente não herda o seu estilo, porque inicia a sua própria conversa com o seu próprio prompt do sistema. Uma bifurcação da conversa atual é a exceção, porque herda exatamente o prompt do sistema da conversa original. Se um subagente escrever de uma forma que não lhe agrada, edite o ficheiro desse agente em vez do seu estilo.

Como escrever o seu próprio estilo de saída

Um estilo de saída personalizado é um ficheiro Markdown com frontmatter. Guarde-o no seu diretório pessoal para o utilizar em todos os projetos ou dentro do repositório para o manter com o código. O diretório do utilizador é ~/.claude/output-styles/ e o diretório do projeto é .claude/output-styles/.

mkdir -p ~/.claude/output-styles
cat > ~/.claude/output-styles/terse-ops.md <<'EOF'
---
name: Terse ops
description: Command first, explanation after, for SSH sessions
keep-coding-instructions: true
---

Lead with the command or the file change. Put the explanation after it, in two sentences or fewer.

Do not narrate what you are about to do. Report what you did.

When a command can fail, print the one check that proves it worked and say what a healthy result looks like.
EOF

Inicie uma sessão e abra /config. O seu estilo aparece na lista Output style, com a descrição que escreveu. Se não aparecer, o ficheiro não está a ser lido: verifique o caminho e confirme que o bloco de frontmatter --- é o primeiro conteúdo do ficheiro. O nome do ficheiro torna-se o nome do estilo, exceto se o frontmatter definir name. Por isso, este estilo chama-se Terse ops e não terse-ops.

Selecione-o ou defina a chave com esse nome exato e limpe:

{
  "outputStyle": "Terse ops"
}

Um campo determina se o seu ficheiro é um ajuste ou uma substituição. keep-coding-instructions assume false por predefinição. Isso significa que um estilo personalizado remove as instruções integradas de engenharia de software do Claude Code e funciona apenas com o seu texto. Essas instruções integradas dizem ao Claude como definir o âmbito de uma alteração e como verificar o trabalho realizado. Omita o campo para um assistente de escrita ou um analista de dados, quando essas instruções não se aplicam. Defina-o como true para qualquer utilização que ainda envolva código. Caso contrário, poderá não perceber por que motivo um engenheiro cuidadoso deixou subitamente de verificar o próprio trabalho.

description é a linha que o seletor /config mostra junto ao nome. Escreva-a a pensar no momento em que escolher entre dois dos seus próprios estilos daqui a seis meses.

Por que um estilo conciso é diferente numa sessão SSH

Num VPS, lê o transcript através de camadas que um terminal local não tem, e cada camada cobra pela verbosidade.

O scrollback é o primeiro fator. No tmux, cada painel mantém um número fixo de linhas, definido por history-limit, que por predefinição é 2000. Um transcript narrado enche esse buffer mais depressa, por isso a parte inicial da sessão é removida mais cedo e o output ao qual queria voltar desaparece. Aumente o limite se precisar de mais espaço:

echo 'set -g history-limit 20000' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

Os painéis criados depois disso mantêm 20000 linhas cada, com um custo de memória por painel. Os painéis que já estão abertos mantêm o limite antigo, porque o tamanho do buffer é fixado quando o painel é criado. Se ainda estiver a definir o layout da sessão, executar o Claude Code dentro do tmux num VPS explica esse processo.

A latência é o segundo fator. A resposta é transmitida para o terminal à medida que é gerada. Numa ligação com um tempo de ida e volta elevado, um preâmbulo longo é tempo passado a observar o texto a chegar antes de a resposta aparecer.

Os tokens de output são o terceiro fator. Cada linha narrada é faturada como output. Os estilos Explanatory e Learning são mais longos por definição. Concise é mais curto por definição, porque instrui o Claude a manter as respostas curtas por predefinição.

Não confie numa percentagem apresentada por outra pessoa, incluindo nesta página. A diferença depende dos seus prompts, do seu modelo e do trabalho que pede, por isso meça os seus próprios resultados antes e depois. Execute a mesma tarefa real em duas sessões novas, uma com Default e outra com Concise, e compare os resultados. Uma statusline é o medidor mais simples, porque o Claude Code fornece ao seu script um objeto JSON no stdin que já inclui o nome do estilo e as contagens de tokens:

cat > ~/.claude/statusline.sh <<'EOF'
#!/bin/bash
input=$(cat)
style=$(echo "$input" | jq -r '.output_style.name // "default"')
out=$(echo "$input" | jq -r '.context_window.total_output_tokens // 0')
cost=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
echo "style=$style out=$out cost=$cost"
EOF
chmod +x ~/.claude/statusline.sh

Aponte a configuração statusLine para esse script:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

A barra na parte inferior da sessão mostra agora o estilo ativo junto aos tokens que produziu, que é exatamente a comparação antes e depois de que precisa. O script precisa de jq, o parser JSON de linha de comandos, por isso instale-o primeiro com sudo apt install -y jq. Se a barra continuar vazia, execute o script manualmente e passe-lhe algum JSON através de um pipe, porque uma statusline que termina com um código diferente de zero não imprime nem comunica nada. Uma statusline personalizada do Claude Code lista os restantes campos desse objeto. Para a parte da faturação, em vez da parte da sessão, leia para onde vão realmente os tokens do Claude Code e as ferramentas que monitorizam os custos do Claude Code.

Como verificar qual estilo de saída está efetivamente carregado

Use estas verificações em vez de tentar adivinhar.

  • /status lista as fontes de configuração em vigor para esta sessão, incluindo a indicação de que existem configurações geridas por uma organização.
  • /context mostra o system prompt carregado como uma categoria na discriminação da janela de contexto.
  • claude doctor, executado a partir da shell sem iniciar uma sessão, apresenta diagnósticos da instalação e das configurações e indica os ficheiros de configuração inválidos.

Quando um estilo não é aplicado, a causa quase sempre é uma de duas. A primeira é ter alterado o estilo a meio da sessão; nesse caso, execute /clear. A segunda é a precedência: .claude/settings.local.json substitui .claude/settings.json, e ambos substituem ~/.claude/settings.json. Como o seletor /config grava no ficheiro local, um estilo que a sua equipa tenha guardado em .claude/settings.json é silenciosamente substituído em qualquer máquina onde alguém tenha usado o menu anteriormente. /status indica qual foi a fonte vencedora.

Um erro de sintaxe JSON produz o mesmo sintoma, mas requer uma correção diferente. claude doctor identifica o ficheiro que não conseguiu analisar. Vale a pena executá-lo antes de procurar uma causa mais complexa.

FAQ

Por que o comando /output-style deixou de funcionar?

Ele foi descontinuado na v2.1.73 e removido na v2.1.91. Por isso, numa build de meados de 2026, o comando já não existe. Execute claude --version para ver o que tem instalado. Escolha o estilo em /config, em Output style, ou defina a chave outputStyle num ficheiro de definições. A chave sobreviveu ao comando. Por isso, definir a chave diretamente é a instrução que vale a pena registar nas suas próprias notas.

Mudei o estilo de saída e nada aconteceu. Por quê?

O estilo de saída faz parte do prompt do sistema. O Claude Code cria o prompt do sistema uma vez, quando a sessão começa. Uma alteração feita durante a sessão é guardada, mas não é aplicada, porque a sessão em execução continua a enviar o prompt criado no arranque. Execute /clear ou inicie uma nova sessão. Se continuar sem ser aplicada, execute /status para ver qual fonte de definições prevaleceu, pois .claude/settings.local.json substitui .claude/settings.json e ambos substituem ~/.claude/settings.json.

O estilo de saída Concise reduz os custos?

Ele reduz os tokens de saída na direção esperada, porque instrui o Claude a manter as respostas curtas por padrão. O impacto depende dos seus prompts e do seu modelo. Por isso, trate qualquer percentagem publicada como uma medição do trabalho de outra pessoa. Faça a sua própria medição: execute /context numa sessão nova, com cada estilo, para o lado da entrada. Depois, execute a mesma tarefa com cada estilo e compare a contagem de tokens de saída. O estilo Concise nunca encurta um relatório de erro nem um aviso de segurança. Assim, as partes que mais precisa de ler permanecem completas.

Um estilo de saída altera a forma como os meus subagentes escrevem?

Não. Os estilos de saída aplicam-se apenas à conversa principal. Um subagente inicia a sua própria conversa, com o seu próprio prompt do sistema e o seu próprio conjunto de ferramentas. Uma bifurcação da conversa atual é a exceção, porque herda exatamente o prompt do sistema da conversa principal. Para alterar a forma como um subagente responde, edite o ficheiro desse agente.

Um estilo de saída permite que o Claude execute comandos sem pedir confirmação?

Não. Um estilo de saída é texto no prompt do sistema. Por isso, só pode influenciar o que o Claude tenta fazer. O estilo Proactive faz o Claude assumir e executar ações em vez de parar perante decisões rotineiras. Mesmo assim, não pode aprovar um comando. O modo de permissões determina o que é executado sem confirmação. Essa é a definição que deve verificar antes de deixar uma sessão em execução num servidor.