Estilos de saída do Claude Code: como funcionam
Entenda como os estilos de saída alteram o prompt do sistema, afetam cada resposta e por que mudanças na chave outputStyle só valem na próxima 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 lhe dá autorização para executar operações.
O Claude Code inclui cinco estilos integrados. A sua escolha fica numa chave de configuração, 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é o limpar.
Num VPS, isto é mais do que uma preferência estética. O transcript é 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 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. Confirme a versão em execução antes de seguir um guia antigo. As versões desta página foram verificadas em agosto de 2026.
claude --versionTambém pode definir a chave manualmente. Quatro ficheiros de definições podem contê-la, e o ficheiro mais específico tem precedência sobre o mais abrangente.
~/.claude/settings.jsoné o seu ficheiro de utilizador. Aplica-se a todos os projetos nessa máquina..claude/settings.jsoné o ficheiro do projeto. É submetido ao 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 é submetido e substitui os dois ficheiros anteriores. É este o ficheiro que o menu/configaltera.- As definições geridas, implementadas 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 opção --settings aceita um caminho ou uma string JSON inline. Os respetivos valores substituem as mesmas chaves nos ficheiros de definições durante essa execução:
claude --settings '{"outputStyle": "Concise"}'Os nomes dos menus e os comandos de barra mudaram pelo menos uma vez ao longo da 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 o 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 armazena o valor, mas não muda nada que você possa ver, porque a sessão em execução continua enviando o prompt criado no início. 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 se um estilo personalizado foi carregado. Para entender melhor o que preenche essa janela, consulte como o contexto se preenche em uma sessão longa do Claude Code.
Há um motivo para a configuração aguardar 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 todo o conteúdo posterior. Assim, o turno seguinte teria de processar novamente todo o seu histórico 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 trabalho de engenharia de software.
- Concise começa pelo 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 não muda. Nunca encurta um relatório de erro nem 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 as etapas de uma tarefa, explicando por que uma decisão de implementação foi tomada e que padrão o seu código já utiliza. A transcrição fica intencionalmente mais longa.
- 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. Toma decisões razoáveis sobre tarefas rotineiras, em vez de parar para pedir confirmação.
Leia esta última opção com atenção, porque é a que mais costuma ser interpretada incorretamente. Proactive é uma orientação no prompt de sistema. Altera o que o Claude tenta fazer. O modo de permissões continua a decidir o que é realmente executado sem lhe perguntar. Essa é a configuração importante num servidor que permanece em execução sem supervisão. Isto é 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 parecem instruir o Claude sobre como deve comportar-se, mas funcionam em camadas diferentes.
- Um estilo de saída é adicionado ao prompt do sistema. Aplica-se a todas as respostas na conversa principal.
- CLAUDE.md é adicionado como uma mensagem do utilizador depois do prompt do sistema. É onde devem ficar as convenções do projeto e os factos sobre a base de código.
--append-system-promptacrescenta 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, pelo que é executado independentemente de o Claude o ter escolhido ou não. 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 curto distingue as duas primeiras opções. Os factos sobre o seu projeto devem ficar em CLAUDE.md, porque o Claude precisa de os conhecer. A formulação deve ficar num estilo de saída, porque diz respeito à forma como a resposta é apresentada. Tudo o que tiver de acontecer sempre, independentemente da decisão do modelo, deve ser um hook. A camada em que cada superfície se encontra é uma propriedade de o programa que executa o modelo, não do próprio modelo. Por isso, um estilo só pode influenciar, enquanto um hook pode impor.
Os estilos de saída aplicam-se apenas à conversa principal. Um subagente não herda o seu estilo, porque inicia a própria conversa com o seu próprio prompt do sistema. Um fork da conversa atual é a exceção, porque herda exatamente o prompt do sistema do processo pai. Se um subagente escrever de uma forma de que não gosta, edite o ficheiro desse agente em vez do seu estilo. Uma segunda sessão do Claude Code no mesmo host segue a mesma separação e lê os próprios ficheiros de configuração ao arrancar. Por isso, quando passa trabalho para outra sessão em execução ao mesmo tempo que a sua, as respostas dessa sessão usam o estilo que ela carregou, não o seu.
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 junto do 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.
EOFInicie uma sessão e abra /config. O seu estilo aparece na lista Estilo de saída, 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 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. Isto significa que um estilo personalizado elimina 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 delimitar uma alteração e como verificar o trabalho realizado. Omita o campo para um assistente de escrita ou um analista de dados, quando nada disso se aplica. Defina-o como true para qualquer caso que ainda envolva código. Caso contrário, ficará sem perceber por que razão um engenheiro cuidadoso deixou subitamente de verificar o próprio trabalho. Se o que pretende não é uma voz diferente, mas uma definição mais rigorosa da quantidade de trabalho que uma tarefa exige, isso deve ser definido nas instruções de engenharia e não no ficheiro de estilo: a skill Ponytail é um exemplo completo, com uma única regra que orienta um agente para a menor alteração funcional.
description é a linha que o seletor /config mostra junto ao nome. Escreva-a pensando no momento, daqui a seis meses, em que terá de escolher entre dois dos seus próprios estilos.
Por que um estilo conciso é diferente através de SSH
Num VPS, lê o transcript através de camadas que um terminal local não tem, e cada camada penaliza a verbosidade.
O scrollback é o primeiro. No tmux, cada painel mantém um número fixo de linhas, definido por history-limit, cujo valor predefinido é 2000. Um transcript narrado preenche 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.confOs painéis criados depois disso mantêm 20000 linhas cada, à custa 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 está a preparar o layout da sessão, executar o Claude Code dentro do tmux num VPS explica o processo.
A latência é o segundo fator. A resposta é transmitida para o seu terminal à medida que é gerada. Numa ligação com um tempo de ida e volta elevado, um preâmbulo longo é tempo que passa a observar o texto a chegar antes de a resposta aparecer.
Os tokens de output são o terceiro fator. Cada linha narrada é contabilizada 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 ninguém, incluindo nesta página. A dimensão da 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 através de stdin que já contém 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.shAponte a definição statusLine para esse script:
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}A barra no fundo da sessão mostra agora o estilo ativo junto dos tokens que produziu, que é exatamente a comparação antes e depois de que precisa. O script requer jq, o analisador JSON da linha de comandos, por isso instale-o primeiro com sudo apt install -y jq. Se a barra continuar vazia, execute o script manualmente e envie algum JSON para o respetivo stdin, porque uma statusline que termina com um código diferente de zero não imprime nem comunica nada. Uma statusline personalizada do Claude Code apresenta 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 acompanham os custos do Claude Code.
Como verificar qual estilo de saída está efetivamente carregado
Use estas verificações em vez de tentar adivinhar.
/statuslista as fontes de configuração em vigor para esta sessão, incluindo se estão a ser aplicadas configurações geridas por uma organização./contextmostra o prompt de sistema carregado como uma categoria na análise da janela de contexto.claude doctor, executado na 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 durante a 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 confirmou em .claude/settings.json é silenciosamente substituído em qualquer máquina onde alguém tenha usado o menu anteriormente. /status indica qual fonte prevaleceu.
Um erro de sintaxe JSON produz o mesmo sintoma, mas requer uma correção diferente. claude doctor indica 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 está instalado. Escolha o estilo em /config, em Output style, ou defina a chave outputStyle num ficheiro de configurações. A chave sobreviveu ao comando, por isso defini-la diretamente é a instrução que vale a pena registar nas suas próprias notas.
Mudei o estilo de saída e nada aconteceu. Porquê?
O estilo de saída faz parte do system prompt, e o Claude Code cria o system prompt uma vez, quando a sessão começa. Uma alteração feita a meio da 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 aplicado, execute /status para ver qual foi a origem de configurações prioritária, pois .claude/settings.local.json substitui .claude/settings.json e ambas substituem ~/.claude/settings.json.
O estilo de saída Concise permite poupar dinheiro?
Ele reduz os tokens de saída na direção esperada, porque instrui o Claude a manter as respostas curtas por predefinição. O valor depende dos seus prompts e do seu modelo. Por isso, considere 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, porque um subagente inicia a sua própria conversa com o seu próprio system prompt e o seu próprio conjunto de ferramentas. Uma bifurcação da conversa atual é a exceção, porque herda exatamente o system prompt 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 system prompt. Por isso, só pode influenciar o que o Claude tenta fazer. O estilo Proactive faz com que o Claude presuma e atue, em vez de interromper decisões rotineiras, mas continua sem poder aprovar um comando. O seu modo de permissões determina o que é executado sem confirmação. Essa é a configuração que deve verificar antes de deixar uma sessão em execução num servidor.