SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 20:58 UTC

47 files changed +1,319 −1,155. View all changes and history on the product overview
2026
Sat 3 22:00 Fri 2 22:59 Thu 1 23:59
Details

145Alguns comportamentos não são adaptados para o modo leitor de tela:145Alguns comportamentos não são adaptados para o modo leitor de tela:

146 146 

147* O modo leitor de tela não é ativado automaticamente quando um leitor de tela está em execução.147* O modo leitor de tela não é ativado automaticamente quando um leitor de tela está em execução.

148* Claude Code não anuncia uma mudança de modo de permissão feita de qualquer forma diferente de ciclar com `Shift+Tab`, como entrar em [plan mode](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) a partir de um comando.148* Claude Code não anuncia uma mudança de modo de permissão feita com um comando, como entrar no [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) com `/plan`.

149* Anexar a uma [sessão de fundo](/docs/pt/agent-view) com `claude attach` ou da visualização de agente entra na tela alternativa do terminal, que não tem scrollback nativo. Este é o [mesmo comportamento que outras sessões anexadas](/docs/pt/fullscreen). Para sair, pressione Left Arrow em um prompt vazio, ou Ctrl+Z se um diálogo tiver foco.149* Anexar a uma [sessão de fundo](/docs/pt/agent-view) com `claude attach` ou da visualização de agente entra na tela alternativa do terminal, que não tem scrollback nativo. Este é o [mesmo comportamento que outras sessões anexadas](/docs/pt/fullscreen). Para sair, pressione Left Arrow em um prompt vazio, ou Ctrl+Z se um diálogo tiver foco.

150* Claude Code anuncia custos no resumo que imprime na saída, não por turno.150* Claude Code anuncia custos no resumo que imprime na saída, não por turno.

151* O modo leitor de tela não altera [modo não interativo](/docs/pt/headless) com a flag `-p`. O modo não interativo já escreve texto simples e permanece uma alternativa para scripts.151* O modo leitor de tela não altera [modo não interativo](/docs/pt/headless) com a flag `-p`. O modo não interativo já escreve texto simples e permanece uma alternativa para scripts.

Details

154| `PostToolUse` | Sim | Sim | Resultado de execução de ferramenta | Registrar todas as alterações de arquivo na trilha de auditoria |154| `PostToolUse` | Sim | Sim | Resultado de execução de ferramenta | Registrar todas as alterações de arquivo na trilha de auditoria |

155| `PostToolUseFailure` | Sim | Sim | Falha na execução de ferramenta | Lidar ou registrar erros de ferramenta |155| `PostToolUseFailure` | Sim | Sim | Falha na execução de ferramenta | Lidar ou registrar erros de ferramenta |

156| `PostToolBatch` | Não | Sim | Um lote completo de chamadas de ferramenta é resolvido, uma vez por lote antes da próxima chamada de modelo | Injetar convenções uma vez para todo o lote |156| `PostToolBatch` | Não | Sim | Um lote completo de chamadas de ferramenta é resolvido, uma vez por lote antes da próxima chamada de modelo | Injetar convenções uma vez para todo o lote |

157| `UserPromptSubmit` | Sim | Sim | Envio de prompt do usuário | Injetar contexto adicional em prompts |157| [`UserPromptSubmit`](/docs/pt/hooks#userpromptsubmit) | Sim | Sim | Um prompt é enviado, incluindo um turno que o Claude Code inicia por conta própria | Injetar contexto adicional em prompts |

158| [`UserPromptExpansion`](/docs/pt/hooks#userpromptexpansion) | Não | Sim | Um comando digitado pelo usuário, ou um prompt MCP, se expande em um prompt antes de chegar ao Claude. Não dispara quando Claude invoca uma skill por si mesmo | Bloquear um comando de invocação direta ou adicionar contexto quando uma skill é digitada |158| [`UserPromptExpansion`](/docs/pt/hooks#userpromptexpansion) | Não | Sim | Um comando digitado pelo usuário, ou um prompt MCP, se expande em um prompt antes de chegar ao Claude. Não dispara quando Claude invoca uma skill por si mesmo | Bloquear um comando de invocação direta ou adicionar contexto quando uma skill é digitada |

159| `MessageDisplay` | Não | Sim | Uma mensagem do assistente com texto é concluída, uma vez por mensagem com o texto completo da mensagem | Redigir ou reformatar o texto exibido sem alterar a transcrição |159| `MessageDisplay` | Não | Sim | Uma mensagem do assistente com texto é concluída, uma vez por mensagem com o texto completo da mensagem | Redigir ou reformatar o texto exibido sem alterar a transcrição |

160| `Stop` | Sim | Sim | Parada de execução do agente | Salvar estado da sessão antes de sair |160| `Stop` | Sim | Sim | Parada de execução do agente | Salvar estado da sessão antes de sair |

Details

2241 "PreToolUse", # Called before tool execution2241 "PreToolUse", # Called before tool execution

2242 "PostToolUse", # Called after tool execution2242 "PostToolUse", # Called after tool execution

2243 "PostToolUseFailure", # Called when a tool execution fails2243 "PostToolUseFailure", # Called when a tool execution fails

2244 "UserPromptSubmit", # Called when user submits a prompt2244 "UserPromptSubmit", # Called when a prompt is submitted

2245 "Stop", # Called when stopping execution2245 "Stop", # Called when stopping execution

2246 "SubagentStop", # Called when a subagent stops2246 "SubagentStop", # Called when a subagent stops

2247 "PreCompact", # Called before message compaction2247 "PreCompact", # Called before message compaction


2443| Campo | Tipo | Descrição |2443| Campo | Tipo | Descrição |

2444| :- | :- | :- |2444| :- | :- | :- |

2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | Sempre "UserPromptSubmit" |2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | Sempre "UserPromptSubmit" |

2446| `prompt` | `str` | O prompt enviado pelo usuário |2446| `prompt` | `str` | O prompt enviado |

2447 2447 

2448<h3 id="stophookinput">2448<h3 id="stophookinput">

2449 `StopHookInput`2449 `StopHookInput`

Details

275| `options.version` | `string` | String de versão opcional |275| `options.version` | `string` | String de versão opcional |

276| `options.instructions` | `string` | Instruções opcionais do servidor, retornadas de `initialize` e apresentadas ao modelo como um bloco de instruções MCP |276| `options.instructions` | `string` | Instruções opcionais do servidor, retornadas de `initialize` e apresentadas ao modelo como um bloco de instruções MCP |

277| `options.tools` | `Array<SdkMcpToolDefinition>` | Array de definições de ferramentas criadas com [`tool()`](#tool) |277| `options.tools` | `Array<SdkMcpToolDefinition>` | Array de definições de ferramentas criadas com [`tool()`](#tool) |

278| `options.alwaysLoad` | `boolean` | Quando `true`, cada ferramenta deste servidor permanece no prompt inicial e nunca é adiada atrás de [tool search](/docs/pt/agent-sdk/tool-search). Combina com `alwaysLoad` por ferramenta em [`tool()`](#tool) |278| `options.alwaysLoad` | `boolean` | Quando `true`, cada ferramenta deste servidor permanece no prompt inicial em vez de ser adiada atrás de [tool search](/docs/pt/agent-sdk/tool-search). Combina com `alwaysLoad` por ferramenta em [`tool()`](#tool) |

279| `options.timeout` | `number` | Timeout em milissegundos para as chamadas de ferramenta deste servidor. Claude Code o aplica a este servidor no lugar de [`MCP_TOOL_TIMEOUT`](/docs/pt/env-vars). Passe um número inteiro de pelo menos 1000. Claude Code ignora outros valores. Requer TypeScript Agent SDK v0.3.248 ou posterior |279| `options.timeout` | `number` | Timeout em milissegundos para as chamadas de ferramenta deste servidor. Claude Code o aplica a este servidor no lugar de [`MCP_TOOL_TIMEOUT`](/docs/pt/env-vars). Passe um número inteiro de pelo menos 1000. Claude Code ignora outros valores. Requer TypeScript Agent SDK v0.3.248 ou posterior |

280 280 

281<h3 id="listsessions">281<h3 id="listsessions">

agent-teams.md +6 −4

Details

91* **Enter**: abra a transcrição do companheiro de equipe selecionado e envie uma mensagem diretamente91* **Enter**: abra a transcrição do companheiro de equipe selecionado e envie uma mensagem diretamente

92* **Escape**: limpe a seleção. Enquanto você está visualizando a transcrição de um companheiro de equipe, Escape interrompe o turno atual desse companheiro de equipe92* **Escape**: limpe a seleção. Enquanto você está visualizando a transcrição de um companheiro de equipe, Escape interrompe o turno atual desse companheiro de equipe

93 93 

94A partir da v2.1.199, a linha de um companheiro de equipe ocioso permanece no painel enquanto qualquer companheiro de equipe ou subagente ainda estiver trabalhando, para que você possa selecioná-lo para revisar sua transcrição ou enviar-lhe mais trabalho. Quando todos os agentes no painel estão ociosos, as linhas ociosas se ocultam após 30 segundos e reaparecem no próximo turno do companheiro de equipe; o companheiro de equipe continua em execução e endereçável enquanto oculto. Na v2.1.181 até v2.1.198, uma linha ociosa se ocultava 30 segundos após seu próprio turno terminar, mesmo enquanto outros companheiros de equipe ainda estavam trabalhando; linhas ociosas não são ocultadas em versões anteriores à v2.1.181.94A linha de um companheiro de equipe ocioso permanece no painel enquanto qualquer companheiro de equipe ou subagente ainda estiver trabalhando, para que você possa selecioná-lo para revisar sua transcrição ou enviar-lhe mais trabalho. Quando todos os agentes no painel estão ociosos, as linhas ociosas se ocultam após 30 segundos e reaparecem no próximo turno do companheiro de equipe; o companheiro de equipe continua em execução e endereçável enquanto oculto.

95 95 

96Quando mais de três companheiros de equipe estão ociosos ao mesmo tempo, as linhas além das três primeiras se recolhem em uma única linha que conta os companheiros de equipe recolhidos, como `2 idle agents` quando cinco estão ociosos. Selecione-a e pressione Enter para expandir as linhas recolhidas, ou pressione Esc para recolhê-las novamente. Companheiros de equipe trabalhando, companheiros de equipe que falharam e o companheiro de equipe que você está visualizando sempre mantêm suas próprias linhas.96Quando mais de três companheiros de equipe estão ociosos ao mesmo tempo, as linhas além das três primeiras se recolhem em uma única linha que conta os companheiros de equipe recolhidos, como `2 idle agents` quando cinco estão ociosos. Selecione-a e pressione Enter para expandir as linhas recolhidas, ou pressione Esc para recolhê-las novamente. Companheiros de equipe trabalhando, companheiros de equipe que falharam e o companheiro de equipe que você está visualizando sempre mantêm suas próprias linhas.

97 97 


172* **Alias de família como `opus`**: Na API Anthropic e Claude Platform na AWS, Claude Code executa o companheiro de equipe na versão mais recente dessa família que a lista de permissões permite. Em provedores com IDs de modelo específicos do provedor, onde a [substituição não opera](/docs/pt/model-config#restrict-model-selection), um alias bloqueado volta como qualquer outro valor bloqueado de acordo com o próximo ponto172* **Alias de família como `opus`**: Na API Anthropic e Claude Platform na AWS, Claude Code executa o companheiro de equipe na versão mais recente dessa família que a lista de permissões permite. Em provedores com IDs de modelo específicos do provedor, onde a [substituição não opera](/docs/pt/model-config#restrict-model-selection), um alias bloqueado volta como qualquer outro valor bloqueado de acordo com o próximo ponto

173* **Qualquer outro valor bloqueado, incluindo um alias de família em provedores onde a substituição não opera, ou um cuja família não tem versão permitida**: Claude Code executa o companheiro de equipe no modelo do líder em vez disso. Se você definir `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code tenta esse modelo primeiro, sob essas mesmas regras173* **Qualquer outro valor bloqueado, incluindo um alias de família em provedores onde a substituição não opera, ou um cuja família não tem versão permitida**: Claude Code executa o companheiro de equipe no modelo do líder em vez disso. Se você definir `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code tenta esse modelo primeiro, sob essas mesmas regras

174 174 

175Os companheiros de equipe herdam o [nível de esforço](/docs/pt/model-config#adjust-effort-level) do líder. No modo split-pane isso se aplica a partir da v2.1.186; versões anteriores não passavam o esforço da sessão do líder para companheiros de equipe em split-pane.175Por padrão, os companheiros de equipe herdam o [nível de esforço](/docs/pt/model-config#adjust-effort-level) do líder. No modo split-pane isso se aplica a partir da v2.1.186; versões anteriores não passavam o esforço da sessão do líder para companheiros de equipe em split-pane.

176 176 

177<h3 id="have-teammates-plan-before-implementing">177<h3 id="have-teammates-plan-before-implementing">

178 Tenha companheiros de equipe planejando antes de implementar178 Tenha companheiros de equipe planejando antes de implementar


200* `/compact`, `/clear` e `/rewind` atuam na conversa do líder, então Claude Code pede que você confirme antes de executar um deles a partir desta visualização.200* `/compact`, `/clear` e `/rewind` atuam na conversa do líder, então Claude Code pede que você confirme antes de executar um deles a partir desta visualização.

201* `/model` e `/fast` definem o modelo e o modo rápido do líder, não os do companheiro de equipe, então eles não são executados a partir desta visualização. Um aviso informa o motivo.201* `/model` e `/fast` definem o modelo e o modo rápido do líder, não os do companheiro de equipe, então eles não são executados a partir desta visualização. Um aviso informa o motivo.

202 202 

203O modelo e o modo rápido de um companheiro de equipe são fixos quando ele é gerado. `/effort` ainda se aplica aos turnos posteriores do companheiro de equipe visualizado, porque os companheiros de equipe seguem o [nível de esforço](/docs/pt/model-config#adjust-effort-level) do líder.203O modelo e o modo rápido de um companheiro de equipe são fixos quando ele é gerado.

204 204 

205<h3 id="assign-and-claim-tasks">205<h3 id="assign-and-claim-tasks">

206 Atribuir e reivindicar tarefas206 Atribuir e reivindicar tarefas


293 Use subagent definitions for teammates293 Use subagent definitions for teammates

294</h3>294</h3>

295 295 

296Ao gerar um companheiro de equipe em qualquer modo de exibição, você pode referenciar um tipo de [subagent](/docs/pt/sub-agents) do projeto, usuário ou escopo de subagent gerenciado [subagent scope](/docs/pt/sub-agents#choose-the-subagent-scope). Isso permite que você defina um papel uma vez, como um revisor de segurança ou executor de testes, e o reutilize tanto como um subagent delegado quanto como um companheiro de equipe de equipe de agentes.296Ao gerar um companheiro de equipe em qualquer modo de exibição, você pode referenciar um tipo de [subagente](/docs/pt/sub-agents) do [escopo de subagente](/docs/pt/sub-agents#choose-the-subagent-scope) de projeto, usuário, gerenciado ou de plugin. Isso permite que você defina um papel uma vez, como um revisor de segurança ou executor de testes, e o reutilize tanto como um subagente delegado quanto como um companheiro de equipe de equipe de agentes.

297 297 

298Para usar uma definição de subagent, mencione-a pelo nome ao pedir ao Claude para gerar o companheiro de equipe:298Para usar uma definição de subagent, mencione-a pelo nome ao pedir ao Claude para gerar o companheiro de equipe:

299 299 


305 305 

306* **`tools`**: Claude Code limita o companheiro de equipe às ferramentas na lista `tools` da definição. Para um companheiro de equipe em processo, Claude Code adiciona `SendMessage` a essa lista, e em uma [sessão que tem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability) ele também adiciona `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`.306* **`tools`**: Claude Code limita o companheiro de equipe às ferramentas na lista `tools` da definição. Para um companheiro de equipe em processo, Claude Code adiciona `SendMessage` a essa lista, e em uma [sessão que tem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability) ele também adiciona `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`.

307* **`model`**: Claude Code usa o `model` da definição em qualquer modo de exibição quando seu prompt de geração não nomeia um. Veja [como Claude Code escolhe o modelo de um companheiro de equipe](#specify-teammates-and-models).307* **`model`**: Claude Code usa o `model` da definição em qualquer modo de exibição quando seu prompt de geração não nomeia um. Veja [como Claude Code escolhe o modelo de um companheiro de equipe](#specify-teammates-and-models).

308* **`disallowedTools`**: para um companheiro de equipe em processo, Claude Code remove as ferramentas listadas em `disallowedTools` da definição do conjunto do companheiro de equipe. `SendMessage` e as ferramentas Task que ele adiciona continuam disponíveis mesmo quando a lista as nomeia.

309* **`effort`**: para um companheiro de equipe em processo, Claude Code aplica o [`effort`](/docs/pt/sub-agents#supported-frontmatter-fields) da definição segundo as [regras de esforço do frontmatter](/docs/pt/model-config#set-the-effort-level).

308* **Body**: para um companheiro de equipe em processo, Claude Code anexa o corpo da definição ao seu prompt do sistema padrão como instruções adicionais. Para um companheiro de equipe em painel dividido, Claude Code usa o corpo no lugar do seu prompt do sistema padrão.310* **Body**: para um companheiro de equipe em processo, Claude Code anexa o corpo da definição ao seu prompt do sistema padrão como instruções adicionais. Para um companheiro de equipe em painel dividido, Claude Code usa o corpo no lugar do seu prompt do sistema padrão.

309* **`skills`**: Claude Code não aplica o `skills` da definição a um companheiro de equipe em qualquer modo de exibição. O companheiro de equipe carrega skills de suas configurações de projeto e usuário.311* **`skills`**: Claude Code não aplica o `skills` da definição a um companheiro de equipe em qualquer modo de exibição. O companheiro de equipe carrega skills de suas configurações de projeto e usuário.

310* **`mcpServers`**: para um companheiro de equipe em painel dividido, Claude Code aplica o `mcpServers` da definição sob as [regras para esse campo](/docs/pt/sub-agents#scope-mcp-servers-to-a-subagent), que cobrem uma sessão iniciada com `--agent` também. Um companheiro de equipe em processo ignora o campo e carrega servidores MCP de suas configurações de projeto e usuário.312* **`mcpServers`**: para um companheiro de equipe em painel dividido, Claude Code aplica o `mcpServers` da definição sob as [regras para esse campo](/docs/pt/sub-agents#scope-mcp-servers-to-a-subagent), que cobrem uma sessão iniciada com `--agent` também. Um companheiro de equipe em processo ignora o campo e carrega servidores MCP de suas configurações de projeto e usuário.

champion-kit.md +7 −7

Details

50Exemplos de técnicas reutilizáveis:50Exemplos de técnicas reutilizáveis:

51 51 

52* "Aprendi que @-mencionar um diretório funciona. Apontei para `@src/components/` e perguntei quais estavam faltando testes, o que revelou dois que eu tinha negligenciado."52* "Aprendi que @-mencionar um diretório funciona. Apontei para `@src/components/` e perguntei quais estavam faltando testes, o que revelou dois que eu tinha negligenciado."

53* "Plan mode (`Shift+Tab`) mostra exatamente quais arquivos serão tocados antes de qualquer edição ser feita, é por isso que estou confortável em usá-lo em código compartilhado."53* "O modo de planejamento (`Shift+Tab`) apresenta primeiro as alterações propostas, e é por isso que estou confortável em usá-lo em código compartilhado."

54* "Configurei um hook Stop para receber uma notificação de desktop quando uma tarefa longa é concluída. A configuração está na thread."54* "Configurei um hook Stop para receber uma notificação de desktop quando uma tarefa longa é concluída. A configuração está na thread."

55* "Executar `/init` gera um `CLAUDE.md` do repositório para que o assistente pare de fazer perguntas sobre nossas convenções."55* "Executar `/init` gera um `CLAUDE.md` do repositório para que o assistente pare de fazer perguntas sobre nossas convenções."

56 56 


88```88```

89 89 

90```text theme={null}90```text theme={null}

91Plan mode é a razão pela qual estou confortável em usar isso em código que91O modo de planejamento é a razão pela qual estou confortável em usar isso em

92importa. Pressione Shift+Tab até ver "plan"; ele mostra exatamente quais92código que importa. Pressione Shift+Tab até ver "plan"; ele apresenta as

93arquivos ele pretende tocar antes de mudar qualquer coisa.93alterações que propõe sem editar seu código-fonte.

94```94```

95 95 

96<h2 id="be-the-person-people-ask">96<h2 id="be-the-person-people-ask">


126| Pergunta | Resposta sugerida | Recurso de acompanhamento |126| Pergunta | Resposta sugerida | Recurso de acompanhamento |

127| - | - | - |127| - | - | - |

128| "O que devo tentar primeiro?" | Recomende uma tarefa real mas contida, idealmente um bug ou tarefa que a pessoa tem adiado porque é tedioso em vez de difícil. | [Common workflows](/docs/pt/common-workflows) |128| "O que devo tentar primeiro?" | Recomende uma tarefa real mas contida, idealmente um bug ou tarefa que a pessoa tem adiado porque é tedioso em vez de difícil. | [Common workflows](/docs/pt/common-workflows) |

129| "Como confio nela com meu código?" | Introduza plan mode: pressionar `Shift+Tab` entra nele, Claude propõe exatamente o que pretende mudar, e nada é modificado até que o usuário aprove. | [Permissions](/docs/pt/permissions) |129| "Como confio nela com meu código?" | Apresente o modo de planejamento: pressionar `Shift+Tab` alterna para ele, e Claude pesquisa e propõe mudanças sem editar seu código-fonte. | [Permissions](/docs/pt/permissions) |

130| "Vale a pena o esforço de configuração?" | A instalação leva aproximadamente dois minutos, é executada no terminal e não requer extensão de IDE. Executar `/init` uma vez é suficiente para começar a trabalhar. | [Quickstart](/docs/pt/quickstart) |130| "Vale a pena o esforço de configuração?" | A instalação leva aproximadamente dois minutos, é executada no terminal e não requer extensão de IDE. Executar `/init` uma vez é suficiente para começar a trabalhar. | [Quickstart](/docs/pt/quickstart) |

131| "Produziu um resultado incorreto." | Encoraje-o a fornecer a falha de volta para Claude. Colar a mensagem de erro ou teste falhando é muito mais eficaz do que reformular a solicitação original. | [Common workflows](/docs/pt/common-workflows) |131| "Produziu um resultado incorreto." | Encoraje-o a fornecer a falha de volta para Claude. Colar a mensagem de erro ou teste falhando é muito mais eficaz do que reformular a solicitação original. | [Common workflows](/docs/pt/common-workflows) |

132| "Não entende as convenções do nosso codebase." | Sugira executar `/init` para gerar um arquivo `CLAUDE.md`, depois adicione as convenções da equipe, comandos de teste e quaisquer diretórios que devem ser evitados. | [Memory](/docs/pt/memory) |132| "Não entende as convenções do nosso codebase." | Sugira executar `/init` para gerar um arquivo `CLAUDE.md`, depois adicione as convenções da equipe, comandos de teste e quaisquer diretórios que devem ser evitados. | [Memory](/docs/pt/memory) |


199| Preocupação | Resposta sugerida | Evidência a oferecer |199| Preocupação | Resposta sugerida | Evidência a oferecer |

200| - | - | - |200| - | - | - |

201| "Sou mais rápido sem ela." | Isso é provavelmente verdade para código que a pessoa escreve rotineiramente. Sugira tentar em trabalho que ela tende a evitar: arquivos legados, serviços desconhecidos ou scaffolding de teste, onde a alavancagem é maior. | Cronometra uma tarefa tedioso de ambas as maneiras e compara. |201| "Sou mais rápido sem ela." | Isso é provavelmente verdade para código que a pessoa escreve rotineiramente. Sugira tentar em trabalho que ela tende a evitar: arquivos legados, serviços desconhecidos ou scaffolding de teste, onde a alavancagem é maior. | Cronometra uma tarefa tedioso de ambas as maneiras e compara. |

202| "Não confio em IA para tocar código de produção." | Concorde que nenhuma mudança deve ser aplicada sem ser lida. Plan mode combinado com revisão de diff normal significa que nada é aplicado que o engenheiro não inspecionou, o mesmo padrão de qualquer pull request. | Demonstre plan mode em um arquivo real. |202| "Não confio em IA para tocar código de produção." | Concorde que nenhuma mudança deve ser aplicada sem ser lida. Sugira o modo de planejamento para ver as mudanças propostas primeiro e, em seguida, revise o diff com o mesmo padrão de qualquer pull request. | Demonstre o modo de planejamento em um arquivo real. |

203| "Isso tornará engenheiros juniores mais fracos." | Usado bem, é um explicador eficaz. Encoraje engenheiros juniores a pedir a Claude para explicar um arquivo e seus locais de chamada antes de pedir para mudar qualquer coisa. | Execute "Explain @file and where it is called from" juntos. |203| "Isso tornará engenheiros juniores mais fracos." | Usado bem, é um explicador eficaz. Encoraje engenheiros juniores a pedir a Claude para explicar um arquivo e seus locais de chamada antes de pedir para mudar qualquer coisa. | Execute "Explain @file and where it is called from" juntos. |

204| "Tentei uma vez e alucinava." | Isso é geralmente um problema de contexto em vez de um problema de modelo. @-mencionar os arquivos relevantes, executar `/init` e fornecer a saída de erro real geralmente resolve. | Re-execute seu prompt original com contexto `@` apropriado. |204| "Tentei uma vez e alucinava." | Isso é geralmente um problema de contexto em vez de um problema de modelo. @-mencionar os arquivos relevantes, executar `/init` e fornecer a saída de erro real geralmente resolve. | Re-execute seu prompt original com contexto `@` apropriado. |

205| "Não temos tempo para aprender outra ferramenta." | Claude Code é um comando de terminal em vez de uma plataforma. Se não retornar valor na primeira sessão, é razoável deixá-lo de lado. | Uma instalação de dois minutos seguida por um bug real. |205| "Não temos tempo para aprender outra ferramenta." | Claude Code é um comando de terminal em vez de uma plataforma. Se não retornar valor na primeira sessão, é razoável deixá-lo de lado. | Uma instalação de dois minutos seguida por um bug real. |


213| Técnica | Como aplicá-la |213| Técnica | Como aplicá-la |

214| - | - |214| - | - |

215| Forneça o contexto certo | Use referências `@file` ou `@directory/`, ou cole a saída de erro ou log diretamente. Fornecer contexto relevante é mais eficaz do que prompting elaborado. |215| Forneça o contexto certo | Use referências `@file` ou `@directory/`, ou cole a saída de erro ou log diretamente. Fornecer contexto relevante é mais eficaz do que prompting elaborado. |

216| Revise o plano antes da edição | Pressione `Shift+Tab` para entrar em plan mode. Claude descreverá as mudanças pretendidas para sua aprovação antes de executá-las. |216| Revise o plano antes da edição | Pressione `Shift+Tab` para entrar no modo de planejamento. Claude pesquisa e propõe mudanças sem editar seu código-fonte. |

217| Ensine ao repositório | Execute `/init` para gerar um arquivo `CLAUDE.md`, depois adicione suas convenções, comandos de teste e quaisquer diretórios que não devem ser modificados. Veja [Memory](/docs/pt/memory). |217| Ensine ao repositório | Execute `/init` para gerar um arquivo `CLAUDE.md`, depois adicione suas convenções, comandos de teste e quaisquer diretórios que não devem ser modificados. Veja [Memory](/docs/pt/memory). |

218| Reutilize um fluxo de trabalho | Salve um arquivo `SKILL.md` em `.claude/skills/<name>/` para criar um skill `/name` que toda a equipe pode usar. Veja [Skills](/docs/pt/skills). |218| Reutilize um fluxo de trabalho | Salve um arquivo `SKILL.md` em `.claude/skills/<name>/` para criar um skill `/name` que toda a equipe pode usar. Veja [Skills](/docs/pt/skills). |

219| Mantenha-se informado durante tarefas longas | Configure um hook Stop para receber uma notificação de desktop quando uma tarefa de longa duração é concluída. Veja [Hooks](/docs/pt/hooks-guide). |219| Mantenha-se informado durante tarefas longas | Configure um hook Stop para receber uma notificação de desktop quando uma tarefa de longa duração é concluída. Veja [Hooks](/docs/pt/hooks-guide). |

channels.md +1 −1

Details

349 349 

350Se você definir uma matriz vazia, você bloqueia todos os plugins de canal da lista de permissão, mas `--dangerously-load-development-channels` ainda pode contorná-lo para testes locais. Para bloquear canais completamente, incluindo a flag de desenvolvimento, deixe `channelsEnabled` indefinido.350Se você definir uma matriz vazia, você bloqueia todos os plugins de canal da lista de permissão, mas `--dangerously-load-development-channels` ainda pode contorná-lo para testes locais. Para bloquear canais completamente, incluindo a flag de desenvolvimento, deixe `channelsEnabled` indefinido.

351 351 

352Esta configuração requer `channelsEnabled: true`. Se um usuário passar um plugin para `--channels` que não esteja em sua lista, Claude Code inicia normalmente, mas o canal não se registra, e o aviso de inicialização explica que o plugin não está na lista aprovada da organização. Se você definir `MCP_PROTOCOL_NEGOTIATION` como `auto` no runtime do cliente MCP v2, um canal também pode falhar ao se registrar porque Claude Code [não registra um servidor de canal que negocia revisão de protocolo 2026-07-28](/docs/pt/mcp#push-messages-with-channels).352Esta configuração requer `channelsEnabled: true`. Se um usuário passar um plugin para `--channels` que não esteja em sua lista, Claude Code inicia normalmente, mas o canal não se registra, e o aviso de inicialização explica que o plugin não está na lista aprovada da organização. No runtime do cliente MCP v2, um canal também pode falhar ao se registrar porque Claude Code [não registra um servidor de canal que negocia revisão de protocolo 2026-07-28](/docs/pt/mcp#push-messages-with-channels).

353 353 

354<h2 id="research-preview">354<h2 id="research-preview">

355 Visualização de pesquisa355 Visualização de pesquisa

chrome.md +1 −1

Details

130Em uma sessão do VS Code, se Claude Code pergunta a você antes de uma ação do navegador depende de como a sessão se conectou ao seu navegador:130Em uma sessão do VS Code, se Claude Code pergunta a você antes de uma ação do navegador depende de como a sessão se conectou ao seu navegador:

131 131 

132* **Você digitou `@browser`**: a extensão aprova cada ação do navegador sobre a qual Claude Code, de outra forma, perguntaria a você.132* **Você digitou `@browser`**: a extensão aprova cada ação do navegador sobre a qual Claude Code, de outra forma, perguntaria a você.

133* **A configuração [Enabled by default](#enable-chrome-by-default) a conectou ao iniciar**: Claude Code pergunta a você antes de ações do navegador nos modos de permissão Manual, Edit automatically, Auto e Bypass permissions, até que você digite `@browser` nessa sessão.133* **A configuração [Enabled by default](#enable-chrome-by-default) a conectou ao iniciar**: Claude Code pergunta a você antes de ações do navegador em um site que você não permitiu, nos modos de permissão Manual, Edit automatically, Auto e Bypass permissions, até que você digite `@browser` nessa sessão.

134 134 

135<h3 id="browser-tools-in-plan-mode">135<h3 id="browser-tools-in-plan-mode">

136 Ferramentas do navegador no modo de plano136 Ferramentas do navegador no modo de plano

Details

79| Campo | Obrigatório | Descrição |79| Campo | Obrigatório | Descrição |

80| - | - | - |80| - | - | - |

81| `issuer` | Sim | Base de descoberta OIDC. Deve servir descoberta em `/.well-known/openid-configuration`. Use HTTPS em produção; o gateway aceita um emissor `http://`. Um emissor de loopback como `http://localhost:8081` é rejeitado pela [proteção SSRF](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esteja definido no ambiente do gateway. |81| `issuer` | Sim | Base de descoberta OIDC. Deve servir descoberta em `/.well-known/openid-configuration`. Use HTTPS em produção; o gateway aceita um emissor `http://`. Um emissor de loopback como `http://localhost:8081` é rejeitado pela [proteção SSRF](/docs/pt/claude-apps-gateway-deploy#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esteja definido no ambiente do gateway. |

82| `client_id` / `client_secret` | Sim | Do seu registro de cliente OAuth |82| `client_id` | Sim | Do seu registro de cliente OAuth |

83| `client_secret` | A menos que `token_endpoint_auth_method` seja `private_key_jwt` | Do seu registro de cliente OAuth. Omita-o quando você usar [autenticação de cliente por certificado](#certificate-client-authentication). |

83| `allowed_email_domains` | Não | Rejeite id\_tokens cuja declaração `email` não esteja em um desses domínios, insensível a maiúsculas/minúsculas. Defesa em profundidade contra configuração incorreta de IdP multi-tenant. Independentemente dessa configuração, um id\_token cuja declaração `email_verified` é explicitamente `false` é sempre rejeitado. |84| `allowed_email_domains` | Não | Rejeite id\_tokens cuja declaração `email` não esteja em um desses domínios, insensível a maiúsculas/minúsculas. Defesa em profundidade contra configuração incorreta de IdP multi-tenant. Independentemente dessa configuração, um id\_token cuja declaração `email_verified` é explicitamente `false` é sempre rejeitado. |

84| `allowed_groups` | Não | Restrinja o login a membros desses grupos IdP, comparados com `groups_claim`. Um usuário em um domínio de email permitido mas em nenhum desses grupos é rejeitado. Requer que o IdP emita a declaração de grupos. A correspondência é uma comparação de string exata e sensível a maiúsculas/minúsculas contra os valores nessa declaração, e o gateway não expande grupos aninhados: para admitir membros de um subgrupo, liste o subgrupo aqui ou configure o IdP para emitir associação achatada. |85| `allowed_groups` | Não | Restrinja o login a membros desses grupos IdP, comparados com `groups_claim`. Um usuário em um domínio de email permitido mas em nenhum desses grupos é rejeitado. Requer que o IdP emita a declaração de grupos. A correspondência é uma comparação de string exata e sensível a maiúsculas/minúsculas contra os valores nessa declaração, e o gateway não expande grupos aninhados: para admitir membros de um subgrupo, liste o subgrupo aqui ou configure o IdP para emitir associação achatada. |

85| `groups_claim` | Não | Qual declaração id\_token carrega associação de grupo. Padrão `groups`. Microsoft Entra emite funções de aplicativo sob `roles`. Aceita uma chave simples ou um JSON Pointer RFC 6901 como `/resource_access/gateway/roles` para declarações aninhadas. |86| `groups_claim` | Não | Qual declaração id\_token carrega associação de grupo. Padrão `groups`. Microsoft Entra emite funções de aplicativo sob `roles`. Aceita uma chave simples ou um JSON Pointer RFC 6901 como `/resource_access/gateway/roles` para declarações aninhadas. |


91| `userinfo_fallback` | Não | Quando o id\_token omite email ou grupos, busque-os em `/userinfo`. Necessário para tokens de acesso leve do Keycloak, o servidor org do Okta e tokens mínimos do ADFS. O id\_token permanece autoritário; userinfo apenas preenche lacunas. Padrão `false`. |92| `userinfo_fallback` | Não | Quando o id\_token omite email ou grupos, busque-os em `/userinfo`. Necessário para tokens de acesso leve do Keycloak, o servidor org do Okta e tokens mínimos do ADFS. O id\_token permanece autoritário; userinfo apenas preenche lacunas. Padrão `false`. |

92| `use_pkce` | Não | Envie um desafio PKCE (S256) na solicitação de autorização. Padrão `true`. Defina `false` apenas se seu IdP rejeitar PKCE para este cliente confidencial. |93| `use_pkce` | Não | Envie um desafio PKCE (S256) na solicitação de autorização. Padrão `true`. Defina `false` apenas se seu IdP rejeitar PKCE para este cliente confidencial. |

93| `clock_skew_seconds` | Não | Tolere desvio de relógio ao validar declarações de tempo id\_token. Padrão `0`, que é rigoroso. Aumente se você vir erros "token expirado / ainda não válido" logo após o login devido a desvio de relógio host/IdP. |94| `clock_skew_seconds` | Não | Tolere desvio de relógio ao validar declarações de tempo id\_token. Padrão `0`, que é rigoroso. Aumente se você vir erros "token expirado / ainda não válido" logo após o login devido a desvio de relógio host/IdP. |

94| `token_endpoint_auth_method` | Não | Substitua o método de autenticação do endpoint de token. Aceita `client_secret_basic` ou `client_secret_post`. Negociado automaticamente por padrão. |95| `token_endpoint_auth_method` | Não | Como o gateway se autentica no endpoint de token do IdP: `client_secret_basic`, `client_secret_post` ou `private_key_jwt` para [autenticação de cliente por certificado](#certificate-client-authentication). Por padrão, o gateway escolhe um dos dois métodos `client_secret` com base no que o IdP anuncia. |

96| `client_assertion` | Com `private_key_jwt` | Um bloco com `private_key_pem` e `certificate_pem`: a chave privada e o certificado para [autenticação de cliente por certificado](#certificate-client-authentication). Requer v2.1.284 ou posterior. |

95| `id_token_signed_response_alg` | Não | Algoritmo de assinatura id\_token esperado. Padrão `RS256`. Defina para IdPs que assinam com ES256, PS256 ou EdDSA. |97| `id_token_signed_response_alg` | Não | Algoritmo de assinatura id\_token esperado. Padrão `RS256`. Defina para IdPs que assinam com ES256, PS256 ou EdDSA. |

96| `additional_authorized_parties` | Não | Valores `azp` extras para aceitar além de `client_id`, para fluxos de broker e troca de token do Keycloak |98| `additional_authorized_parties` | Não | Valores `azp` extras para aceitar além de `client_id`, para fluxos de broker e troca de token do Keycloak |

97| `discovery_url` | Não | Busque o documento de descoberta desta URL em vez de derivá-lo de `issuer`, para IdPs atrás de um proxy que reescreve o host do emissor. O caminho deve conter `/.well-known/`. |99| `discovery_url` | Não | Busque o documento de descoberta desta URL em vez de derivá-lo de `issuer`, para IdPs atrás de um proxy que reescreve o host do emissor. O caminho deve conter `/.well-known/`. |


99| `form_action_origins` | Não | Origens adicionais para a diretiva `Content-Security-Policy: form-action` da página `/device`. O gateway já permite `'self'` e a origem `authorization_endpoint` descoberta, mas o Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Se seu IdP redireciona através de um segundo host, como Azure AD federado para ADFS, Okta hub-spoke ou um interceptador SSO corporativo, liste cada origem pela qual a solicitação de autorização pode redirecionar. |101| `form_action_origins` | Não | Origens adicionais para a diretiva `Content-Security-Policy: form-action` da página `/device`. O gateway já permite `'self'` e a origem `authorization_endpoint` descoberta, mas o Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Se seu IdP redireciona através de um segundo host, como Azure AD federado para ADFS, Okta hub-spoke ou um interceptador SSO corporativo, liste cada origem pela qual a solicitação de autorização pode redirecionar. |

100| `ca_cert_pem` | Não | O certificado CA codificado em PEM em si, não um caminho para um arquivo. Ele substitui o armazenamento de confiança do sistema apenas para solicitações do IdP. Para carregar um arquivo montado, escreva `${file:/etc/gateway/idp-ca.pem}`. Use para Keycloak ou Dex atrás de PKI corporativa. |102| `ca_cert_pem` | Não | O certificado CA codificado em PEM em si, não um caminho para um arquivo. Ele substitui o armazenamento de confiança do sistema apenas para solicitações do IdP. Para carregar um arquivo montado, escreva `${file:/etc/gateway/idp-ca.pem}`. Use para Keycloak ou Dex atrás de PKI corporativa. |

101 103 

104<h4 id="certificate-client-authentication">

105 Autenticação de cliente por certificado

106</h4>

107 

108Se o seu provedor de identidade autentica clientes OAuth com um certificado em vez de um segredo de cliente, como o Microsoft Entra faz com credenciais de certificado, defina `token_endpoint_auth_method: private_key_jwt`. Requer Claude Code v2.1.284 ou posterior no servidor gateway.

109 

110Com essa configuração, o gateway não envia nenhum segredo. Ele se autentica no endpoint de token do IdP com um JWT de curta duração assinado com a chave privada do certificado quando um desenvolvedor faz login e cada vez que o gateway atualiza a sessão dele. O JWT é assinado com RS256 e identifica o certificado pelos cabeçalhos de thumbprint `x5t` e `x5t#S256` em vez de um `kid`. Seu IdP deve ser capaz de encontrar o certificado registrado pelo thumbprint.

111 

112<Steps>

113 <Step title="Crie a chave e o certificado">

114 Crie uma chave privada RSA não criptografada de pelo menos 2048 bits, em formato PEM PKCS#8 ou PKCS#1, e um certificado para ela. O gateway se recusa a iniciar com qualquer chave que não atenda a essas condições. Este comando `openssl` cria uma chave desse tipo com um certificado autoassinado válido por um ano:

115 

116 ```bash theme={null}

117 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

118 ```

119 

120 Ele grava `idp-client.key` e `idp-client.crt` no diretório atual. Copie ou monte ambos os arquivos onde o gateway possa lê-los. O exemplo na etapa 3 usa `/etc/gateway/`.

121 </Step>

122 

123 <Step title="Envie o certificado para o IdP">

124 Envie o certificado, não a chave privada, para o registro de aplicativo do gateway no IdP.

125 </Step>

126 

127 <Step title="Adicione a chave e o certificado ao gateway.yaml">

128 Forneça ao gateway a chave privada e o certificado em um bloco `client_assertion`. Omita `client_secret`, porque o gateway se recusa a iniciar quando ele está definido junto com `private_key_jwt`. Este bloco `oidc` autentica o gateway em um tenant do Microsoft Entra com um certificado:

129 

130 ```yaml theme={null}

131 oidc:

132 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

133 client_id: <application-id>

134 token_endpoint_auth_method: private_key_jwt

135 client_assertion:

136 private_key_pem: ${file:/etc/gateway/idp-client.key}

137 certificate_pem: ${file:/etc/gateway/idp-client.crt}

138 ```

139 

140 Ambos os valores são o conteúdo PEM, não caminhos de arquivo, portanto carregue arquivos montados com `${file:/path}` como o exemplo faz. O gateway se recusa a iniciar a menos que `certificate_pem` seja um único certificado PEM, sem o restante de sua cadeia, cuja chave pública corresponda a `private_key_pem`.

141 </Step>

142 

143 <Step title="Reinicie o gateway e verifique o log de inicialização">

144 Reinicie o gateway e encontre esta linha no log de inicialização:

145 

146 ```text theme={null}

147 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

148 ```

149 

150 Compare o thumbprint SHA-1 com o que o IdP mostra para o certificado que você enviou. Se o certificado tiver expirado ou ainda não for válido, o gateway ainda inicia, mas registra um aviso de que logins e atualizações falharão até que você o substitua. Para confirmar que o IdP aceita o certificado, peça a um desenvolvedor que faça login através do gateway.

151 </Step>

152</Steps>

153 

154<h4 id="rotate-the-client-certificate">

155 Rotacionar o certificado do cliente

156</h4>

157 

158O gateway lê a chave e o certificado uma vez na inicialização, portanto um arquivo alterado só tem efeito após uma reinicialização. Faça a rotação nesta ordem para que nenhuma requisição de token apresente um certificado que o IdP não tenha:

159 

1601. Envie o novo certificado para o IdP junto com o antigo.

1612. Substitua os arquivos de chave e certificado que o `gateway.yaml` carrega e, em seguida, reinicie o gateway.

1623. Remova o certificado antigo do IdP.

163 

102<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

103 Solicitações do IdP através de um proxy de encaminhamento165 Solicitações do IdP através de um proxy de encaminhamento

104</h4>166</h4>


1224| - | - | - | - |1286| - | - | - | - |

1225| `access_control` | `allow_cidrs` / `deny_cidrs` | vazio | Inbound IP permitir/negar por endereço do cliente, após resolução de `trusted_proxies`. `deny_cidrs` é verificado primeiro; um cliente que corresponde é rejeitado mesmo se `allow_cidrs` também corresponde. Se `allow_cidrs` não está vazio o gateway é padrão-negar. `/healthz` e `/readyz` estão isentos de `allow_cidrs`. Quando um proxy confiável envia uma entrada `X-Forwarded-For` que não é um endereço IP, o cliente real é desconhecido e o gateway registra um aviso uma vez nomeando o que verificar. Onde qualquer lista se aplica à requisição, ela a recusa com `403` e razão de auditoria `xff_unparseable`. Onde nenhuma se aplica, ela serve a requisição e usa o endereço do próprio proxy como o IP do cliente para rate limits por IP e auditoria. |1287| `access_control` | `allow_cidrs` / `deny_cidrs` | vazio | Inbound IP permitir/negar por endereço do cliente, após resolução de `trusted_proxies`. `deny_cidrs` é verificado primeiro; um cliente que corresponde é rejeitado mesmo se `allow_cidrs` também corresponde. Se `allow_cidrs` não está vazio o gateway é padrão-negar. `/healthz` e `/readyz` estão isentos de `allow_cidrs`. Quando um proxy confiável envia uma entrada `X-Forwarded-For` que não é um endereço IP, o cliente real é desconhecido e o gateway registra um aviso uma vez nomeando o que verificar. Onde qualquer lista se aplica à requisição, ela a recusa com `403` e razão de auditoria `xff_unparseable`. Onde nenhuma se aplica, ela serve a requisição e usa o endereço do próprio proxy como o IP do cliente para rate limits por IP e auditoria. |

1226| `limits` | `max_request_bytes` | 32 MiB | Corpo de requisição inbound máximo; requisições de tamanho excessivo obtêm `413` antes do corpo ser armazenado em buffer. Aumente para requisições de arquivo ou imagem grandes. |1288| `limits` | `max_request_bytes` | 32 MiB | Corpo de requisição inbound máximo; requisições de tamanho excessivo obtêm `413` antes do corpo ser armazenado em buffer. Aumente para requisições de arquivo ou imagem grandes. |

1227| `limits` | `max_request_header_bytes` | não definido | Quando definido, cabeçalhos de tamanho excessivo retornam `431` |1289| `limits` | `max_request_header_bytes` | não definido | Reduz o limite de 256 KiB do gateway para o total de cabeçalhos de uma requisição. Uma requisição acima do limite retorna `431`, e um valor acima de 256 KiB não tem efeito. Se desenvolvedores recebem `431` depois de se conectar, veja [Request headers too large after sign-in](/docs/pt/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in). |

1228| `limits` | `max_url_length` | não definido | Quando definido, uma URL muito longa retorna `414` |1290| `limits` | `max_url_length` | não definido | Quando definido, uma URL muito longa retorna `414` |

1229| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima pelos cabeçalhos de resposta do upstream (tempo até o primeiro byte). O corpo da resposta então flui sem limite de relógio de parede. Aplica-se ao caminho direto do upstream Anthropic; em cada outro provedor o gateway aguarda até uma hora para a resposta começar. |1291| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima pelos cabeçalhos de resposta do upstream (tempo até o primeiro byte). O corpo da resposta então flui sem limite de relógio de parede. Aplica-se ao caminho direto do upstream Anthropic; em cada outro provedor o gateway aguarda até uma hora para a resposta começar. |

1230| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Rate limit por IP no endpoint de autorização de dispositivo não autenticado. Aumente para uma grande organização atrás de um IP de egresso compartilhado ou NAT. [Large rollouts](/docs/pt/claude-apps-gateway-deploy#large-rollouts) mostra como dimensioná-lo. Estes limites se aplicam apenas ao fluxo de concessão de dispositivo de sign-in, não à inferência `/v1/messages`. Veja [User-code brute-force resistance](/docs/pt/claude-apps-gateway-deploy#user-code-brute-force-resistance). |1292| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Rate limit por IP no endpoint de autorização de dispositivo não autenticado. Aumente para uma grande organização atrás de um IP de egresso compartilhado ou NAT. [Large rollouts](/docs/pt/claude-apps-gateway-deploy#large-rollouts) mostra como dimensioná-lo. Estes limites se aplicam apenas ao fluxo de concessão de dispositivo de sign-in, não à inferência `/v1/messages`. Veja [User-code brute-force resistance](/docs/pt/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

Details

25 Configuração do provedor de identidade25 Configuração do provedor de identidade

26</h2>26</h2>

27 27 

28Registre um aplicativo web OAuth/OpenID Connect (OIDC) confidencial com um único URI de redirecionamento, `https://<gateway>/oauth/callback`, e atribua-o aos usuários ou grupos que devem ter acesso ao gateway.28Registre uma aplicação web confidencial OAuth/OpenID Connect (OIDC) com um único URI de redirecionamento, `https://<gateway>/oauth/callback`, e atribua-a aos usuários ou grupos que devem ter acesso ao gateway. O gateway se autentica no IdP com o client secret do registro, ou com um certificado que você envia para o registro se o seu IdP usar [credenciais de certificado](/docs/pt/claude-apps-gateway-config#certificate-client-authentication) em vez disso.

29 29 

30Qualquer IdP compatível com OIDC funciona: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate e outros. O IdP deve atender a três requisitos:30Qualquer IdP compatível com OIDC funciona: Okta, Microsoft Entra ID, Google Workspace, Keycloak, Dex, PingFederate e outros. O IdP deve atender a três requisitos:

31 31 

32* Serve `/.well-known/openid-configuration`, sobre HTTPS em produção; o gateway aceita um [emissor `http://`](/docs/pt/claude-apps-gateway-config#oidc), e um emissor de loopback adicionalmente requer `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`32* Disponibiliza `/.well-known/openid-configuration`, via HTTPS em produção; o gateway aceita um [issuer `http://`](/docs/pt/claude-apps-gateway-config#oidc), e um issuer de loopback requer adicionalmente `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`

33* Suporta o fluxo de código de autorização. PKCE (Proof Key for Code Exchange) está ativado por padrão; desative-o com `oidc.use_pkce: false` para IdPs que não o suportam33* Suporta o fluxo de authorization code. PKCE (Proof Key for Code Exchange) vem ativado por padrão; desative-o com `oidc.use_pkce: false` para IdPs que não o suportam

34* Retorna `email` e opcionalmente `groups` no id\_token, ou os serve do endpoint userinfo com `oidc.userinfo_fallback: true`34* Retorna `email` e, opcionalmente, `groups` no id\_token, ou os disponibiliza a partir do endpoint userinfo com `oidc.userinfo_fallback: true`

35 35 

36Para PKI privada, defina `oidc.ca_cert_pem`.36Para PKI privada, defina `oidc.ca_cert_pem`.

37 37 

38Alguns provedores lidam com email e reivindicações de grupo de forma diferente:38Alguns provedores tratam claims de email e de grupos de forma diferente:

39 39 

40* **Okta**: o servidor de autorização da organização em `https://example.okta.com` retorna um id\_token fino que omite `email` e `groups`, então defina `oidc.userinfo_fallback: true` sempre que o usar como `issuer`. Um servidor de autorização personalizado como `https://example.okta.com/oauth2/default` que inclui `email` e opcionalmente `groups` no id\_token os emite diretamente e não precisa de fallback. Okta emite `groups` apenas quando o escopo `groups` é solicitado em `oidc.scopes` e o filtro de reivindicação de grupos do aplicativo o permite; `userinfo_fallback` não pode preencher uma reivindicação que o IdP não foi solicitado.40* **Okta**: o servidor de autorização da organização em `https://example.okta.com` retorna um id\_token enxuto que omite `email` e `groups`, portanto defina `oidc.userinfo_fallback: true` sempre que você o usar como `issuer`. Um servidor de autorização personalizado, como `https://example.okta.com/oauth2/default`, que inclua `email` e, opcionalmente, `groups` no id\_token, os emite diretamente e não precisa de fallback. O Okta emite `groups` somente quando o escopo `groups` é solicitado em `oidc.scopes` e o filtro de claim de grupos da aplicação o permite; `userinfo_fallback` não consegue preencher uma claim que não foi solicitada ao IdP.

41* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. Entra emite Object IDs de grupo em vez de nomes, então use os GUIDs em `managed.policies.match.groups`, ou use App Roles para nomes legíveis por humanos. Se seu locatário emite funções sob `roles` em vez de `groups`, defina `oidc.groups_claim: roles`.41* **Microsoft Entra ID**: `issuer` = `https://login.microsoftonline.com/<tenant-id>/v2.0`. O Entra emite Object IDs de grupos em vez de nomes, portanto use os GUIDs em `managed.policies.match.groups`, ou use App Roles para nomes legíveis. Se o seu tenant emitir funções em `roles` em vez de `groups`, defina `oidc.groups_claim: roles`.

42* **Google Workspace**: `issuer` = `https://accounts.google.com`. O id\_token do Google não carrega grupos. Para usar `allowed_groups` baseado em grupo ou `managed.policies` com Google como IdP, configure [`oidc.google_groups`](/docs/pt/claude-apps-gateway-config#oidc), que procura os grupos de cada usuário através da API do Directory do Admin SDK usando uma conta de serviço com delegação em todo o domínio. Sem isso, use `oidc.allowed_email_domains` para gating de associação e `managed.policies.match.email_domain` para atribuição de política. Google também ignora o escopo padrão `offline_access`. Para tokens de atualização, defina `oidc.scopes: [openid, profile, email]` e `oidc.extra_auth_params: { access_type: offline, prompt: consent }`.42* **Google Workspace**: `issuer` = `https://accounts.google.com`. O id\_token do Google não contém grupos. Para usar `allowed_groups` ou `managed.policies` baseados em grupos com o Google como IdP, configure [`oidc.google_groups`](/docs/pt/claude-apps-gateway-config#oidc), que consulta os grupos de cada usuário por meio da Admin SDK Directory API usando uma conta de serviço com delegação em todo o domínio. Sem isso, use `oidc.allowed_email_domains` para controlar a associação e `managed.policies.match.email_domain` para a atribuição de políticas. O Google também ignora o escopo padrão `offline_access`. Para refresh tokens, defina `oidc.scopes: [openid, profile, email]` e `oidc.extra_auth_params: { access_type: offline, prompt: consent }`.

43 43 

44<Warning>44<Warning>

45 Tokens de atualização permitem que o gateway renove a sessão de um desenvolvedor silenciosamente, sem enviar o desenvolvedor de volta ao navegador. Eles também impulsionam o desprovisionamento, porque quando o IdP desativa um usuário, a próxima atualização falha e a sessão termina dentro de `ttl_hours`. O gateway solicita `offline_access` por padrão para obter um token de atualização. Se seu IdP exigir consentimento explícito para acesso offline, configure o cliente OAuth para permitir.45 Os refresh tokens permitem que o gateway renove a sessão de um desenvolvedor silenciosamente, sem enviar o desenvolvedor de volta ao navegador. Eles também viabilizam o desprovisionamento, porque quando o IdP desativa um usuário, a próxima renovação falha e a sessão termina dentro de `ttl_hours`. O gateway solicita `offline_access` por padrão para obter um refresh token. Se o seu IdP exigir consentimento explícito para acesso offline, configure o cliente OAuth para permiti-lo.

46 46 

47 Se seu IdP não conseguir emitir tokens de atualização, o gateway ainda funciona, mas não há renovação silenciosa, então os desenvolvedores executam novamente o login do navegador quando sua sessão expira. Para evitar que isso aconteça a cada hora, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session) para `8` ou `12`. A compensação é a latência de desprovisionamento, porque sem tokens de atualização um usuário desativado mantém acesso até que o TTL mais longo decorra.47 Se o seu IdP não puder emitir refresh tokens de forma alguma, o gateway ainda funciona, mas não há renovação silenciosa, então os desenvolvedores executam novamente o login pelo navegador quando a sessão expira. Para evitar que isso aconteça a cada hora, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session) para `8` ou `12`. A contrapartida é a latência do desprovisionamento, porque sem refresh tokens um usuário desativado mantém o acesso até que o TTL mais longo expire.

48</Warning>48</Warning>

49 49 

50<h2 id="deployment">50<h2 id="deployment">


367O primeiro registro pode ser executado antes de o desenvolvedor fazer login no gateway, quando nenhuma política do gateway chegou ainda. Para cobrir essa primeira inicialização, entregue sua escolha nas [configurações gerenciadas do lado do cliente](/docs/pt/claude-apps-gateway-config#client-side-managed-settings), além do [bloco `cli`](/docs/pt/claude-apps-gateway-config#what-goes-in-cli) da política do gateway.367O primeiro registro pode ser executado antes de o desenvolvedor fazer login no gateway, quando nenhuma política do gateway chegou ainda. Para cobrir essa primeira inicialização, entregue sua escolha nas [configurações gerenciadas do lado do cliente](/docs/pt/claude-apps-gateway-config#client-side-managed-settings), além do [bloco `cli`](/docs/pt/claude-apps-gateway-config#what-goes-in-cli) da política do gateway.

368 368 

369<h2 id="troubleshooting">369<h2 id="troubleshooting">

370 Troubleshooting370 Solução de problemas

371</h2>371</h2>

372 372 

373Para dúvidas e feedback, use [Claude Code support](https://support.claude.com/en/collections/14445694-claude-code), ou abra uma issue no [repositório Claude Code GitHub](https://github.com/anthropics/claude-code/issues). Ao relatar um problema, inclua:373Para dúvidas e feedback, use o [suporte do Claude Code](https://support.claude.com/en/collections/14445694-claude-code), ou abra uma issue no [repositório do Claude Code no GitHub](https://github.com/anthropics/claude-code/issues). Ao relatar um problema, inclua:

374 374 

375* **Gateway issue**: o stderr do gateway para a janela relevante, seu `gateway.yaml` com segredos removidos, a versão do gateway, mostrada na página inicial em `/` e no cabeçalho de resposta `x-cc-gateway-version` em `/managed/settings`, e o que mudou recentemente375* **Problema no gateway**: o stderr do gateway para a janela relevante, seu `gateway.yaml` com segredos removidos, a versão do gateway, mostrada na página inicial em `/` e no cabeçalho de resposta `x-cc-gateway-version` em `/managed/settings`, e o que mudou recentemente

376* **Login issue**: o desenvolvedor executa `claude --debug-file ./claude-debug.txt`, reproduz, e envia esse arquivo mais o log de auditoria do gateway para a mesma janela376* **Problema de login**: o desenvolvedor executa `claude --debug-file ./claude-debug.txt`, reproduz, e envia esse arquivo mais o log de auditoria do gateway para a mesma janela

377* **Inference issue**: o modelo solicitado, os upstreams configurados, e o log de auditoria do gateway para a solicitação, que registra qual upstream a serviu e o status da resposta377* **Problema de inferência**: o modelo solicitado, os upstreams configurados, e o log de auditoria do gateway para a requisição, que registra qual upstream a serviu e o status da resposta

378 378 

379O stderr do gateway inclui o fluxo de eventos de auditoria, o log de auditoria registra identidades de desenvolvedores, e o arquivo de debug registra saída de hook e servidor MCP da máquina do desenvolvedor. Revise e remova essas informações antes de postar em uma issue pública.379O stderr do gateway inclui o fluxo de eventos de auditoria, o log de auditoria registra identidades de desenvolvedores, e o arquivo de debug registra saída de hook e servidor MCP da máquina do desenvolvedor. Revise e remova essas informações antes de postar em uma issue pública.

380 380 

381| Symptom | Cause | Fix |381| Sintoma | Causa | Correção |

382| - | - | - |382| - | - | - |

383| A `/login` de um desenvolvedor mostra o seletor de conta padrão em vez da tela **Cloud gateway** | `forceLoginMethod` ou `forceLoginGatewayUrl` não está definido nas configurações gerenciadas nessa máquina | Implante o [arquivo de configurações gerenciadas](/docs/pt/claude-apps-gateway#set-the-gateway-url) no dispositivo; `/login` lê a URL do gateway de lá |383| O `/login` de um desenvolvedor mostra o seletor de conta padrão em vez da tela **Cloud gateway** | `forceLoginMethod` ou `forceLoginGatewayUrl` não está definido nas configurações gerenciadas nessa máquina | Implante o [arquivo de configurações gerenciadas](/docs/pt/claude-apps-gateway#set-the-gateway-url) no dispositivo; `/login` lê a URL do gateway de lá |

384| As solicitações de um desenvolvedor falham com `Not signed in to the Cloud gateway — run /login.` | As configurações gerenciadas da máquina definem `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, e a sessão não tem login no gateway. Um login claude.ai restante não satisfaz o requisito. | Peça ao desenvolvedor para executar `/login` e completar o login no gateway. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |384| As requisições de um desenvolvedor falham com `Not signed in to the Cloud gateway — run /login.` | As configurações gerenciadas da máquina definem `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, e a sessão não tem login no gateway. Um login claude.ai restante não satisfaz o requisito. | Peça ao desenvolvedor para executar `/login` e completar o login no gateway. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

385| Claude Desktop relata que sua configuração de bootstrap não pôde ser buscada | `/user/bootstrap` retornou 404: a política que corresponde ao usuário não carrega uma chave `desktop`, ou nenhuma política correspondeu. O log de auditoria do gateway registra cada rejeição como `desktop_bootstrap.denied` com o motivo. | Adicione um bloco `desktop` à política que corresponde ao usuário, ou à camada base `match: {}`; um `desktop: {}` vazio é suficiente. Veja [Claude Desktop overlay](/docs/pt/claude-apps-gateway-config#claude-desktop-overlay). |385| Claude Desktop relata que sua configuração de bootstrap não pôde ser buscada | `/user/bootstrap` retornou 404: a política que corresponde ao usuário não carrega uma chave `desktop`, ou nenhuma política correspondeu. O log de auditoria do gateway registra cada rejeição como `desktop_bootstrap.denied` com o motivo. | Adicione um bloco `desktop` à política que corresponde ao usuário, ou à camada base `match: {}`; um `desktop: {}` vazio é suficiente. Veja [Claude Desktop overlay](/docs/pt/claude-apps-gateway-config#claude-desktop-overlay). |

386| A inicialização mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | A compilação Claude Code instalada é anterior ao suporte de gateway | Peça ao desenvolvedor para atualizar Claude Code para uma versão que inclua suporte de Cloud gateway |386| A inicialização mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | O build do Claude Code instalado é anterior ao suporte de gateway | Peça ao desenvolvedor para atualizar Claude Code para uma versão que inclua suporte de Cloud gateway |

387| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Uma sessão que seleciona um provedor de nuvem com `CLAUDE_CODE_USE_*` então inicia sem login; para todas as outras sessões, peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |387| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Uma sessão que seleciona um provedor de nuvem com `CLAUDE_CODE_USE_*` então inicia sem login; para todas as outras sessões, peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

388| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à solicitação `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |388| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à requisição `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |

389| CLI `/login`: `The gateway is limiting sign-in attempts right now`, ou `Request failed with status code 429` em versões mais antigas. A página `/device` pode mostrar `Too many attempts` para desenvolvedores que não tentaram antes | O limite de taxa de login por IP foi atingido. Ou `listen.trusted_proxies` não cobre o balanceador de carga, então cada desenvolvedor compartilha seu endereço, ou muitos desenvolvedores compartilham um endereço de saída NAT ou VPN. Eventos de auditoria com `result: rate_limited` mostram o mesmo um ou poucos valores `client_ip`. | Defina `listen.trusted_proxies` para os intervalos de origem do balanceador de carga primeiro, depois aumente `rate_limits` se desenvolvedores ainda compartilharem endereços. Veja [Large rollouts](#large-rollouts). |389| CLI `/login`: `The gateway is limiting sign-in attempts right now`, ou `Request failed with status code 429` em versões mais antigas. A página `/device` pode mostrar `Too many attempts` para desenvolvedores que não tentaram antes | O rate limit de login por IP foi atingido. Ou `listen.trusted_proxies` não cobre o balanceador de carga, então cada desenvolvedor compartilha seu endereço, ou muitos desenvolvedores compartilham um endereço de saída NAT ou VPN. Eventos de auditoria com `result: rate_limited` mostram o mesmo um ou poucos valores `client_ip`. | Defina `listen.trusted_proxies` para os intervalos de origem do balanceador de carga primeiro, depois aumente `rate_limits` se desenvolvedores ainda compartilharem endereços. Veja [Large rollouts](#large-rollouts). |

390| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome do host do gateway resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que todos sejam privados. Uma causa comum é um nome dual-stack onde uma família resolve para um endereço público, incluindo balanceadores de carga dual-stack internos da AWS, que retornam endereços AAAA de intervalo público. | Faça com que o nome do gateway resolva apenas para endereços privados nas máquinas dos desenvolvedores. Para um nome dual-stack, remova o registro de intervalo público ou sirva um nome DNS separado apenas para interno. Veja o [pré-requisito de rede privada](/docs/pt/claude-apps-gateway#prerequisites). Se o endereço é espaço público que sua organização possui e usa internamente, [declare esse bloco](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) em vez disso. |390| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome do host do gateway resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que todos sejam privados. Uma causa comum é um nome dual-stack onde uma família resolve para um endereço público, incluindo balanceadores de carga dual-stack internos da AWS, que retornam endereços AAAA de intervalo público. | Faça com que o nome do gateway resolva apenas para endereços privados nas máquinas dos desenvolvedores. Para um nome dual-stack, remova o registro de intervalo público ou sirva um nome DNS separado apenas para interno. Veja o [pré-requisito de rede privada](/docs/pt/claude-apps-gateway#prerequisites). Se o endereço é espaço público que sua organização possui e usa internamente, [declare esse bloco](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) em vez disso. |

391| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome do host do proxy resolve para um endereço público. Um proxy cujo host resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome do host resolve para endereços privados. A mensagem nomeia a entrada exata `NO_PROXY` a adicionar |391| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome do host do proxy resolve para um endereço público. Um proxy cujo host resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome do host resolve para endereços privados. A mensagem nomeia a entrada exata `NO_PROXY` a adicionar |

392| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | O gateway está em um bloco declarado em [`gatewayInternalNetworks`](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a máquina do desenvolvedor o alcançou de um endereço fora desse bloco: um pool de endereços VPN, um segmento NAT de container ou WSL2, ou uma rede que não é sua | Peça ao desenvolvedor para executar `/login` do SO host em sua rede. Se o endereço mostrado também é espaço público da sua organização, substitua a entrada do gateway por um bloco que cubra ambos, até `/8`; uma segunda entrada sobreposta é recusada |392| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | O gateway está em um bloco declarado em [`gatewayInternalNetworks`](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a máquina do desenvolvedor o alcançou de um endereço fora desse bloco: um pool de endereços VPN, um segmento NAT de container ou WSL2, ou uma rede que não é sua | Peça ao desenvolvedor para executar `/login` do SO host em sua rede. Se o endereço mostrado também é espaço público da sua organização, substitua a entrada do gateway por um bloco que cubra ambos, até `/8`; uma segunda entrada sobreposta é recusada |


395| CLI `/login`: uma mensagem começando `gatewayInternalNetworks in managed settings` | O valor quebra uma das [regras de validação](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a mensagem nomeia qual. Até você corrigir, Claude Code recusa cada novo `/login` de gateway na máquina, gateways em endereços privados inclusos; logins existentes continuam funcionando | Na fonte de configurações gerenciadas que você implanta, corrija a entrada que a mensagem nomeia, depois execute `/login` novamente |395| CLI `/login`: uma mensagem começando `gatewayInternalNetworks in managed settings` | O valor quebra uma das [regras de validação](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a mensagem nomeia qual. Até você corrigir, Claude Code recusa cada novo `/login` de gateway na máquina, gateways em endereços privados inclusos; logins existentes continuam funcionando | Na fonte de configurações gerenciadas que você implanta, corrija a entrada que a mensagem nomeia, depois execute `/login` novamente |

396| CLI `/login`: `Could not resolve the configured HTTP proxy` | O nome do host em `HTTPS_PROXY` ou `HTTP_PROXY` não resolve da máquina do desenvolvedor, tipicamente porque não está conectado à rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN e tentar novamente, ou corrija a URL do proxy |396| CLI `/login`: `Could not resolve the configured HTTP proxy` | O nome do host em `HTTPS_PROXY` ou `HTTP_PROXY` não resolve da máquina do desenvolvedor, tipicamente porque não está conectado à rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN e tentar novamente, ou corrija a URL do proxy |

397| CLI `/login`: `Could not resolve gateway host <host>` | A máquina não consegue resolver o nome DNS interno do gateway, tipicamente porque não está na rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN, depois execute `/login` novamente |397| CLI `/login`: `Could not resolve gateway host <host>` | A máquina não consegue resolver o nome DNS interno do gateway, tipicamente porque não está na rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN, depois execute `/login` novamente |

398| Boot exits with a config validation error naming `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um container descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |398| A inicialização sai com um erro de validação de configuração que nomeia `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um container descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

399| Boot exits: `requires the native binary` | Executando sob Node em vez do binário nativo | Instale Claude Code com um dos [métodos de instalação autônomos](/docs/pt/setup) |399| A inicialização sai: `requires the native binary` | Executando sob Node em vez do binário nativo | Instale Claude Code com um dos [métodos de instalação autônomos](/docs/pt/setup) |

400| Boot exits with an OIDC discovery error after `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é acessível do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. Se o pod alcança o IdP apenas através de um proxy direto, defina [`oidc.use_proxy: true`](/docs/pt/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); em versões anteriores a v2.1.227, dê ao pod uma rota direta para cada um dos endpoints do IdP em vez disso. Se o pod também não conseguir resolver o nome do host do IdP, ou o proxy recusar `CONNECT` para um endereço IP, veja [Proxy-only egress](/docs/pt/claude-apps-gateway-config#proxy-only-egress), que requer v2.1.277 ou posterior. |400| A inicialização sai com um erro de descoberta OIDC após `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é acessível do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. Se o pod alcança o IdP apenas através de um forward proxy, defina [`oidc.use_proxy: true`](/docs/pt/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); em versões anteriores a v2.1.227, dê ao pod uma rota direta para cada um dos endpoints do IdP em vez disso. Se o pod também não conseguir resolver o nome do host do IdP, ou o proxy recusar `CONNECT` para um endereço IP, veja [Proxy-only egress](/docs/pt/claude-apps-gateway-config#proxy-only-egress), que requer v2.1.277 ou posterior. |

401| Boot exits with a Postgres permission error | O papel do banco de dados carece de direitos DDL em seu schema | Conceda ao papel `CREATE` no schema do gateway para que possa criar e alterar suas tabelas na inicialização |401| A inicialização sai com um erro de permissão do Postgres | O papel do banco de dados carece de direitos DDL em seu esquema | Conceda ao papel `CREATE` no esquema do gateway para que possa criar e alterar suas tabelas na inicialização |

402| Log: `could not connect to Postgres at boot, attempt 1 of 3` | O banco de dados não estava acessível quando o gateway iniciou, por exemplo em uma instância fria cuja rede ainda está se iniciando | Se o gateway então terminar de inicializar, nenhuma ação é necessária. Quando o banco de dados não está acessível, o gateway tenta a conexão três vezes, dois segundos de intervalo, antes de sair. Se sair com `could not connect to Postgres`, verifique `store.postgres_url` e o caminho de rede para o banco de dados. Se as tentativas expirarem em vez de serem recusadas, aumente [`store.connect_timeout_seconds`](/docs/pt/claude-apps-gateway-config#store) para dar a cada uma mais tempo. |402| Log: `could not connect to Postgres at boot, attempt 1 of 3` | O banco de dados não estava acessível quando o gateway iniciou, por exemplo em uma instância fria cuja rede ainda está se iniciando | Se o gateway então terminar de inicializar, nenhuma ação é necessária. Quando o banco de dados não está acessível, o gateway tenta a conexão três vezes, dois segundos de intervalo, antes de sair. Se sair com `could not connect to Postgres`, verifique `store.postgres_url` e o caminho de rede para o banco de dados. Se as tentativas atingirem o timeout em vez de serem recusadas, aumente [`store.connect_timeout_seconds`](/docs/pt/claude-apps-gateway-config#store) para dar a cada uma mais tempo. |

403| `/oauth/callback` shows "Sign-in could not be completed" | Domínio de email rejeitado, validação de id\_token falhou, ou `email_verified` é explicitamente `false`, que o gateway sempre rejeita sem override | Verifique `allowed_email_domains` e que o IdP retorna uma reivindicação `email` verificada. Para `email_verified: false`, corrija a verificação do lado do IdP. Se seu IdP emite email sob um nome de reivindicação diferente, defina `oidc.email_claim`. |403| `/oauth/callback` mostra "Sign-in could not be completed" | Domínio de email rejeitado, validação de id\_token falhou, ou `email_verified` é explicitamente `false`, que o gateway sempre rejeita sem possibilidade de sobrescrever | Verifique `allowed_email_domains` e que o IdP retorna uma reivindicação `email` verificada. Para `email_verified: false`, corrija a verificação do lado do IdP. Se seu IdP emite email sob um nome de reivindicação diferente, defina `oidc.email_claim`. |

404| Log: `token exchange failed request_id=<id>: id_token missing email claim` | O IdP não está incluindo `email` no id\_token por padrão. Essa rejeição dispara apenas quando `allowed_email_domains` está definido; sem ele, um email ausente cria uma sessão sem email | Configure o IdP para emitir `email` no id\_token. Okta: adicione `email` às reivindicações de token de ID de um servidor de autorização personalizado. Entra: adicione `email` como uma reivindicação opcional no registro do aplicativo. PingFederate: ative uma Política OpenID Connect que emita `email`. Se o IdP serve `email` do endpoint userinfo mas não incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |404| Log: `token exchange failed request_id=<id>: id_token missing email claim` | O IdP não está incluindo `email` no id\_token por padrão. Essa rejeição dispara apenas quando `allowed_email_domains` está definido; sem ele, um email ausente cria uma sessão sem email | Configure o IdP para emitir `email` no id\_token. Okta: adicione `email` às reivindicações de token de ID de um servidor de autorização personalizado. Entra: adicione `email` como uma reivindicação opcional no registro do aplicativo. PingFederate: ative uma Política OpenID Connect que emita `email`. Se o IdP serve `email` do endpoint userinfo mas não o incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |

405| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e desenvolvedores veem `Cloud gateway session expired` a cada `session.ttl_hours` | O IdP aceitou o token de atualização mas não retornou id\_token com ele, então o gateway perguntou ao endpoint userinfo do IdP pelas reivindicações do usuário. O IdP rejeitou o token de acesso atualizado lá. O gateway responde `temporarily_unavailable`, então Claude Code mantém o token de atualização mas não consegue renovar a sessão. Versões do gateway anteriores a v2.1.260 registram a mesma linha sem o detalhe `(at …)`. | Defina [`oidc.scope_on_refresh: true`](/docs/pt/claude-apps-gateway-config#oidc), disponível no gateway v2.1.260 ou posterior, para que a solicitação de atualização peça por `openid` novamente. Alguns IdPs, como Okta, retornam um id\_token na atualização apenas quando solicitado. No PingFederate, ative **Return ID Token On Refresh Grant** sob **Applications > OAuth > OpenID Connect Policy Management** em vez disso. A chave não muda o comportamento do PingFederate. Para outros IdPs que ainda o omitem, verifique se o endpoint userinfo aceita tokens de acesso emitidos por uma atualização. Como uma solução temporária, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session). Veja [Identity provider setup](#identity-provider-setup) para o tradeoff de desprovisionamento. |405| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e desenvolvedores veem `Cloud gateway session expired` a cada `session.ttl_hours` | O IdP aceitou o token de atualização mas não retornou id\_token com ele, então o gateway perguntou ao endpoint userinfo do IdP pelas reivindicações do usuário. O IdP rejeitou o token de acesso atualizado lá. O gateway responde `temporarily_unavailable`, então Claude Code mantém o token de atualização mas não consegue renovar a sessão. Versões do gateway anteriores a v2.1.260 registram a mesma linha sem o detalhe `(at …)`. | Defina [`oidc.scope_on_refresh: true`](/docs/pt/claude-apps-gateway-config#oidc), disponível no gateway v2.1.260 ou posterior, para que a requisição de atualização peça por `openid` novamente. Alguns IdPs, como Okta, retornam um id\_token na atualização apenas quando solicitado. No PingFederate, ative **Return ID Token On Refresh Grant** sob **Applications > OAuth > OpenID Connect Policy Management** em vez disso. A chave não muda o comportamento do PingFederate. Para outros IdPs que ainda o omitem, verifique se o endpoint userinfo aceita tokens de acesso emitidos por uma atualização. Como uma solução temporária, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session). Veja [Identity provider setup](#identity-provider-setup) para o tradeoff de desprovisionamento. |

406| Every Amazon Bedrock request returns 502; log shows `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a solicitação de metadados de instância de dentro do container. Boot e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira solicitação, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada container na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do container ECS e evitam a mudança inteiramente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |406| Um desenvolvedor faz login, e então cada requisição dessa sessão falha com um erro `431` | O token de sessão no cabeçalho `Authorization` de cada requisição lista os grupos do IdP do desenvolvedor, então para um desenvolvedor em muitos grupos os cabeçalhos podem totalizar mais do que o gateway aceita | Veja [Cabeçalhos de requisição grandes demais após o login](#request-headers-too-large-after-sign-in) para saber qual limite se aplica e o que alterar |

407| At peak load, responses are slow to start or appear to hang, or fail with a 502 `all upstreams failed` while the upstream is healthy | Uma réplica tem mais solicitações abertas do que envia upstream de uma vez, então as solicitações extras esperam dentro do gateway. Em um upstream `provider: anthropic`, uma solicitação que espera mais tempo que `timeouts.upstream_ttfb_ms` desiste desse upstream, que produz o 502 quando nenhum upstream posterior a serve. O log mostra um aviso que contém `client requests are open`. | Adicione réplicas, ou aumente o limite em cada réplica. Veja [Concurrent upstream requests](#concurrent-upstream-requests). |407| Toda requisição ao Amazon Bedrock retorna 502; o log mostra `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a requisição de metadados de instância de dentro do container. A inicialização e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira requisição, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada container na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do container ECS e evitam a mudança inteiramente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |

408| IdP error: unknown or unsupported scope | O IdP rejeita escopos que não reconhece | Defina `oidc.scopes` para exatamente a lista que seu IdP aceita; deve incluir `openid`. O padrão é `openid profile email offline_access`. |408| No pico de carga, as respostas demoram a começar ou parecem travar, ou falham com um 502 `all upstreams failed` enquanto o upstream está saudável | Uma réplica tem mais requisições abertas do que envia upstream de uma vez, então as requisições extras esperam dentro do gateway. Em um upstream `provider: anthropic`, uma requisição que espera mais tempo que `timeouts.upstream_ttfb_ms` desiste desse upstream, o que produz o 502 quando nenhum upstream posterior a serve. O log mostra um aviso que contém `client requests are open`. | Adicione réplicas, ou aumente o limite em cada réplica. Veja [Concurrent upstream requests](#concurrent-upstream-requests). |

409| Sessions don't silently renew after setting `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |409| Erro do IdP: escopo desconhecido ou não suportado | O IdP rejeita escopos que não reconhece | Defina `oidc.scopes` para exatamente a lista que seu IdP aceita; deve incluir `openid`. O padrão é `openid profile email offline_access`. |

410| Browser shows "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou proxied | Abra o link de verificação diretamente |410| As sessões não são renovadas silenciosamente após definir `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |

411| Chrome blocks the Approve button with "Refused to send form data … violates … Content Security Policy directive: form-action", but the same page works in Safari or Firefox | Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Seu IdP redireciona para um segundo host que não está na lista de permissões. | Adicione cada origem adicional na cadeia de redirecionamento a `oidc.form_action_origins`. Abra Chrome DevTools → Console na página Approve para ver qual origem foi bloqueada. |411| O navegador mostra "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou acessadas via proxy | Abra o link de verificação diretamente |

412| Sign-in completes at the IdP but the callback fails, with a CSP error in Chrome or "this sign-in link has expired" in Safari | O IdP retornou o código via `response_mode=form_post`, que o envia automaticamente entre origens via POST para `/oauth/callback`. Chrome bloqueia isso sob uma CSP rigorosa; Safari permite o envio mas o callback lê apenas a string de consulta. | Certifique-se de que seu IdP honra `response_mode=query`, que o gateway solicita explicitamente para que o callback seja um redirecionamento simples |412| Chrome bloqueia o botão Approve com "Refused to send form data … violates … Content Security Policy directive: form-action", mas a mesma página funciona no Safari ou Firefox | Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Seu IdP redireciona para um segundo host que não está na lista de permissões. | Adicione cada origem adicional na cadeia de redirecionamento a `oidc.form_action_origins`. Abra Chrome DevTools → Console na página Approve para ver qual origem foi bloqueada. |

413| Login works locally but fails behind an ALB | `public_url` ainda nomeia a origem `http://` local ou interna, então o IdP obtém o `redirect_uri` errado | Defina `listen.public_url` para a origem `https://` externa e registre `<public_url>/oauth/callback` com o IdP |413| O login é concluído no IdP mas o callback falha, com um erro de CSP no Chrome ou "this sign-in link has expired" no Safari | O IdP retornou o código via `response_mode=form_post`, que o envia automaticamente entre origens via POST para `/oauth/callback`. Chrome bloqueia isso sob uma CSP rigorosa; Safari permite o envio mas o callback lê apenas a string de consulta. | Certifique-se de que seu IdP honra `response_mode=query`, que o gateway solicita explicitamente para que o callback seja um redirecionamento simples |

414| Developer sees the trust prompt repeatedly | TLS cert is rotating per replica or per request | Use a stable cert at the ingress, or terminate TLS once and run replicas over plain HTTP internally |414| O login funciona localmente mas falha atrás de um ALB | `public_url` ainda nomeia a origem `http://` local ou interna, então o IdP obtém o `redirect_uri` errado | Defina `listen.public_url` para a origem `https://` externa e registre `<public_url>/oauth/callback` com o IdP |

415| CLI `/login`: "Could not verify the gateway's TLS certificate" or `SELF_SIGNED_CERT_IN_CHAIN` | A cadeia TLS do gateway é assinada por uma CA privada não no armazenamento de confiança do host CLI | Claude Code lê o armazenamento de confiança do SO por padrão no binário nativo e no Node 22.15 ou posterior; [`CLAUDE_CODE_CERT_STORE`](/docs/pt/network-config#ca-certificate-store) controla esse comportamento. Se a CA está instalada no armazenamento de confiança do SO, certifique-se de que os desenvolvedores estão em um runtime atual. Caso contrário, defina `NODE_EXTRA_CA_CERTS` para o PEM do certificado CA antes de iniciar. O prompt de impressão digital da primeira conexão ainda se aplica. |415| O desenvolvedor vê o prompt de confiança repetidamente | O certificado TLS está alternando por réplica ou por requisição | Use um certificado estável no ingress, ou termine o TLS uma vez e execute as réplicas sobre HTTP simples internamente |

416| CLI `/login` completes the browser sign-in, then the session ends with `Cloud gateway sign-in was not completed` and a TLS certificate mismatch | Na primeira solicitação após o login, o gateway apresentou um certificado que não corresponde à impressão digital que Claude Code fixou, então Claude Code não manteve nenhuma credencial de gateway. As causas usuais são réplicas atrás de um endereço que servem certificados diferentes, ou algo no caminho de rede que intercepta TLS. | Sirva um certificado para o nome do host, por exemplo terminando TLS uma vez no ingress, depois peça ao desenvolvedor para executar `/login` novamente. Se esse certificado diferir do fixado, Claude Code mostra o [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers) novamente com um aviso de que o certificado mudou. |416| CLI `/login`: "Could not verify the gateway's TLS certificate" ou `SELF_SIGNED_CERT_IN_CHAIN` | A cadeia TLS do gateway é assinada por uma CA privada que não está no armazenamento de confiança do host da CLI | Claude Code lê o armazenamento de confiança do SO por padrão no binário nativo e no Node 22.15 ou posterior; [`CLAUDE_CODE_CERT_STORE`](/docs/pt/network-config#ca-certificate-store) controla esse comportamento. Se a CA está instalada no armazenamento de confiança do SO, certifique-se de que os desenvolvedores estão em um runtime atual. Caso contrário, defina `NODE_EXTRA_CA_CERTS` para o PEM do certificado CA antes de iniciar. O prompt de impressão digital da primeira conexão ainda se aplica. |

417| CLI `/login` stops with `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | Uma solicitação de login alcançou um servidor cujo certificado não corresponde ao que o desenvolvedor aceitou quando `/login` começou: réplicas atrás de um endereço servindo certificados diferentes, interceptação TLS no caminho, ou uma rotação de certificado enquanto o login estava em andamento. | Sirva um certificado para o nome do host, depois peça ao desenvolvedor para iniciar o login novamente e revisar o novo certificado no [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers). |417| CLI `/login` conclui o login no navegador, e então a sessão termina com `Cloud gateway sign-in was not completed` e uma incompatibilidade de certificado TLS | Na primeira requisição após o login, o gateway apresentou um certificado que não corresponde à impressão digital que Claude Code fixou, então Claude Code não manteve nenhuma credencial de gateway. As causas usuais são réplicas atrás de um endereço que servem certificados diferentes, ou algo no caminho de rede que intercepta TLS. | Sirva um certificado para o nome do host, por exemplo terminando TLS uma vez no ingress, depois peça ao desenvolvedor para executar `/login` novamente. Se esse certificado diferir do fixado, Claude Code mostra o [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers) novamente com um aviso de que o certificado mudou. |

418| CLI `/login` para com `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | Uma requisição de login alcançou um servidor cujo certificado não corresponde ao que o desenvolvedor aceitou quando `/login` começou: réplicas atrás de um endereço servindo certificados diferentes, interceptação TLS no caminho, ou uma rotação de certificado enquanto o login estava em andamento. | Sirva um certificado para o nome do host, depois peça ao desenvolvedor para iniciar o login novamente e revisar o novo certificado no [prompt de confiança](/docs/pt/claude-apps-gateway#connect-developers). |

418 419 

419A mensagem `Cloud gateway sign-in was not completed` nomeia o nome do host do gateway. Quando Claude Code tem tanto a impressão digital fixada quanto a apresentada, a mensagem também mostra os primeiros 16 caracteres de cada uma.420A mensagem `Cloud gateway sign-in was not completed` nomeia o nome do host do gateway. Quando Claude Code tem tanto a impressão digital fixada quanto a apresentada, a mensagem também mostra os primeiros 16 caracteres de cada uma.

420 421 

421Se Claude Code relata `couldn't load your organization's managed settings` após um login no gateway, Claude Code nomeia o motivo, reinicia no lugar, e retoma a conversa. Se Claude Code não conseguir reiniciar, por exemplo em uma sessão em segundo plano, Claude Code encerra a sessão e mantém o login.422Se Claude Code relata `couldn't load your organization's managed settings` após um login no gateway, Claude Code nomeia o motivo, reinicia no lugar, e retoma a conversa. Se Claude Code não conseguir reiniciar, por exemplo em uma sessão em segundo plano, Claude Code encerra a sessão e mantém o login.

422 423 

424<h3 id="request-headers-too-large-after-sign-in">

425 Cabeçalhos de requisição grandes demais após o login

426</h3>

427 

428As requisições de um desenvolvedor podem falhar com um erro `431` após o login quando o desenvolvedor pertence a muitos grupos do IdP.

429 

430O gateway responde `431` quando os cabeçalhos de uma requisição totalizam mais de 256 KiB, ou mais de [`limits.max_request_header_bytes`](/docs/pt/claude-apps-gateway-config#http-tuning) se você o definir. Ele não escreve nenhuma linha de log nem evento de auditoria para essas requisições. Versões do gateway anteriores a v2.1.284 respondem `431` acima de 16 KiB.

431 

432O que alterar depende da versão e da configuração do seu gateway:

433 

434* **Gateway anterior a v2.1.284**: atualize o gateway

435* **`limits.max_request_header_bytes` definido**: aumente o valor ou remova a chave

436* **Nenhum dos casos se aplica, ou o `431` continua depois**: faça com que seu IdP emita menos grupos. [Identity provider setup](#identity-provider-setup) explica como Okta, Microsoft Entra ID e Google Workspace fornecem grupos

437 

423<h2 id="related">438<h2 id="related">

424 Relacionado439 Relacionado

425</h2>440</h2>

Details

1598 1598 

1599`<project>` é o caminho do seu diretório de trabalho com cada caractere que não seja letra ou dígito substituído por `-`, como `-Users-you-my-project`. Se você definir [`CLAUDE_CODE_TMPDIR`](/docs/pt/env-vars), a árvore se move sob esse diretório em vez disso. Hooks recebem o caminho da sessão atual como [`scratchpad_dir`](/docs/pt/hooks#common-input-fields).1599`<project>` é o caminho do seu diretório de trabalho com cada caractere que não seja letra ou dígito substituído por `-`, como `-Users-you-my-project`. Se você definir [`CLAUDE_CODE_TMPDIR`](/docs/pt/env-vars), a árvore se move sob esse diretório em vez disso. Hooks recebem o caminho da sessão atual como [`scratchpad_dir`](/docs/pt/hooks#common-input-fields).

1600 1600 

1601Arquivos do bloco de notas duram enquanto a transcrição da sessão: a [varredura de retenção](#cleaned-up-automatically) deleta o diretório quando deleta a transcrição, e [`claude project purge`](#clear-local-data) não toca no diretório temporário. Como o diretório fica sob a localização temporária do sistema, seu sistema operacional também pode limpá-lo, como na reinicialização. Para manter algo que Claude escreveu lá, peça a Claude para movê-lo para seu projeto.1601Arquivos do bloco de notas duram enquanto a transcrição da sessão: a [varredura de retenção](#cleaned-up-automatically) deleta o diretório quando deleta a transcrição, e [`claude purge`](#clear-local-data) não toca no diretório temporário. Como o diretório fica sob a localização temporária do sistema, seu sistema operacional também pode limpá-lo, como na reinicialização. Para manter algo que Claude escreveu lá, peça a Claude para movê-lo para seu projeto.

1602 1602 

1603Uma sessão tem um bloco de notas apenas quando todos estes se aplicam:1603Uma sessão tem um bloco de notas apenas quando todos estes se aplicam:

1604 1604 


1645 Limpar dados locais1645 Limpar dados locais

1646</h3>1646</h3>

1647 1647 

1648Execute `claude project purge` para deletar o estado que Claude Code mantém para um projeto. Deleta:1648Execute `claude purge` para deletar o estado que Claude Code mantém para um projeto. Deleta:

1649 1649 

1650* Transcrições e memória automática sob `projects/`1650* Transcrições e memória automática sob `projects/`

1651* Entradas de `tasks/`, `debug/` e `file-history/` por sessão1651* Entradas de `tasks/`, `debug/` e `file-history/` por sessão


1656 1656 

1657O comando imprime o plano completo de exclusão e pede confirmação antes de remover qualquer coisa.1657O comando imprime o plano completo de exclusão e pede confirmação antes de remover qualquer coisa.

1658 1658 

1659Antes da v2.1.288, o comando era `claude project purge`.

1660 

1659Os exemplos abaixo usam `~/work/my-repo` como um espaço reservado. Substitua-o pelo caminho para seu projeto. Se nenhum estado corresponder ao caminho, o comando imprime um erro e sai com status 1.1661Os exemplos abaixo usam `~/work/my-repo` como um espaço reservado. Substitua-o pelo caminho para seu projeto. Se nenhum estado corresponder ao caminho, o comando imprime um erro e sai com status 1.

1660 1662 

1661Visualize o plano sem deletar nada:1663Visualize o plano sem deletar nada:

1662 1664 

1663```bash theme={null}1665```bash theme={null}

1664claude project purge ~/work/my-repo --dry-run1666claude purge ~/work/my-repo --dry-run

1665```1667```

1666 1668 

1667O plano lista cada item correspondente e por que está incluído:1669O plano lista cada item correspondente e por que está incluído:


1684Delete com um único prompt de confirmação:1686Delete com um único prompt de confirmação:

1685 1687 

1686```bash theme={null}1688```bash theme={null}

1687claude project purge ~/work/my-repo1689claude purge ~/work/my-repo

1688```1690```

1689 1691 

1690O comando imprime o mesmo plano, depois pergunta `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` e deleta apenas se você responder `y`.1692O comando imprime o mesmo plano, depois pergunta `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` e deleta apenas se você responder `y`.


1694Pule o prompt de confirmação para uso em scripts:1696Pule o prompt de confirmação para uso em scripts:

1695 1697 

1696```bash theme={null}1698```bash theme={null}

1697claude project purge ~/work/my-repo --yes1699claude purge ~/work/my-repo --yes

1698```1700```

1699 1701 

1700Passe `--all` em vez de um caminho para limpar o estado de cada projeto de uma vez, o que deleta `history.jsonl` completamente em vez de filtrá-lo. Passe `-i` para percorrer o plano de exclusão um item por vez.1702Passe `--all` em vez de um caminho para limpar o estado de cada projeto de uma vez, o que deleta `history.jsonl` completamente em vez de filtrá-lo. Passe `-i` para percorrer o plano de exclusão um item por vez.

Details

500 Limitações500 Limitações

501</h2>501</h2>

502 502 

503* Projects estão disponíveis em claude.ai/code, no aplicativo desktop e no aplicativo móvel Claude, não no CLI do terminal, na extensão VS Code ou no plugin JetBrains, e não através de Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry. O comando [`claude project`](/docs/pt/cli-reference) do CLI, que gerencia o estado local do Claude Code para um diretório, não está relacionado.503* Projects estão disponíveis em claude.ai/code, no aplicativo desktop e no aplicativo móvel Claude, não no CLI do terminal, na extensão VS Code ou no plugin JetBrains, e não através de Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry.

504* As threads do projeto são [sessões em nuvem](/docs/pt/claude-code-on-the-web), ou sessões em sua própria máquina através de [Remote Control](/docs/pt/remote-control), com Anthropic como provedor de modelo em ambos os casos. [Segurança](/docs/pt/security) e [Uso de dados](/docs/pt/data-usage) cobrem como as sessões em nuvem são isoladas e o que é retido, e [Conexão e segurança](/docs/pt/remote-control#connection-and-security) cobre como uma thread em sua máquina se conecta e o que é armazenado.504* As threads do projeto são [sessões em nuvem](/docs/pt/claude-code-on-the-web), ou sessões em sua própria máquina através de [Remote Control](/docs/pt/remote-control), com Anthropic como provedor de modelo em ambos os casos. [Segurança](/docs/pt/security) e [Uso de dados](/docs/pt/data-usage) cobrem como as sessões em nuvem são isoladas e o que é retido, e [Conexão e segurança](/docs/pt/remote-control#connection-and-security) cobre como uma thread em sua máquina se conecta e o que é armazenado.

505* Você não pode adicionar uma sessão que iniciou você mesmo em sua máquina a um projeto. Um projeto alcança sua máquina apenas [executando uma thread lá através de Remote Control](#run-a-thread-on-your-own-computer), e essa seção lista o que é necessário.505* Você não pode adicionar uma sessão que iniciou você mesmo em sua máquina a um projeto. Um projeto alcança sua máquina apenas [executando uma thread lá através de Remote Control](#run-a-thread-on-your-own-computer), e essa seção lista o que é necessário.

506* O sandbox de uma thread em nuvem pausa entre voltas e retoma quando a thread continua. Se o sandbox não puder ser retomado, a thread continua de um clone fresco, então mudanças não confirmadas podem ser perdidas. Em tarefas longas, peça a Claude para confirmar e enviar trabalho em progresso.506* O sandbox de uma thread em nuvem pausa entre voltas e retoma quando a thread continua. Se o sandbox não puder ser retomado, a thread continua de um clone fresco, então mudanças não confirmadas podem ser perdidas. Em tarefas longas, peça a Claude para confirmar e enviar trabalho em progresso.

Details

40| `claude mcp login <name>` | Executar o fluxo OAuth de um servidor MCP configurado sem abrir o painel interativo `/mcp`. Funciona para servidores HTTP, SSE e conectores claude.ai. Adicione `--no-browser` via SSH para imprimir a URL de autorização em vez de abrir um navegador, depois cole a URL de redirecionamento de volta no prompt. Veja [Autenticar a partir da linha de comando](/docs/pt/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Executar o fluxo OAuth de um servidor MCP configurado sem abrir o painel interativo `/mcp`. Funciona para servidores HTTP, SSE e conectores claude.ai. Adicione `--no-browser` via SSH para imprimir a URL de autorização em vez de abrir um navegador, depois cole a URL de redirecionamento de volta no prompt. Veja [Autenticar a partir da linha de comando](/docs/pt/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Limpar credenciais OAuth armazenadas para um servidor MCP | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Limpar credenciais OAuth armazenadas para um servidor MCP | `claude mcp logout sentry` |

42| `claude plugin` | Gerenciar Claude Code [plugins](/docs/pt/plugins/overview). Alias: `claude plugins`. Veja [referência de plugin](/docs/pt/plugins/cli-reference#claude-plugin-commands) para subcomandos | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Gerenciar Claude Code [plugins](/docs/pt/plugins/overview). Alias: `claude plugins`. Veja [referência de plugin](/docs/pt/plugins/cli-reference#claude-plugin-commands) para subcomandos | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Excluir todo o estado local do Claude Code para um projeto: transcrições, listas de tarefas, logs de depuração, histórico de edição de arquivo, linhas de histórico de prompt e a entrada do projeto em `~/.claude.json`. Omita `[path]` para escolher em uma lista interativa. Flags: `--dry-run` para visualizar, `-y`/`--yes` para pular confirmação, `-i`/`--interactive` para confirmar cada item, `--all` para cada projeto. Veja [Limpar dados locais](/docs/pt/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude purge [path]` | Excluir todo o estado local do Claude Code para um projeto: transcrições, listas de tarefas, logs de depuração, histórico de edição de arquivo, linhas de histórico de prompt e a entrada do projeto em `~/.claude.json`. Omita `[path]` para escolher em uma lista interativa. Flags: `--dry-run` para visualizar, `-y`/`--yes` para pular confirmação, `-i`/`--interactive` para confirmar cada item, `--all` para cada projeto. Veja [Limpar dados locais](/docs/pt/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | Iniciar um servidor [Remote Control](/docs/pt/remote-control) para controlar Claude Code a partir de Claude.ai ou do aplicativo Claude. Executa em modo servidor (sem sessão interativa local). Veja [Flags de modo servidor](/docs/pt/remote-control#start-a-remote-control-session). Depois de parar o servidor, você pode trazer de volta as sessões que ele estava servindo. Veja [Retomar sessões após parar o servidor](/docs/pt/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Iniciar um servidor [Remote Control](/docs/pt/remote-control) para controlar Claude Code a partir de Claude.ai ou do aplicativo Claude. Executa em modo servidor (sem sessão interativa local). Veja [Flags de modo servidor](/docs/pt/remote-control#start-a-remote-control-session). Depois de parar o servidor, você pode trazer de volta as sessões que ele estava servindo. Veja [Retomar sessões após parar o servidor](/docs/pt/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Reiniciar uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell), em execução ou parada, com sua conversa intacta. Use `--all` para reiniciar cada sessão em execução, por exemplo, para pegar um binário Claude Code atualizado | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Reiniciar uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell), em execução ou parada, com sua conversa intacta. Use `--all` para reiniciar cada sessão em execução, por exemplo, para pegar um binário Claude Code atualizado | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | Remover uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell) da lista. Quando a remoção é [recusada por causa do worktree da sessão](/docs/pt/agent-view#what-deleting-a-session-removes) e um segundo `claude rm` pode resolvê-la, a recusa imprime a flag exata e o valor a passar: `--discard-unpushed <commit>@<worktree-id>` descarta um worktree que tem commits não enviados junto com esses commits, e `--force-remove-worktree <worktree-id>` exclui um diretório de worktree que o git ou o hook `WorktreeRemove` não conseguiu remover. `--discard-unpushed` requer Claude Code v2.1.260 ou posterior, e `--force-remove-worktree` requer v2.1.268 ou posterior. A transcrição da conversa permanece em sua máquina local, disponível através de `claude --resume` | `claude rm 7c5dcf5d` |46| `claude rm <id>` | Remover uma [sessão de fundo](/docs/pt/agent-view#manage-sessions-from-the-shell) da lista. Quando a remoção é [recusada por causa do worktree da sessão](/docs/pt/agent-view#what-deleting-a-session-removes) e um segundo `claude rm` pode resolvê-la, a recusa imprime a flag exata e o valor a passar: `--discard-unpushed <commit>@<worktree-id>` descarta um worktree que tem commits não enviados junto com esses commits, e `--force-remove-worktree <worktree-id>` exclui um diretório de worktree que o git ou o hook `WorktreeRemove` não conseguiu remover. `--discard-unpushed` requer Claude Code v2.1.260 ou posterior, e `--force-remove-worktree` requer v2.1.268 ou posterior. A transcrição da conversa permanece em sua máquina local, disponível através de `claude --resume` | `claude rm 7c5dcf5d` |


51 51 

52Se você digitar incorretamente um subcomando, Claude Code sugere a correspondência mais próxima e sai sem iniciar uma sessão. Por exemplo, `claude udpate` imprime `Did you mean claude update?`.52Se você digitar incorretamente um subcomando, Claude Code sugere a correspondência mais próxima e sai sem iniciar uma sessão. Por exemplo, `claude udpate` imprime `Did you mean claude update?`.

53 53 

54A partir da v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` executa o subcomando `daemon`. Versões anteriores tratavam `daemon <subcommand>` como o prompt para uma nova sessão interativa, então o subcomando nunca era executado quando a flag vinha primeiro, uma configuração comum quando `claude` é aliasado para incluir a flag. Apenas um `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` à frente roteia para `daemon` desta forma; qualquer outra flag à frente ainda inicia uma sessão interativa.54`claude --dangerously-skip-permissions daemon <subcommand>` executa o subcomando `daemon`, então o subcomando funciona quando `claude` é aliasado para incluir a flag. Apenas um `--dangerously-skip-permissions` ou `--allow-dangerously-skip-permissions` à frente roteia para `daemon` desta forma; com qualquer outra flag antes de `daemon`, o subcomando não é executado.

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 Sinalizadores CLI57 Sinalizadores CLI

Details

118 Adicione uma credencial118 Adicione uma credencial

119</h4>119</h4>

120 120 

121Você adiciona credenciais uma de cada vez a partir do editor de um ambiente que já existe. O diálogo para um novo ambiente não as oferece. Também não há edição. Para alterar os hosts ou o valor de uma credencial, delete-a e adicione-a novamente.121Você adiciona credenciais uma de cada vez e não pode editar uma credencial depois de adicioná-la. Para alterar os hosts ou o valor de uma credencial, delete-a e adicione-a novamente.

122 122 

123<Steps>123<Steps>

124 <Step title="Abra as credenciais de API do ambiente">124 <Step title="Abra as credenciais de API do ambiente">

125 [Abra o ambiente para edição](#configure-your-environment) em [claude.ai/code](https://claude.ai/code). No diálogo **Edit cloud environment**, encontre **API credentials** abaixo de **Environment variables**. Você vê as credenciais já no ambiente, cada uma com os hosts aos quais se aplica.125 [Abra o ambiente para edição](#configure-your-environment) em [claude.ai/code](https://claude.ai/code). No diálogo **Edit environment**, encontre a seção **API credentials**. Você vê as credenciais já no ambiente, cada uma com os hosts aos quais se aplica.

126 </Step>126 </Step>

127 127 

128 <Step title="Adicione a credencial">128 <Step title="Adicione a credencial">

code-review.md +1 −0

Details

344 * `--fix`: aplica as descobertas à sua árvore de trabalho após a revisão344 * `--fix`: aplica as descobertas à sua árvore de trabalho após a revisão

345 * `--comment`: publica as descobertas em um pull request do GitHub como comentários inline, ou em um merge request do GitLab como uma única nota345 * `--comment`: publica as descobertas em um pull request do GitHub como comentários inline, ou em um merge request do GitLab como uma única nota

346 * `--post`: em uma revisão `ultra` na nuvem de um pull request `github.com`, pré-seleciona a publicação das descobertas concluídas para o PR no diálogo de inicialização; veja [Publicar descobertas no pull request](/docs/pt/ultrareview#post-findings-to-the-pull-request). Requer Claude Code v2.1.227 ou posterior346 * `--post`: em uma revisão `ultra` na nuvem de um pull request `github.com`, pré-seleciona a publicação das descobertas concluídas para o PR no diálogo de inicialização; veja [Publicar descobertas no pull request](/docs/pt/ultrareview#post-findings-to-the-pull-request). Requer Claude Code v2.1.227 ou posterior

347 * `--max-findings <n>`, `--max-findings all` ou `--max-findings default`: relata até `n` descobertas, ou todas as descobertas com `all`, no lugar do limite usual da revisão. Revisões posteriores reutilizam o valor que você digitou até que você passe `--max-findings default`. Requer Claude Code v2.1.288 ou posterior

347 348 

348 Quando você passa `--comment` para um merge request do GitLab, Claude Code publica as descobertas através do CLI `glab` do GitLab. Requer Claude Code v2.1.257 ou posterior. Quando `glab` não está instalado, Claude imprime as descobertas no terminal.349 Quando você passa `--comment` para um merge request do GitLab, Claude Code publica as descobertas através do CLI `glab` do GitLab. Requer Claude Code v2.1.257 ou posterior. Quando `glab` não está instalado, Claude imprime as descobertas no terminal.

349 350 

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/pt/skills#bundled-skills).** Carregue material de referência de [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para a linguagem do seu projeto. Também ativa automaticamente quando seu código importa `anthropic` ou `@anthropic-ai/sdk`. Para o que cada subcomando faz e a versão que requer, consulte [Trabalhe em projetos Claude API](/docs/pt/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/pt/skills#bundled-skills).** Carregue material de referência de [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para a linguagem do seu projeto. Também ativa automaticamente quando seu código importa `anthropic` ou `@anthropic-ai/sdk`. Para o que cada subcomando faz e a versão que requer, consulte [Trabalhe em projetos Claude API](/docs/pt/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/pt/skills#bundled-skills).** Tenha Claude executar uma tarefa no seu navegador, como testar uma página, preencher um formulário ou ler logs do console, através de [Claude em Chrome](/docs/pt/chrome). Disponível quando a integração do Chrome está ativada para a sessão, por exemplo com `claude --chrome`, ou quando Claude Code pode oferecer [instalar a extensão](/docs/pt/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/pt/skills#bundled-skills).** Tenha Claude executar uma tarefa no seu navegador, como testar uma página, preencher um formulário ou ler logs do console, através de [Claude em Chrome](/docs/pt/chrome). Disponível quando a integração do Chrome está ativada para a sessão, por exemplo com `claude --chrome`, ou quando Claude Code pode oferecer [instalar a extensão](/docs/pt/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Inicie uma nova conversa com contexto vazio. Passe um nome para rotular a conversa anterior no seletor `/resume`. Para liberar contexto enquanto continua a mesma conversa, use `/compact` em vez disso. Retome a conversa anterior com `/resume`, ou, no mesmo processo Claude Code, restaure-a do [menu de retrocesso da entrada de sessão anterior](/docs/pt/checkpointing#rewind-past-a-cleared-conversation). Aliases: `/reset`, `/new` |74| `/clear [name]` | Inicie uma nova conversa com contexto vazio. Passe um nome para rotular a conversa anterior no seletor `/resume`. Para liberar contexto enquanto continua a mesma conversa, use `/compact` em vez disso. Retome a conversa anterior com `/resume`, ou, no mesmo processo Claude Code, restaure-a do [menu de retrocesso da entrada de sessão anterior](/docs/pt/checkpointing#rewind-past-a-cleared-conversation). Aliases: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/pt/skills#bundled-skills).** Revise o diff atual, ou um número de PR, branch ou caminho que você passa, para bugs de correção. Dependendo do seu modelo e nível de esforço, a revisão também cobre oportunidades de limpeza. Passe `--fix` para aplicar descobertas, `--comment` para postá-las no GitHub PR ou GitLab merge request, ou `ultra` para executar uma [revisão na nuvem](/docs/pt/ultrareview) profunda. Postar em um GitLab merge request requer Claude Code v2.1.257 ou posterior. Com `ultra` em um alvo de PR `github.com`, passe `--post` para pré-selecionar [postando as descobertas concluídas no PR](/docs/pt/ultrareview#post-findings-to-the-pull-request) no diálogo de inicialização; `--post` requer Claude Code v2.1.227 ou posterior. Consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para os níveis de esforço, direcionamento e como se relaciona com `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/pt/skills#bundled-skills).** Revise o diff atual, ou um número de PR, branch ou caminho que você passa, para bugs de correção. Dependendo do seu modelo e nível de esforço, a revisão também cobre oportunidades de limpeza. Passe `--fix` para aplicar descobertas, `--comment` para postá-las no GitHub PR ou GitLab merge request, ou `ultra` para executar uma [revisão na nuvem](/docs/pt/ultrareview) profunda. Postar em um GitLab merge request requer Claude Code v2.1.257 ou posterior. Com `ultra` em um alvo de PR `github.com`, passe `--post` para pré-selecionar [postando as descobertas concluídas no PR](/docs/pt/ultrareview#post-findings-to-the-pull-request) no diálogo de inicialização; `--post` requer Claude Code v2.1.227 ou posterior. Consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para os níveis de esforço, direcionamento e como se relaciona com `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Defina a cor da barra de prompt para a sessão atual. Cores disponíveis: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` para redefinir, ou execute sem argumento para escolher uma cor aleatória. Quando [Remote Control](/docs/pt/remote-control) está conectado, a cor sincroniza com claude.ai/code. Também disponível em modo não interativo (`-p`); requer Claude Code v2.1.205 ou posterior |76| `/color [color\|default]` | Defina a cor da barra de prompt para a sessão atual. Cores disponíveis: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` para redefinir, ou execute sem argumento para escolher uma cor aleatória. Quando [Remote Control](/docs/pt/remote-control) está conectado, a cor sincroniza com claude.ai/code. Também disponível em modo não interativo (`-p`); requer Claude Code v2.1.205 ou posterior |

77| `/compact [instructions]` | Libere contexto resumindo a conversa até agora. Opcionalmente passe instruções de foco para o resumo. Consulte [como a compactação lida com regras, skills e arquivos de memória](/docs/pt/context-window#what-survives-compaction) |77| `/compact [instructions]` | Libere contexto resumindo a conversa até agora. Opcionalmente passe instruções de foco para o resumo. Consulte [como a compactação lida com regras, skills e arquivos de memória](/docs/pt/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Abra a interface de [Configurações](/docs/pt/settings) para ajustar tema, modelo, [estilo de saída](/docs/pt/output-styles) e outras preferências. Passe um ou mais pares `key=value` para definir uma configuração diretamente sem abrir a interface, por exemplo `/config thinking=false`, `/config theme=dark`, ou `/config model=sonnet`. O formulário `key=value` também funciona em modo não interativo (`-p`) e do aplicativo móvel Claude via [Remote Control](/docs/pt/remote-control). O formulário `key=value` não pode ativar uma configuração que precisa de sua confirmação no painel, como [`autoContinueAtUsageLimit`](/docs/pt/interactive-mode#turn-automatic-continue-off), embora possa desativá-la. Execute `/config --help` para listar as chaves que aceita. Alias: `/settings` |78| `/config [key=value ...]` | Abra a interface de [Configurações](/docs/pt/settings) para ajustar tema, modelo, [estilo de saída](/docs/pt/output-styles) e outras preferências. Passe um ou mais pares `key=value` para definir uma configuração diretamente sem abrir a interface, por exemplo `/config thinking=false`, `/config theme=dark`, ou `/config model=sonnet`. O formulário `key=value` também funciona em modo não interativo (`-p`) e do aplicativo móvel Claude via [Remote Control](/docs/pt/remote-control). O formulário `key=value` não pode ativar uma configuração que precisa de sua confirmação no painel, como [`autoContinueAtUsageLimit`](/docs/pt/interactive-mode#turn-automatic-continue-off), embora possa desativá-la. Execute `/config --help` para listar as chaves que aceita. Alias: `/settings` |


134| `/remote-env` | Escolha o [ambiente na nuvem](/docs/pt/cloud-environments#select-an-environment-from-the-cli) padrão para sessões na nuvem que você inicia a partir da CLI |134| `/remote-env` | Escolha o [ambiente na nuvem](/docs/pt/cloud-environments#select-an-environment-from-the-cli) padrão para sessões na nuvem que você inicia a partir da CLI |

135| `/rename [name]` | Renomeie a sessão atual e mostre o nome na barra de prompt. Sem um nome, auto-gera um a partir do histórico de conversa. Também disponível em modo não interativo (`-p`); requer Claude Code v2.1.205 ou posterior. De cada superfície de renomeação, incluindo claude.ai e o aplicativo de desktop, Claude Code substitui caracteres de controle e invisíveis no novo nome com espaços e limita o nome a 200 caracteres. Se o nome estiver vazio uma vez que caracteres invisíveis são removidos, Claude Code o rejeita e mostra `That name is empty once invisible characters are removed. Usage: /rename <name>`. A substituição de caracteres e limite de comprimento requerem Claude Code v2.1.221 ou posterior. Se outra sessão ativa nesta máquina já usar um nome que você passa, Claude Code aplica [uma variante dele](/docs/pt/sessions#name-your-sessions) |135| `/rename [name]` | Renomeie a sessão atual e mostre o nome na barra de prompt. Sem um nome, auto-gera um a partir do histórico de conversa. Também disponível em modo não interativo (`-p`); requer Claude Code v2.1.205 ou posterior. De cada superfície de renomeação, incluindo claude.ai e o aplicativo de desktop, Claude Code substitui caracteres de controle e invisíveis no novo nome com espaços e limita o nome a 200 caracteres. Se o nome estiver vazio uma vez que caracteres invisíveis são removidos, Claude Code o rejeita e mostra `That name is empty once invisible characters are removed. Usage: /rename <name>`. A substituição de caracteres e limite de comprimento requerem Claude Code v2.1.221 ou posterior. Se outra sessão ativa nesta máquina já usar um nome que você passa, Claude Code aplica [uma variante dele](/docs/pt/sessions#name-your-sessions) |

136| `/resume [session]` | Retome uma conversa por ID ou nome, ou abra o seletor de sessão. [Sessões em segundo plano](/docs/pt/agent-view) aparecem no seletor marcadas com `bg`. Retomar uma que ainda está em execução, do seletor ou por ID ou nome, [abre essa sessão](/docs/pt/sessions#resume-a-running-background-session): sua conversa atual vai para segundo plano e este terminal se anexa à em execução. Pressione `←` em um prompt vazio para retornar à visualização de agente, que também lista a conversa que você deixou. Antes da v2.1.285, Claude Code recusava e dizia para abrir a sessão com `claude attach` ou pará-la primeiro. Alias: `/continue` |136| `/resume [session]` | Retome uma conversa por ID ou nome, ou abra o seletor de sessão. [Sessões em segundo plano](/docs/pt/agent-view) aparecem no seletor marcadas com `bg`. Retomar uma que ainda está em execução, do seletor ou por ID ou nome, [abre essa sessão](/docs/pt/sessions#resume-a-running-background-session): sua conversa atual vai para segundo plano e este terminal se anexa à em execução. Pressione `←` em um prompt vazio para retornar à visualização de agente, que também lista a conversa que você deixou. Antes da v2.1.285, Claude Code recusava e dizia para abrir a sessão com `claude attach` ou pará-la primeiro. Alias: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/pt/code-review#review-a-diff-locally): revisa o diff atual, ou um número de PR, branch ou caminho que você passa, como `/review 1234`, e aceita os mesmos níveis de esforço e flags. Sem um nível dado, a revisão reutiliza o último nível `low` através `max` que você digitou; consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para as regras exatas. Para uma revisão na nuvem profunda, use [`/code-review ultra`](/docs/pt/ultrareview). Antes da v2.1.223, `/review` era um comando separado que executava uma revisão de uma única passagem, somente leitura de um pull request GitHub por número, listando PRs abertos para escolher quando executado sem argumento; de v2.1.186 através v2.1.201, executava o mesmo mecanismo multi-agente que `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/pt/code-review#review-a-diff-locally): revisa o diff atual, ou um número de PR, branch ou caminho que você passa, como `/review 1234`, e aceita os mesmos níveis de esforço e flags. Sem um nível dado, a revisão reutiliza o último nível `low` através `max` que você digitou; consulte [Revise um diff localmente](/docs/pt/code-review#review-a-diff-locally) para as regras exatas. Para uma revisão na nuvem profunda, use [`/code-review ultra`](/docs/pt/ultrareview). Antes da v2.1.223, `/review` era um comando separado que executava uma revisão de uma única passagem, somente leitura de um pull request GitHub por número, listando PRs abertos para escolher quando executado sem argumento; de v2.1.186 através v2.1.201, executava o mesmo mecanismo multi-agente que `/code-review medium` |

138| `/rewind` | Retroceda a conversa e/ou código para um ponto anterior, ou resuma a partir de uma mensagem selecionada. Consulte [checkpointing](/docs/pt/checkpointing). Aliases: `/checkpoint`, `/undo` |138| `/rewind` | Retroceda a conversa e/ou código para um ponto anterior, ou resuma a partir de uma mensagem selecionada. Consulte [checkpointing](/docs/pt/checkpointing). Aliases: `/checkpoint`, `/undo` |

139| `/run` | **[Skill](/docs/pt/skills#bundled-skills).** Inicie e dirija o aplicativo do seu projeto para ver uma mudança funcionando, não apenas passando testes. Consulte [Execute e verifique seu aplicativo](/docs/pt/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/pt/skills#bundled-skills).** Inicie e dirija o aplicativo do seu projeto para ver uma mudança funcionando, não apenas passando testes. Consulte [Execute e verifique seu aplicativo](/docs/pt/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/pt/skills#bundled-skills).** Ensine `/run` e `/verify` como fazer o build, iniciar e dirigir o aplicativo do seu projeto a partir de um ambiente limpo escrevendo uma [skill](/docs/pt/skills#run-and-verify-your-app) por projeto |140| `/run-skill-generator` | **[Skill](/docs/pt/skills#bundled-skills).** Ensine `/run` e `/verify` como fazer o build, iniciar e dirigir o aplicativo do seu projeto a partir de um ambiente limpo escrevendo uma [skill](/docs/pt/skills#run-and-verify-your-app) por projeto |

Details

47 Time,47 Time,

48 48 

49 A partir de hoje você tem acesso a Claude Code, um agente de codificação de IA que funciona em49 A partir de hoje você tem acesso a Claude Code, um agente de codificação de IA que funciona em

50 seu terminal, lê seu código real, e trabalha através de tarefas reais de ponta a ponta: depuração, refatorações, testes, PRs. Não é autocompletar e não é50 seu terminal, lê sua base de código real, e trabalha através de tarefas reais de ponta

51 uma janela de chat. Ele edita arquivos, executa seus comandos e pede permissão51 a ponta: depuração, refatorações, testes, PRs. Não é autocompletar e não é

52 antes de qualquer coisa arriscada.52 uma janela de chat. Ele edita arquivos e executa seus comandos.

53 53 

54 Comece em dois minutos:54 Comece em dois minutos:

55 55 


58 claude58 claude

59 59 

60 Depois execute /init uma vez. Claude lê seu projeto e escreve um CLAUDE.md com60 Depois execute /init uma vez. Claude lê seu projeto e escreve um CLAUDE.md com

61 seus comandos de compilação e convenções, para que você pare de re-explicar o básico.61 seus comandos de build e convenções, para que você pare de re-explicar o básico.

62 62 

63 Depois tente um destes no repositório em que você já está:63 Depois tente um destes no repositório em que você já está:

64 64 

65 - "O teste em [arquivo] é instável. Descubra por que e corrija"65 - "O teste em [arquivo] é instável. Descubra por que e corrija"

66 - "Me mostre como [módulo] lida com [X]"66 - "Me mostre como [módulo] lida com [X]"

67 - "Olhe meu diff funcionando e me diga o que é arriscado antes de eu fazer push"67 - "Olhe meu diff de trabalho e me diga o que é arriscado antes de eu fazer push"

68 68 

69 Para onde seu código vai: Claude Code funciona em seu terminal e fala diretamente69 Para onde seu código vai: Claude Code funciona em seu terminal e fala diretamente

70 com a API da Anthropic, sem servidores de terceiros no meio. Ele pede antes de70 com a API da Anthropic. Sob nosso plano Team ou Enterprise, Anthropic não usa

71 editar arquivos ou executar comandos. Sob nosso plano Team ou Enterprise, Anthropic71 seu código ou prompts para treinar seus modelos.

72 não usa seu código ou prompts para treinar seus modelos.

73 Detalhes: https://code.claude.com/docs/pt/data-usage72 Detalhes: https://code.claude.com/docs/pt/data-usage

74 https://code.claude.com/docs/pt/security73 https://code.claude.com/docs/pt/security

75 74 


88 🚀 *Claude Code está ativo para [time]*87 🚀 *Claude Code está ativo para [time]*

89 88 

90 Agente de codificação de IA, funciona em seu terminal, lê seu repositório, faz trabalho real:89 Agente de codificação de IA, funciona em seu terminal, lê seu repositório, faz trabalho real:

91 bugs, refatorações, testes, PRs. Pede antes de tocar em qualquer coisa.90 bugs, refatorações, testes, PRs.

92 91 

93 `curl -fsSL https://claude.ai/install.sh | bash` → `cd seu-repositório` → `claude`92 `curl -fsSL https://claude.ai/install.sh | bash` → `cd seu-repositório` → `claude`

94 93 

95 *Primeira coisa para tentar* → execute `/init`, depois: "o teste em [arquivo] é instável,94 *Primeira coisa para tentar* → execute `/init`, depois: "o teste em [arquivo] é instável,

96 descubra por que e corrija".95 descubra por que e corrija".

97 96 

98 🔒 Funciona em seu terminal, fala apenas com a API da Anthropic. Sob nosso97 🔒 Funciona em seu terminal, fala diretamente com a API da Anthropic. Sob nosso

99 plano Team ou Enterprise seu código e prompts não são usados para treinar modelos.98 plano Team ou Enterprise seu código e prompts não são usados para treinar modelos.

100 Uso de dados → https://code.claude.com/docs/pt/data-usage99 Uso de dados → https://code.claude.com/docs/pt/data-usage

101 100 


182[Continue com "Comece em dois minutos" do anúncio padrão]181[Continue com "Comece em dois minutos" do anúncio padrão]

183 182 

184Uma coisa extra para pilotos: em sua primeira mudança de múltiplos arquivos, pressione Shift+Tab183Uma coisa extra para pilotos: em sua primeira mudança de múltiplos arquivos, pressione Shift+Tab

185até ver "plan". Claude exibirá exatamente o que pretende fazer184até ver "plan". Claude exibirá o que pretende fazer

186antes de tocar em um arquivo. É a maneira mais rápida de calibrar quanto185sem editar seu código-fonte. É a maneira mais rápida de calibrar quanto

187confiar nele.186confiar nele.

188```187```

189 188 


299 298 

300Às vezes você quer que Claude pergunte antes de cada edição. Às vezes você quer que ele apenas envie. Você não deveria ter que escolher um para sempre.299Às vezes você quer que Claude pergunte antes de cada edição. Às vezes você quer que ele apenas envie. Você não deveria ter que escolher um para sempre.

301 300 

302*Shift+Tab* alterna entre o quanto Claude pode fazer sem perguntar: *Manual* (o valor de configuração `default`) pergunta antes de edições de arquivo e a maioria dos comandos shell, *acceptEdits* deixa edições de arquivo e comandos comuns do sistema de arquivos fluírem enquanto ainda verifica antes de outros comandos shell, e *plan* propõe mudanças para sua aprovação antes de qualquer coisa ser tocada. O modo plan é o construtor de confiança, então comece por aí para qualquer coisa tocando múltiplos arquivos.301*Shift+Tab* alterna entre o quanto Claude pode fazer sem perguntar: *Manual* (o valor de configuração `default`) pergunta antes de edições de arquivo e a maioria dos comandos shell, *acceptEdits* deixa edições de arquivo e comandos comuns do sistema de arquivos fluírem enquanto ainda verifica antes de outros comandos shell, e *plan* pesquisa e propõe mudanças sem editar seu código-fonte. O modo de planejamento é o construtor de confiança, então comece por aí para qualquer coisa tocando múltiplos arquivos.

303 302 

304*Tente agora:* no seu próximo refactor, pressione Shift+Tab até ver "plan", depois descreva a mudança. Você terá uma proposta completa antes de um único arquivo se mover.303*Tente agora:* no seu próximo refactor, pressione Shift+Tab até ver "plan", depois descreva a mudança. Você terá uma proposta completa para revisar.

305 304 

306📖 Modos de permissão → https://code.claude.com/docs/pt/permissions305📖 Modos de permissão → https://code.claude.com/docs/pt/permissions

307```306```


432Alguém na sua equipe vai perguntar "espera, para onde vai meu código?"431Alguém na sua equipe vai perguntar "espera, para onde vai meu código?"

433Aqui está a versão curta que você pode colar.432Aqui está a versão curta que você pode colar.

434 433 

435Permissão-primeiro por design. Cada edição de arquivo, comando shell e chamada externa é controlada pela sua aprovação. O CLI funciona no seu terminal e fala diretamente com a API da Anthropic, sem servidores de terceiros, e suporta sandboxing opcional no nível do SO para comandos shell. Em um plano Team ou Enterprise, a Anthropic não usa seu código ou prompts para treinar seus modelos.434Um modo de permissão define quais ações Claude pode realizar sem perguntar a você primeiro. O CLI funciona no seu terminal, fala diretamente com a API da Anthropic e suporta sandboxing opcional no nível do SO para comandos shell. Em um plano Team ou Enterprise, a Anthropic não usa seu código ou prompts para treinar seus modelos.

436 435 

437*Tente agora:* salve esses dois links para a próxima vez que a pergunta surgir. Eles respondem a maioria das perguntas de revisão de segurança.436*Tente agora:* salve esses dois links para a próxima vez que a pergunta surgir. Eles respondem a maioria das perguntas de revisão de segurança.

438 437 


471| - | - |470| - | - |

472| "Funciona em VS Code?" | Sim. Há uma extensão VS Code e um plugin JetBrains com os mesmos recursos, incorporados em seu editor. [VS Code →](/docs/pt/vs-code) |471| "Funciona em VS Code?" | Sim. Há uma extensão VS Code e um plugin JetBrains com os mesmos recursos, incorporados em seu editor. [VS Code →](/docs/pt/vs-code) |

473| "Preciso configurar algo primeiro?" | Não. Instale, depois execute `claude` em qualquer repositório. Execute `/init` uma vez e você está pronto. [Guia de início rápido →](/docs/pt/quickstart) |472| "Preciso configurar algo primeiro?" | Não. Instale, depois execute `claude` em qualquer repositório. Execute `/init` uma vez e você está pronto. [Guia de início rápido →](/docs/pt/quickstart) |

474| "Para onde vai meu código?" | O CLI funciona em seu terminal e envia contexto para a API da Anthropic para inferência, sem servidores de terceiros. Em um plano Team ou Enterprise, seu código e prompts não são usados para treinar modelos. [Uso de dados →](/docs/pt/data-usage) |473| "Para onde vai meu código?" | O CLI funciona em seu terminal e envia contexto para a API da Anthropic para inferência. Em um plano Team ou Enterprise, seu código e prompts não são usados para treinar modelos. [Uso de dados →](/docs/pt/data-usage) |

475| "Pode ver meu repositório inteiro?" | Ele lê o que você dá acesso. Leituras de arquivo dentro de seu diretório de trabalho não solicitam; prompts de permissão controlam edições, comandos shell não somente leitura e leituras de ferramentas de arquivo fora daquele diretório. Um conjunto integrado de comandos shell somente leitura como `ls` e `cat` é executado sem solicitar; restrinja com [regras de sandbox `denyRead`](/docs/pt/sandboxing#filesystem-isolation). [Permissões →](/docs/pt/permissions) |474| "Pode ver meu repositório inteiro?" | Ele lê o que você dá acesso. Leituras de arquivo dentro de seu diretório de trabalho não solicitam confirmação. [Permissões →](/docs/pt/permissions) |

476| "Como isto é diferente do Copilot?" | Copilot autocompletar linhas. Claude Code é um agente que lê arquivos, executa comandos e faz edições de múltiplos arquivos. [Visão geral →](/docs/pt/overview) |475| "Como isto é diferente do Copilot?" | Copilot autocompletar linhas. Claude Code é um agente que lê arquivos, executa comandos e faz edições de múltiplos arquivos. [Visão geral →](/docs/pt/overview) |

477| "O que devo tentar primeiro?" | Um bug que você vem adiando porque é tedioso. "O teste em \[arquivo] é instável, descubra por que." [Guia de início rápido →](/docs/pt/quickstart) |476| "O que devo tentar primeiro?" | Um bug que você vem adiando porque é tedioso. "O teste em \[arquivo] é instável, descubra por que." [Guia de início rápido →](/docs/pt/quickstart) |

478 477 

computer-use.md +1 −1

Details

210| Recurso | Desktop | CLI |210| Recurso | Desktop | CLI |

211| :- | :- | :- |211| :- | :- | :- |

212| Plataformas | macOS e Windows | Apenas macOS |212| Plataformas | macOS e Windows | Apenas macOS |

213| Ativar | Alternar em **Settings > General** (em **Desktop app**) | Ativar `computer-use` em `/mcp` |213| Ativar | Alternar em **Settings > This computer > System** | Ativar `computer-use` em `/mcp` |

214| Lista de aplicativos negados | Configurável em Settings | Ainda não disponível |214| Lista de aplicativos negados | Configurável em Settings | Ainda não disponível |

215| Alternância de auto-unhide | Opcional | Sempre ativado |215| Alternância de auto-unhide | Opcional | Sempre ativado |

216| Integração do Dispatch | Sessões geradas por Dispatch podem usar computer use | Não aplicável |216| Integração do Dispatch | Sessões geradas por Dispatch podem usar computer use | Não aplicável |

Details

226* **A sessão receptora solicita permissões**: Claude Code entrega cada mensagem. Retém uma apenas para sua aprovação quando a sessão de envio se identifica como contornando prompts de permissão.226* **A sessão receptora solicita permissões**: Claude Code entrega cada mensagem. Retém uma apenas para sua aprovação quando a sessão de envio se identifica como contornando prompts de permissão.

227* **A sessão receptora contorna prompts de permissão**: Claude Code retém cada mensagem para sua aprovação. Entrega uma apenas quando a sessão de envio se identifica como também contornando.227* **A sessão receptora contorna prompts de permissão**: Claude Code retém cada mensagem para sua aprovação. Entrega uma apenas quando a sessão de envio se identifica como também contornando.

228 228 

229Quando o padrão retém uma mensagem, Claude Code abre um diálogo de aprovação na sessão receptora. O diálogo mostra o remetente e uma prévia:229Quando o padrão retém uma mensagem em uma sessão interativa de terminal, Claude Code abre um diálogo de aprovação ali. O diálogo mostra o remetente e uma prévia:

230 230 

231* **Approve** entrega essa mensagem a Claude.231* **Approve** entrega essa mensagem a Claude.

232* **Deny**, ou descartar o diálogo, a descarta.232* **Deny**, ou descartar o diálogo, a descarta.


234* Enquanto nenhum terminal está anexado a uma [sessão em background](/docs/pt/agent-view), Claude Code deixa o diálogo aberto após o prazo. Depois que você anexa, se o diálogo fica sem resposta por um período de prazo completo, Claude Code o fecha e descarta a mensagem.234* Enquanto nenhum terminal está anexado a uma [sessão em background](/docs/pt/agent-view), Claude Code deixa o diálogo aberto após o prazo. Depois que você anexa, se o diálogo fica sem resposta por um período de prazo completo, Claude Code o fecha e descarta a mensagem.

235* Se a classe de modo de permissão dessa sessão muda enquanto mensagens estão retidas, Claude Code re-aplica as regras de entrada, entrega as mensagens que agora aceita, e mostra um aviso.235* Se a classe de modo de permissão dessa sessão muda enquanto mensagens estão retidas, Claude Code re-aplica as regras de entrada, entrega as mensagens que agora aceita, e mostra um aviso.

236 236 

237Uma sessão na extensão do VS Code ou no app Desktop não pode mostrar o diálogo. Claude Code mantém uma mensagem retida ali até o mesmo prazo, como [Sessões não-interativas](#non-interactive-sessions) descreve.

238 

237Claude Code retém no máximo 100 mensagens, e além disso descarta a mais antiga.239Claude Code retém no máximo 100 mensagens, e além disso descarta a mais antiga.

238 240 

239<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

desktop.md +2 −2

Details

332 </Step>332 </Step>

333 333 

334 <Step title="Ativar o toggle">334 <Step title="Ativar o toggle">

335 No aplicativo desktop, vá para **Configurações > Geral** (em **Aplicativo Desktop**). Encontre o toggle **Computer use** e ative-o. No Windows, o toggle entra em efeito imediatamente e a configuração está completa. No macOS, continue para o próximo passo.335 No aplicativo desktop, vá para **Configurações > Este computador > Sistema**. Em **Computer use**, ative **Enable computer use**. No Windows, o toggle entra em efeito imediatamente e a configuração está completa. No macOS, continue para o próximo passo.

336 336 

337 Se você não vir o toggle, confirme que você está em macOS ou Windows com um plano Pro ou Max, depois atualize e reinicie o aplicativo.337 Se você não vir o toggle, confirme que você está em macOS ou Windows com um plano Pro ou Max, depois atualize e reinicie o aplicativo.

338 </Step>338 </Step>


363 363 

364Aplicativos com alcance amplo, como terminais, Finder ou File Explorer, e System Settings ou Settings, mostram um aviso extra no prompt para que você saiba o que aprovar concede.364Aplicativos com alcance amplo, como terminais, Finder ou File Explorer, e System Settings ou Settings, mostram um aviso extra no prompt para que você saiba o que aprovar concede.

365 365 

366Você pode configurar duas configurações em **Configurações > Geral** (em **Aplicativo Desktop**):366A seção **Computer use** em **Configurações > Este computador > Sistema** inclui estas opções:

367 367 

368* **Denied apps**: adicione aplicativos aqui para rejeitá-los sem solicitar. Claude ainda pode afetar um aplicativo negado indiretamente através de ações em um aplicativo permitido, mas não pode interagir com o aplicativo negado diretamente.368* **Denied apps**: adicione aplicativos aqui para rejeitá-los sem solicitar. Claude ainda pode afetar um aplicativo negado indiretamente através de ações em um aplicativo permitido, mas não pode interagir com o aplicativo negado diretamente.

369* **Unhide apps when Claude finishes**: quando computer use não está sendo executado em segundo plano, Claude oculta suas outras janelas enquanto trabalha para que interaja apenas com o aplicativo aprovado. Quando Claude termina, as janelas ocultas são restauradas a menos que você desative essa configuração.369* **Unhide apps when Claude finishes**: quando computer use não está sendo executado em segundo plano, Claude oculta suas outras janelas enquanto trabalha para que interaja apenas com o aplicativo aprovado. Quando Claude termina, as janelas ocultas são restauradas a menos que você desative essa configuração.

Details

75 75 

76Quando uma tarefa é acionada, você recebe uma notificação da área de trabalho e uma nova sessão aparece em uma seção **Scheduled** na barra lateral. Abra-a para ver o que Claude fez, revisar alterações ou responder a prompts de permissão. Claude pode editar arquivos, executar comandos, criar commits e abrir pull requests, o mesmo que em uma sessão que você inicia por conta própria, mas não pode enviar ou receber [mensagens entre suas sessões desktop](/docs/pt/desktop#work-across-sessions) através da superfície de sessão do aplicativo desktop.76Quando uma tarefa é acionada, você recebe uma notificação da área de trabalho e uma nova sessão aparece em uma seção **Scheduled** na barra lateral. Abra-a para ver o que Claude fez, revisar alterações ou responder a prompts de permissão. Claude pode editar arquivos, executar comandos, criar commits e abrir pull requests, o mesmo que em uma sessão que você inicia por conta própria, mas não pode enviar ou receber [mensagens entre suas sessões desktop](/docs/pt/desktop#work-across-sessions) através da superfície de sessão do aplicativo desktop.

77 77 

78As tarefas só são executadas enquanto o aplicativo desktop está em execução e seu computador está acordado. Se seu computador dormir durante um horário agendado, a execução é ignorada. Para evitar suspensão por inatividade, ative **Keep computer awake** em Settings em **Desktop app → General**. Fechar a tampa do laptop ainda o coloca em suspensão. Para tarefas que precisam ser executadas mesmo quando seu computador está desligado, ou que devem ser acionadas por uma chamada de API ou evento do GitHub, crie uma [routine](/docs/pt/routines) remota.78As tarefas só são executadas enquanto o aplicativo desktop está em execução e seu computador está acordado. Se seu computador dormir durante um horário agendado, a execução é ignorada. Para evitar suspensão por inatividade, ative **Keep computer awake** em **Settings > This computer > System**. Fechar a tampa do laptop ainda o coloca em suspensão. Para tarefas que precisam ser executadas mesmo quando seu computador está desligado, ou que devem ser acionadas por uma chamada de API ou evento do GitHub, crie uma [rotina](/docs/pt/routines) remota.

79 79 

80<h2 id="missed-runs">80<h2 id="missed-runs">

81 Execuções perdidas81 Execuções perdidas

env-vars.md +247 −245

Details

124 Variáveis124 Variáveis

125</h2>125</h2>

126 126 

127Variáveis numéricas, como timeouts, orçamentos de tokens e contagens de novas tentativas, aceitam notação científica e grafias com separador de dígitos, além de dígitos simples, exceto quando a linha de uma variável indica que ela aceita apenas dígitos simples. Por exemplo, o Claude Code lê `2e3` como 2000 e `64_000` como 64000. Antes da v2.1.211, essas grafias podiam definir silenciosamente um valor muito menor, como `1e6` definindo um timeout de 1.127Variáveis numéricas, como timeouts, orçamentos de tokens e contagens de novas tentativas, aceitam notação científica e grafias com separador de dígitos, além de dígitos simples, exceto quando a linha da variável indica que ela aceita apenas dígitos simples. Por exemplo, o Claude Code lê `2e3` como 2000 e `64_000` como 64000. Antes da v2.1.211, essas grafias podiam definir silenciosamente um valor muito menor, como `1e6` definindo um timeout de 1.

128 128 

129<Note>129<Note>

130 Para variáveis que ativam ou desativam um comportamento, defina `1`, `true`, `yes` ou `on` para ativá-lo e `0`, `false`, `no` ou `off` para desativá-lo, com qualquer combinação de maiúsculas e minúsculas.130 Para variáveis que ativam ou desativam um comportamento, defina `1`, `true`, `yes` ou `on` para ativá-lo e `0`, `false`, `no` ou `off` para desativá-lo, com qualquer combinação de maiúsculas e minúsculas.


143 143 

144| Variável | Finalidade |144| Variável | Finalidade |

145| :- | :- |145| :- | :- |

146| `ANTHROPIC_API_KEY` | Chave de API enviada como cabeçalho `X-Api-Key`. Quando definida, essa chave é usada em vez da sua assinatura Claude Pro, Max, Team ou Enterprise, mesmo que você tenha feito login. No modo não interativo (`-p`), a chave é sempre usada quando presente. No modo interativo, você é solicitado a aprovar a chave uma vez antes que ela sobrescreva sua assinatura. Para usar sua assinatura em vez disso, execute `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | Chave de API enviada como cabeçalho `X-Api-Key`. Quando definida, essa chave é usada em vez da sua assinatura Claude Pro, Max, Team ou Enterprise, mesmo que você tenha feito login. No modo não interativo (`-p`), a chave é sempre usada quando presente. No modo interativo, você precisa aprovar a chave uma vez antes que ela sobrescreva sua assinatura. Para usar sua assinatura em vez disso, execute `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para o cabeçalho `Authorization` (o valor que você definir aqui será prefixado com `Bearer `) |147| `ANTHROPIC_AUTH_TOKEN` | Valor personalizado para o cabeçalho `Authorization` (o valor definido aqui receberá o prefixo `Bearer `) |

148| `ANTHROPIC_AWS_API_KEY` | Chave de API do workspace para o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), gerada no AWS Console. Enviada como `x-api-key` e tem precedência sobre o AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | Chave de API do workspace para o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), gerada no AWS Console. Enviada como `x-api-key` e tem precedência sobre o AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | Sobrescreve a URL do endpoint do [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Use para regiões personalizadas ou ao rotear por um [gateway de LLM](/docs/pt/llm-gateway). O padrão é `https://aws-external-anthropic.{region}.api.aws`. O Claude Code resolve a região com a [mesma precedência que no Amazon Bedrock](/docs/pt/amazon-bedrock#3-configure-claude-code) |149| `ANTHROPIC_AWS_BASE_URL` | Sobrescreve a URL do endpoint do [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Use para regiões personalizadas ou ao rotear por meio de um [gateway de LLM](/docs/pt/llm-gateway). O padrão é `https://aws-external-anthropic.{region}.api.aws`. O Claude Code resolve a região com a [mesma precedência usada no Amazon Bedrock](/docs/pt/amazon-bedrock#3-configure-claude-code) |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | Obrigatória para o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Enviada em toda requisição como o cabeçalho `anthropic-workspace-id` |150| `ANTHROPIC_AWS_WORKSPACE_ID` | Obrigatória para o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Enviada em toda requisição como o cabeçalho `anthropic-workspace-id` |

151| `ANTHROPIC_BASE_URL` | Sobrescreve o endpoint da API para rotear requisições por um proxy ou gateway. Quando definida para um host que não é first-party, o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search) fica desativado por padrão. Defina `ENABLE_TOOL_SEARCH=true` se o seu proxy encaminhar blocos `tool_reference`. A partir da v2.1.196, o [Remote Control](/docs/pt/remote-control#requirements) fica desativado quando esta variável aponta para um host diferente de `api.anthropic.com`, correspondendo ao seu comportamento no Amazon Bedrock, no Google Cloud's Agent Platform e no Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Sobrescreve o endpoint da API para rotear requisições por meio de um proxy ou gateway. Quando definida como um host que não é first-party, o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search) fica desativado por padrão. Defina `ENABLE_TOOL_SEARCH=true` se seu proxy encaminhar blocos `tool_reference`. A partir da v2.1.196, o [Remote Control](/docs/pt/remote-control#requirements) fica desativado quando esta variável aponta para um host diferente de `api.anthropic.com`, correspondendo ao seu comportamento no Amazon Bedrock, no Google Cloud's Agent Platform e no Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Sobrescreve a URL do endpoint do Amazon Bedrock. Use para endpoints personalizados do Amazon Bedrock ou ao rotear por um [gateway de LLM](/docs/pt/llm-gateway). Consulte [Amazon Bedrock](/docs/pt/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Sobrescreve a URL do endpoint do Amazon Bedrock. Use para endpoints personalizados do Amazon Bedrock ou ao rotear por meio de um [gateway de LLM](/docs/pt/llm-gateway). Consulte [Amazon Bedrock](/docs/pt/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sobrescreve a URL do endpoint do Amazon Bedrock Mantle. Consulte [Endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Sobrescreve a URL do endpoint Mantle do Amazon Bedrock. Consulte [Endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefixo do perfil de inferência entre regiões (`us`, `eu`, `apac`, `jp`, `au` ou `global`) que o Claude Code tenta primeiro em vez daquele derivado da região da AWS. Ignorada nas regiões AWS GovCloud. Requer Claude Code v2.1.224 ou posterior. Consulte [Amazon Bedrock](/docs/pt/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Prefixo do perfil de inferência entre regiões (`us`, `eu`, `apac`, `jp`, `au` ou `global`) que o Claude Code tenta primeiro em vez daquele derivado da região da AWS. Ignorada em regiões do AWS GovCloud. Requer Claude Code v2.1.224 ou posterior. Consulte [Amazon Bedrock](/docs/pt/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Nível de serviço](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) do Amazon Bedrock (`default`, `flex` ou `priority`). Enviado como o cabeçalho `X-Amzn-Bedrock-Service-Tier`. Consulte [Amazon Bedrock](/docs/pt/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Nível de serviço](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) do Amazon Bedrock (`default`, `flex` ou `priority`). Enviado como o cabeçalho `X-Amzn-Bedrock-Service-Tier`. Consulte [Amazon Bedrock](/docs/pt/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | Lista separada por vírgulas de valores adicionais do cabeçalho `anthropic-beta` a incluir nas requisições de API. O Claude Code já envia os cabeçalhos beta de que precisa; use isto para aderir a um [beta da API da Anthropic](https://platform.claude.com/docs/en/api/beta-headers) antes que o Claude Code adicione suporte nativo. Diferentemente da [flag `--betas`](/docs/pt/cli-reference#cli-flags), que requer autenticação por chave de API, esta variável funciona com todos os métodos de autenticação, incluindo a assinatura do Claude.ai |156| `ANTHROPIC_BETAS` | Lista separada por vírgulas de valores adicionais do cabeçalho `anthropic-beta` a incluir nas requisições à API. O Claude Code já envia os cabeçalhos beta de que precisa; use esta variável para aderir a um [beta da Anthropic API](https://platform.claude.com/docs/en/api/beta-headers) antes que o Claude Code adicione suporte nativo. Diferentemente da [flag `--betas`](/docs/pt/cli-reference#cli-flags), que exige autenticação por chave de API, esta variável funciona com todos os métodos de autenticação, incluindo a assinatura do Claude.ai |

157| `ANTHROPIC_CUSTOM_HEADERS` | Cabeçalhos personalizados a adicionar às requisições (formato `Name: Value`, separados por quebra de linha para vários cabeçalhos). Se um nome ou valor contiver um caractere que um cabeçalho HTTP não pode transportar, como uma aspa curva ou um espaço de largura zero, a requisição falha com um erro que identifica o par pela posição. Requer Claude Code v2.1.227 ou posterior. [Valor de cabeçalho de requisição inválido](/docs/pt/errors#invalid-request-header-value) lista o conjunto exato de caracteres e onde a verificação é executada. Um valor que define um cabeçalho de credencial, organização ou tenant, roteamento ou comportamento da API, como `Authorization` ou `Host`, conta como uma [configuração que precisa de aprovação](/docs/pt/server-managed-settings#environment-variables-and-the-approval-dialog) quando configurações gerenciadas pelo servidor o entregam. A partir de configurações de projeto ou locais, esse valor segue as [regras de quando os valores `env` se aplicam](/docs/pt/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | Cabeçalhos personalizados a adicionar às requisições (formato `Name: Value`, separados por nova linha para múltiplos cabeçalhos). Se um nome ou valor contiver um caractere que um cabeçalho HTTP não pode transportar, como uma aspa curva ou um espaço de largura zero, a requisição falha com um erro que identifica o par pela posição. Requer Claude Code v2.1.227 ou posterior. [Invalid request header value](/docs/pt/errors#invalid-request-header-value) lista o conjunto exato de caracteres e onde a verificação é executada. Um valor que define um cabeçalho de credencial, organização ou tenant, roteamento ou comportamento da API, como `Authorization` ou `Host`, conta como uma [configuração que precisa de aprovação](/docs/pt/server-managed-settings#environment-variables-and-the-approval-dialog) quando entregue por configurações gerenciadas pelo servidor. A partir das configurações de projeto ou locais, esse valor segue as [regras sobre quando os valores de `env` se aplicam](/docs/pt/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID do modelo a adicionar como uma entrada personalizada no seletor `/model`. Use isto para tornar selecionável um modelo não padrão ou específico de gateway sem substituir os aliases integrados. Consulte [Configuração de modelo](/docs/pt/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID do modelo a adicionar como uma entrada personalizada no seletor `/model`. Use esta variável para tornar selecionável um modelo não padrão ou específico de gateway sem substituir os aliases integrados. Consulte [Configuração de modelo](/docs/pt/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descrição exibida para a entrada de modelo personalizado no seletor `/model`. O padrão é `Custom model (<model-id>)` quando não definida |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descrição exibida para a entrada de modelo personalizado no seletor `/model`. O padrão é `Custom model (<model-id>)` quando não definida |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nome exibido para a entrada de modelo personalizado no seletor `/model`. Quando não definida, a entrada mostra o nome do modelo se o Claude Code [reconhecer o ID](/docs/pt/model-config#customize-pinned-model-display-and-capabilities), e o ID do modelo caso contrário |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nome exibido para a entrada de modelo personalizado no seletor `/model`. Quando não definida, a entrada mostra o nome do modelo se o Claude Code [reconhecer o ID](/docs/pt/model-config#customize-pinned-model-display-and-capabilities), e o ID do modelo caso contrário |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [capacidades](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo personalizado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [recursos](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo personalizado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID do modelo para o qual o alias `fable` é resolvido, e o ID que o Claude Code reconhece como um modelo Fable para o [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback) em provedores terceiros. Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID do modelo para o qual o alias `fable` é resolvido, e o ID que o Claude Code reconhece como um modelo Fable para o [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback) em provedores terceirizados. Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descrição exibida para o modelo Fable fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Fable model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Descrição exibida para o modelo Fable fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Fable model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nome exibido para o modelo Fable fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nome exibido para o modelo Fable fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [capacidades](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Fable fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [recursos](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Fable fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID do modelo para o qual o alias `haiku` é resolvido, também usado para [funcionalidades em segundo plano](/docs/pt/costs#background-token-usage). Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID do modelo para o qual o alias `haiku` é resolvido, também usado para [funcionalidades em segundo plano](/docs/pt/costs#background-token-usage). Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descrição exibida para o modelo Haiku fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Haiku model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Descrição exibida para o modelo Haiku fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Haiku model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nome exibido para o modelo Haiku fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nome exibido para o modelo Haiku fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [capacidades](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Haiku fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [recursos](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Haiku fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | Modelo com o qual novas sessões começam por padrão. Requer Claude Code v2.1.236 ou posterior. Consulte [Definir um modelo padrão para novas sessões](/docs/pt/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | Modelo com o qual novas sessões iniciam por padrão. Requer Claude Code v2.1.236 ou posterior. Consulte [Definir um modelo padrão para novas sessões](/docs/pt/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID do modelo para o qual o alias `opus` é resolvido, e que o `opusplan` usa enquanto o modo de planejamento está ativo. Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID do modelo para o qual o alias `opus` é resolvido, e que o `opusplan` usa enquanto o modo de planejamento está ativo. Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descrição exibida para o modelo Opus fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Opus model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Descrição exibida para o modelo Opus fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Opus model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nome exibido para o modelo Opus fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nome exibido para o modelo Opus fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [capacidades](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Opus fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [recursos](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Opus fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID do modelo para o qual o alias `sonnet` é resolvido, e que o `opusplan` usa quando o modo de planejamento não está ativo. Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID do modelo para o qual o alias `sonnet` é resolvido, e que o `opusplan` usa quando o modo de planejamento não está ativo. Consulte [Configuração de modelo](/docs/pt/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descrição exibida para o modelo Sonnet fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Sonnet model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Descrição exibida para o modelo Sonnet fixado no seletor `/model`. Quando não definida, a linha mostra uma descrição padrão que começa com `Custom Sonnet model`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nome exibido para o modelo Sonnet fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nome exibido para o modelo Sonnet fixado no seletor `/model`. Quando não definida, a linha mostra o nome do modelo se o Claude Code reconhecer o ID fixado, e o ID fixado caso contrário. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [capacidades](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Sonnet fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Lista separada por vírgulas de [recursos](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) que o modelo Sonnet fixado suporta, por exemplo `effort,thinking`. Consulte [Configuração de modelo](/docs/pt/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID da regra de federação para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Quando você a define junto com `ANTHROPIC_ORGANIZATION_ID`, o Claude Code seleciona credenciais de federação, que têm prioridade sobre sua credencial do `/login`. Consulte [precedência de autenticação](/docs/pt/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | ID da regra de federação para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Quando você a define junto com `ANTHROPIC_ORGANIZATION_ID`, o Claude Code seleciona credenciais de federação, que têm prioridade sobre sua credencial do `/login`. Consulte [precedência de autenticação](/docs/pt/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Chave de API para autenticação no Microsoft Foundry (consulte [Microsoft Foundry](/docs/pt/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Chave de API para autenticação no Microsoft Foundry (consulte [Microsoft Foundry](/docs/pt/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token Bearer para autenticação no Microsoft Foundry, como um token de acesso do Microsoft Entra. O Claude Code o envia como o cabeçalho `Authorization: Bearer`. Tem precedência sobre `ANTHROPIC_FOUNDRY_API_KEY` e sobre a cadeia de credenciais padrão do Azure. Consulte [Microsoft Foundry](/docs/pt/microsoft-foundry). Requer Claude Code v2.1.203 ou posterior |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Token bearer para autenticação no Microsoft Foundry, como um token de acesso do Microsoft Entra. O Claude Code o envia como o cabeçalho `Authorization: Bearer`. Tem precedência sobre `ANTHROPIC_FOUNDRY_API_KEY` e sobre a cadeia de credenciais padrão do Azure. Consulte [Microsoft Foundry](/docs/pt/microsoft-foundry). Requer Claude Code v2.1.203 ou posterior |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL base completa para o recurso do Microsoft Foundry (por exemplo, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulte [Microsoft Foundry](/docs/pt/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | URL base completa do recurso do Microsoft Foundry (por exemplo, `https://my-resource.services.ai.azure.com/anthropic`). Alternativa a `ANTHROPIC_FOUNDRY_RESOURCE` (consulte [Microsoft Foundry](/docs/pt/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nome do recurso do Microsoft Foundry (por exemplo, `my-resource`). O Claude Code [recusa uma URL ou nome de host](/docs/pt/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obrigatório se `ANTHROPIC_FOUNDRY_BASE_URL` não estiver definido (consulte [Microsoft Foundry](/docs/pt/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nome do recurso do Microsoft Foundry (por exemplo, `my-resource`). O Claude Code [recusa uma URL ou um nome de host](/docs/pt/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Obrigatória se `ANTHROPIC_FOUNDRY_BASE_URL` não estiver definida (consulte [Microsoft Foundry](/docs/pt/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Nome da configuração de modelo a usar (consulte [Configuração de modelo](/docs/pt/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | Nome da configuração de modelo a usar (consulte [Configuração de modelo](/docs/pt/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | ID da organização para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina-a junto com `ANTHROPIC_FEDERATION_RULE_ID`. Consulte [precedência de autenticação](/docs/pt/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | ID da organização para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina-a junto com `ANTHROPIC_FEDERATION_RULE_ID`. Consulte [precedência de autenticação](/docs/pt/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | Nome do perfil da Anthropic com o qual autenticar, como um criado por [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) ou ao [entrar em uma conta do Console sem uma chave de API](/docs/pt/authentication#sign-in-without-an-api-key). Consulte [precedência de autenticação](/docs/pt/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | Nome do perfil da Anthropic com o qual autenticar, como um criado por [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) ou ao [entrar em uma conta do Console sem uma chave de API](/docs/pt/authentication#sign-in-without-an-api-key). Consulte [precedência de autenticação](/docs/pt/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DESCONTINUADA] Nome do [modelo da classe Haiku para tarefas em segundo plano](/docs/pt/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DESCONTINUADA] Nome do [modelo da classe Haiku para tarefas em segundo plano](/docs/pt/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sobrescreve a região da AWS para o modelo da classe Haiku ao usar o Amazon Bedrock ou o Amazon Bedrock Mantle. No Amazon Bedrock, isso só tem efeito quando `ANTHROPIC_DEFAULT_HAIKU_MODEL` ou a descontinuada `ANTHROPIC_SMALL_FAST_MODEL` também está definida, pois, caso contrário, o Amazon Bedrock executa tarefas em segundo plano no [modelo Sonnet padrão ou no modelo principal](/docs/pt/amazon-bedrock#4-pin-model-versions) na região da sessão |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sobrescreve a região da AWS para o modelo da classe Haiku ao usar o Amazon Bedrock ou o Amazon Bedrock Mantle. No Amazon Bedrock, isso só tem efeito quando `ANTHROPIC_DEFAULT_HAIKU_MODEL` ou a descontinuada `ANTHROPIC_SMALL_FAST_MODEL` também está definida, já que, caso contrário, o Amazon Bedrock executa tarefas em segundo plano no [modelo Sonnet padrão ou no modelo principal](/docs/pt/amazon-bedrock#4-pin-model-versions) na região da sessão |

189| `ANTHROPIC_VERTEX_BASE_URL` | Sobrescreve a URL do endpoint do Google Cloud's Agent Platform. Use para endpoints personalizados do Google Cloud's Agent Platform ou ao rotear por um [gateway de LLM](/docs/pt/llm-gateway). Consulte [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | Sobrescreve a URL do endpoint do Google Cloud's Agent Platform. Use para endpoints personalizados do Google Cloud's Agent Platform ou ao rotear por meio de um [gateway de LLM](/docs/pt/llm-gateway). Consulte [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID do projeto GCP ao qual as requisições do Google Cloud's Agent Platform são endereçadas. Consulte [Configurar credenciais do GCP](/docs/pt/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID do projeto do GCP ao qual as requisições do Google Cloud's Agent Platform são endereçadas. Consulte [Configurar credenciais do GCP](/docs/pt/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID do workspace para [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina isto quando sua regra de federação tiver escopo em mais de um workspace, para que a troca de tokens saiba qual workspace usar como destino |191| `ANTHROPIC_WORKSPACE_ID` | ID do workspace para [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina-a quando sua regra de federação tiver escopo em mais de um workspace, para que a troca de token saiba qual workspace usar como destino |

192| `API_FORCE_IDLE_TIMEOUT` | Sobrescreve o timeout de inatividade do corpo de 5 minutos que interrompe uma resposta de modelo em streaming quando nenhum byte chega. Defina como `0` para desativar o timeout, por exemplo quando um [gateway](/docs/pt/llm-gateway) lento ou um modelo local pausa por mais de 5 minutos entre chunks, ou `1` para mantê-lo ativo para todos os provedores. Quando não definida, o timeout fica ativo em provedores diferentes da API direta da Anthropic, do [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) e do Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` definida. Os [watchdogs de stream](/docs/pt/network-config#streaming-idle-watchdogs) funcionam independentemente dele e interrompem uma pausa silenciosa longa mesmo quando você define `0` aqui |192| `API_FORCE_IDLE_TIMEOUT` | Sobrescreve o timeout de inatividade do corpo de 5 minutos que aborta uma resposta de modelo via streaming quando nenhum byte chega. Defina como `0` para desativar o timeout, por exemplo quando um [gateway](/docs/pt/llm-gateway) lento ou um modelo local pausa por mais de 5 minutos entre chunks, ou `1` para mantê-lo ativo para todos os provedores. Quando não definida, o timeout fica ativo em provedores diferentes da Anthropic API direta, do [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) e do Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` definida. Os [watchdogs de stream](/docs/pt/network-config#streaming-idle-watchdogs) são executados independentemente dele e abortam uma longa pausa silenciosa mesmo quando você define `0` aqui |

193| `API_TIMEOUT_MS` | Timeout para requisições de API em milissegundos (padrão: 600000, ou 10 minutos; máximo: 2147483647). Aumente-o quando as requisições atingirem o timeout em redes lentas ou ao rotear por um proxy. Valores acima do máximo estouram o timer subjacente e fazem as requisições falharem imediatamente |193| `API_TIMEOUT_MS` | Timeout para requisições à API em milissegundos (padrão: 600000, ou 10 minutos; máximo: 2147483647). Aumente-o quando as requisições atingirem o timeout em redes lentas ou ao rotear por meio de um proxy. Valores acima do máximo causam overflow no timer subjacente e fazem as requisições falharem imediatamente |

194| `AWS_BEARER_TOKEN_BEDROCK` | Chave de API do Amazon Bedrock para autenticação (consulte [Chaves de API do Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | Chave de API do Amazon Bedrock para autenticação (consulte [Chaves de API do Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout padrão para um comando em primeiro plano da ferramenta Bash ou PowerShell, em milissegundos (padrão: 120000, ou 2 minutos). Um padrão maior que 30 minutos também se torna o [limite de tempo padrão para comandos em segundo plano](/docs/pt/tools-reference#time-limit-for-background-commands) em sessões não supervisionadas. O limite de tempo em segundo plano requer o Claude Code v2.1.285 ou posterior |195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout padrão para um comando em primeiro plano das ferramentas Bash ou PowerShell, em milissegundos (padrão: 120000, ou 2 minutos). Um padrão maior que 30 minutos também se torna o [limite de tempo padrão para comandos em segundo plano](/docs/pt/tools-reference#time-limit-for-background-commands) em sessões não supervisionadas. O limite de tempo em segundo plano requer Claude Code v2.1.285 ou posterior |

196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres da saída do bash que o Claude Code lê de volta no resultado de um comando (padrão: 30000; máximo: 150000). Se você definir a configuração [`bashOutputMaxChars`](/docs/pt/settings-reference#bashoutputmaxchars), o Claude Code ignora esta variável. Consulte [Limites de saída](/docs/pt/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres da saída do bash que o Claude Code lê de volta no resultado de um comando (padrão: 30000; máximo: 150000). Se você definir a configuração [`bashOutputMaxChars`](/docs/pt/settings-reference#bashoutputmaxchars), o Claude Code ignora esta variável. Consulte [Limites de saída](/docs/pt/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Timeout máximo que o modelo pode definir para um comando em primeiro plano da ferramenta Bash ou PowerShell, em milissegundos (padrão: 600000, ou 10 minutos). O teto efetivo é o maior entre este valor e `BASH_DEFAULT_TIMEOUT_MS`. Um teto efetivo maior que 2 horas também se torna o [limite de tempo máximo para comandos em segundo plano](/docs/pt/tools-reference#time-limit-for-background-commands) em sessões não supervisionadas. O limite de tempo em segundo plano requer o Claude Code v2.1.285 ou posterior |197| `BASH_MAX_TIMEOUT_MS` | Timeout máximo que o modelo pode definir para um comando em primeiro plano das ferramentas Bash ou PowerShell, em milissegundos (padrão: 600000, ou 10 minutos). O teto efetivo é o maior valor entre este e `BASH_DEFAULT_TIMEOUT_MS`. Um teto efetivo maior que 2 horas também se torna o [limite de tempo para comandos em segundo plano](/docs/pt/tools-reference#time-limit-for-background-commands) máximo em sessões não supervisionadas. O limite de tempo em segundo plano requer Claude Code v2.1.285 ou posterior |

198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP para [tracing beta detalhado](/docs/pt/monitoring-usage#traces-beta): com `ENABLE_BETA_TRACING_DETAILED=1`, logs e traces vão para lá em vez de para os exportadores configurados. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada em [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | Endpoint OTLP para [tracing beta detalhado](/docs/pt/monitoring-usage#traces-beta): com `ENABLE_BETA_TRACING_DETAILED=1`, logs e traces vão para lá em vez de para os exportadores configurados. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Defina como `1` para forçar o [`claude --cloud`](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) a empacotar e enviar seu repositório local em vez de cloná-lo a partir do seu remoto |199| `CCR_FORCE_BUNDLE` | Defina como `1` para forçar o [`claude --cloud`](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github) a empacotar e enviar seu repositório local em vez de cloná-lo a partir do remoto |

200| `CLAUDECODE` | Definida como `1` em subprocessos que o Claude Code inicia (ferramentas Bash e PowerShell, sessões tmux, comandos de [hook](/docs/pt/hooks), comandos da [linha de status](/docs/pt/statusline), subprocessos de [servidor MCP](/docs/pt/mcp) stdio). Extensões de IDE também a definem em seus terminais integrados. Use para detectar quando um script está sendo executado dentro de um subprocesso iniciado pelo Claude Code. Para verificar se o processo atual foi iniciado diretamente por uma chamada de ferramenta ou hook, e não dentro de um servidor MCP stdio que o Claude Code iniciou, use `CLAUDE_CODE_CHILD_SESSION` em vez disso |200| `CLAUDECODE` | Definida como `1` em subprocessos que o Claude Code inicia (ferramentas Bash e PowerShell, sessões do tmux, comandos de [hook](/docs/pt/hooks), comandos de [linha de status](/docs/pt/statusline), subprocessos de [servidor MCP](/docs/pt/mcp) stdio). As extensões de IDE também a definem em seus terminais integrados. Use para detectar quando um script está sendo executado dentro de um subprocesso iniciado pelo Claude Code. Para verificar se o processo atual foi iniciado diretamente por uma chamada de ferramenta ou hook, e não dentro de um servidor MCP stdio que o Claude Code iniciou, use `CLAUDE_CODE_CHILD_SESSION` em vez disso |

201| `CLAUDE_AFK_COUNTDOWN_MS` | Quantos milissegundos antes da continuação automática a contagem regressiva na tela aparece em uma caixa de diálogo [`AskUserQuestion`](/docs/pt/tools-reference) não respondida. Padrão `20000` (20 segundos), limitado ao timeout de continuação automática. Não tem efeito a menos que a continuação automática esteja ativada; consulte a configuração [`askUserQuestionTimeout`](/docs/pt/settings-reference#askuserquestiontimeout) e `CLAUDE_AFK_TIMEOUT_MS`. Requer Claude Code v2.1.198 ou posterior |201| `CLAUDE_AFK_COUNTDOWN_MS` | Quantos milissegundos antes da continuação automática a contagem regressiva na tela aparece em uma caixa de diálogo [`AskUserQuestion`](/docs/pt/tools-reference) não respondida. Padrão `20000` (20 segundos), limitado ao timeout de continuação automática. Não tem efeito a menos que a continuação automática esteja ativada; consulte a configuração [`askUserQuestionTimeout`](/docs/pt/settings-reference#askuserquestiontimeout) e `CLAUDE_AFK_TIMEOUT_MS`. Requer Claude Code v2.1.198 ou posterior |

202| `CLAUDE_AFK_TIMEOUT_MS` | Quantos milissegundos de inatividade antes que uma caixa de diálogo [`AskUserQuestion`](/docs/pt/tools-reference) não respondida continue automaticamente sem você. A continuação automática fica desativada por padrão; ative-a com a configuração [`askUserQuestionTimeout`](/docs/pt/settings-reference#askuserquestiontimeout). Esta variável é uma substituição para demonstrações e testes automatizados: quando definida, tem precedência sobre essa configuração e ativa a continuação automática mesmo quando a configuração não está definida ou é `never`. Definir `0` não desativa o timeout; fecha a caixa de diálogo imediatamente. Nas v2.1.198 e v2.1.199, a continuação automática ficava ativada por padrão com um timeout de `60000` (60 segundos). Requer Claude Code v2.1.198 ou posterior |202| `CLAUDE_AFK_TIMEOUT_MS` | Quantos milissegundos de inatividade antes que uma caixa de diálogo [`AskUserQuestion`](/docs/pt/tools-reference) não respondida continue automaticamente sem você. A continuação automática vem desativada por padrão; ative-a com a configuração [`askUserQuestionTimeout`](/docs/pt/settings-reference#askuserquestiontimeout). Esta variável é uma substituição para demonstrações e testes automatizados: quando definida, tem precedência sobre essa configuração e ativa a continuação automática mesmo quando a configuração não está definida ou é `never`. Definir `0` não desativa o timeout; fecha a caixa de diálogo imediatamente. Na v2.1.198 e na v2.1.199, a continuação automática vinha ativada por padrão com um timeout de `60000` (60 segundos). Requer Claude Code v2.1.198 ou posterior |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Defina como `1` para desativar todos os tipos de [subagente](/docs/pt/sub-agents) integrados, como Explore e Plan. Aplica-se apenas no modo não interativo (a flag `-p`). Útil para usuários do SDK que querem começar do zero. Isso também remove `general-purpose`, o subagente que o Claude Code executa quando uma chamada da ferramenta Agent omite `subagent_type`. Essa chamada então falha com [`subagent_type is required`](/docs/pt/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Defina como `1` para desativar todos os tipos de [subagente](/docs/pt/sub-agents) integrados, como Explore e Plan. Aplica-se apenas no modo não interativo (a flag `-p`). Útil para usuários do SDK que querem começar do zero. Isso também remove o `general-purpose`, o subagente que o Claude Code executa quando uma chamada da ferramenta Agent omite `subagent_type`. Essa chamada então falha com [`subagent_type is required`](/docs/pt/errors#subagent-type-is-required) |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Defina como `1` para omitir o prefixo `mcp__<server>__` nos nomes de ferramentas de servidores MCP criados pelo SDK. As ferramentas usam seus nomes originais. Apenas para uso com o SDK |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Defina como `1` para omitir o prefixo `mcp__<server>__` nos nomes de ferramentas de servidores MCP criados pelo SDK. As ferramentas usam seus nomes originais. Apenas para uso do SDK |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout de travamento em milissegundos para subagentes. Padrão `600000` (10 minutos); se você aumentar `CLAUDE_STREAM_IDLE_TIMEOUT_MS` enquanto o watchdog de stream estiver ativo, o padrão aumenta junto, como descrito em [Lidar com respostas de API lentas ou travadas](/docs/pt/agent-sdk/typescript#handle-slow-or-stalled-api-responses). O timer é reiniciado a cada evento de progresso do streaming; se nenhum progresso chegar dentro da janela, o Claude Code interrompe o subagente e relata o travamento ao pai |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout de travamento em milissegundos para subagentes. Padrão `600000` (10 minutos); se você aumentar `CLAUDE_STREAM_IDLE_TIMEOUT_MS` enquanto o watchdog de stream está ativo, o padrão aumenta junto, conforme descrito em [Lidar com respostas lentas ou travadas da API](/docs/pt/agent-sdk/typescript#handle-slow-or-stalled-api-responses). O timer é reiniciado a cada evento de progresso de streaming; se nenhum progresso chegar dentro da janela, o Claude Code aborta o subagente e informa o travamento ao pai |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Define a porcentagem (1-100) da janela de compactação automática na qual a compactação automática é acionada. Use valores mais baixos, como `50`, para compactar mais cedo; a variável não pode aumentar o limite, então valores acima da porcentagem padrão são ignorados. Aplica-se apenas em sessões que [compactam antes do limite de contexto do modelo](/docs/pt/model-config#context-window-and-auto-compaction). Aplica-se tanto às conversas principais quanto aos subagentes |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Define a porcentagem (1-100) da janela de compactação automática na qual a compactação automática é acionada. Use valores menores, como `50`, para compactar mais cedo; a variável não pode elevar o limite, então valores acima da porcentagem padrão são ignorados. Aplica-se apenas em sessões que [compactam antes do limite de contexto do modelo](/docs/pt/model-config#context-window-and-auto-compaction). Aplica-se tanto às conversas principais quanto aos subagentes |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Defina como `1` para forçar a ativação do envio automático para segundo plano de tarefas de agente de longa duração. Quando ativado, os subagentes são movidos para segundo plano após executarem por aproximadamente dois minutos. Também ativa o [envio automático para segundo plano de chamadas longas de ferramentas MCP](/docs/pt/mcp#automatic-backgrounding-of-long-tool-calls) no modo não interativo no Claude Code v2.1.212 ou posterior |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Defina como `1` para forçar a ativação do envio automático para segundo plano de tarefas de agente de longa duração. Quando ativada, os subagentes são movidos para segundo plano após serem executados por aproximadamente dois minutos. Também ativa o [envio automático para segundo plano de chamadas longas de ferramentas MCP](/docs/pt/mcp#automatic-backgrounding-of-long-tool-calls) no modo não interativo no Claude Code v2.1.212 ou posterior |

208| `CLAUDE_AX_PREPARK_MS` | No [modo de leitor de tela](/docs/pt/accessibility), quantos milissegundos o Claude Code espera antes de escrever uma linha nova ou alterada. Padrão `0`, então o Claude Code não espera. Antes da v2.1.287, o padrão era `50`. O Claude Code limita a espera a `5000`. Requer Claude Code v2.1.233 ou posterior |208| `CLAUDE_AX_PREPARK_MS` | No [modo de leitor de tela](/docs/pt/accessibility), quantos milissegundos o Claude Code espera antes de escrever uma linha nova ou alterada. Padrão `0`, então o Claude Code não espera. Antes da v2.1.287, o padrão era `50`. O Claude Code limita a espera a `5000`. Requer Claude Code v2.1.233 ou posterior |

209| `CLAUDE_AX_SCREEN_READER` | Defina como `1` para renderizar uma saída compatível com leitores de tela: texto simples sem bordas decorativas ou animações. Defina como `0` para forçar a desativação do modo de leitor de tela mesmo quando [`axScreenReader`](/docs/pt/settings-reference#axscreenreader) é `true`. A flag [`--ax-screen-reader`](/docs/pt/cli-reference#cli-flags) tem precedência. Requer Claude Code v2.1.181 ou posterior |209| `CLAUDE_AX_SCREEN_READER` | Defina como `1` para renderizar uma saída adequada a leitores de tela: texto plano sem bordas decorativas ou animações. Defina como `0` para forçar a desativação do modo de leitor de tela mesmo quando [`axScreenReader`](/docs/pt/settings-reference#axscreenreader) for `true`. A flag [`--ax-screen-reader`](/docs/pt/cli-reference#cli-flags) tem precedência. Requer Claude Code v2.1.181 ou posterior |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | No [modo de leitor de tela](/docs/pt/accessibility), quantos milissegundos o Claude Code retém a primeira renderização da interface após a linha de confirmação de inicialização, para que seu leitor de tela possa falar a linha por completo antes que uma nova saída a interrompa. Padrão `3000`. Defina `0` para renderizar imediatamente. O Claude Code limita a retenção a `600000` (10 minutos). Sua primeira tecla pressionada encerra a retenção antecipadamente. Requer Claude Code v2.1.217 ou posterior |210| `CLAUDE_AX_STARTUP_QUIET_MS` | No [modo de leitor de tela](/docs/pt/accessibility), quantos milissegundos o Claude Code retém a primeira renderização da interface após a linha de confirmação de inicialização, para que seu leitor de tela possa falar a linha por completo antes que uma nova saída a interrompa. Padrão `3000`. Defina `0` para renderizar imediatamente. O Claude Code limita a retenção a `600000` (10 minutos). Seu primeiro pressionamento de tecla encerra a retenção antecipadamente. Requer Claude Code v2.1.217 ou posterior |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retorna ao diretório de trabalho original após cada comando Bash ou PowerShell na sessão principal |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Retorna ao diretório de trabalho original após cada comando Bash ou PowerShell na sessão principal |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos para o watchdog de inatividade de streaming no nível de bytes; quando definida, tem precedência sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para esse watchdog e deixa o watchdog no nível de eventos inalterado. O Claude Code limita esta variável a um valor entre 10 segundos e 30 minutos. Requer Claude Code v2.1.210 ou posterior |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos para o watchdog de inatividade de streaming em nível de bytes; quando definida, tem precedência sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para esse watchdog e deixa o watchdog em nível de eventos inalterado. O Claude Code restringe esta variável a um valor entre 10 segundos e 30 minutos. Requer Claude Code v2.1.210 ou posterior |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Caminho para um arquivo que uma ferramenta externa, como um listener de bloqueio de tela, cria quando você desbloqueia a tela e exclui quando você a bloqueia. Enquanto o arquivo existir, o Claude Code omite as [notificações push móveis do Remote Control](/docs/pt/remote-control#mobile-push-notifications), para que você pare de receber pushes enquanto estiver usando ativamente o computador. Quando o arquivo estiver ausente ou ilegível, as notificações são enviadas normalmente. O Claude Code verifica o arquivo uma vez por evento que dispara push, em vez de consultá-lo periodicamente. Requer Claude Code v2.1.181 ou posterior |213| `CLAUDE_CLIENT_PRESENCE_FILE` | Caminho para um arquivo que uma ferramenta externa, como um listener de bloqueio de tela, cria quando você desbloqueia a tela e exclui quando você a bloqueia. Enquanto o arquivo existir, o Claude Code ignora as [notificações push móveis do Remote Control](/docs/pt/remote-control#mobile-push-notifications), então você deixa de receber pushes enquanto usa ativamente o computador. Quando o arquivo está ausente ou ilegível, as notificações são enviadas normalmente. O Claude Code verifica o arquivo uma vez por evento que aciona um push, em vez de consultá-lo periodicamente. Requer Claude Code v2.1.181 ou posterior |

214| `CLAUDE_CODE_ACCESSIBILITY` | Defina como `1` para manter o cursor nativo do terminal visível e desativar o indicador de cursor com texto invertido. Permite que ampliadores de tela, como o Zoom do macOS, acompanhem a posição do cursor |214| `CLAUDE_CODE_ACCESSIBILITY` | Defina como `1` para manter o cursor nativo do terminal visível e desativar o indicador de cursor com texto invertido. Permite que ampliadores de tela, como o Zoom do macOS, acompanhem a posição do cursor |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Defina como `1` para carregar arquivos de memória de diretórios especificados com `--add-dir`. Carrega `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` e `CLAUDE.local.md`. Por padrão, diretórios adicionais não carregam arquivos de memória |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Defina como `1` para carregar arquivos de memória de diretórios especificados com `--add-dir`. Carrega `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` e `CLAUDE.local.md`. Por padrão, diretórios adicionais não carregam arquivos de memória |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Defina como `1` para redesenhar a tela inteira a cada quadro na [renderização em tela cheia](/docs/pt/fullscreen) em vez de enviar atualizações incrementais. Use isto se o modo de tela cheia mostrar fragmentos de texto desatualizados ou fora do lugar. O Claude Code ativa isto automaticamente para sessões em segundo plano e para a [visualização de agentes](/docs/pt/agent-view) no Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Defina como `1` para redesenhar a tela inteira a cada quadro na [renderização em tela cheia](/docs/pt/fullscreen) em vez de enviar atualizações incrementais. Use isso se o modo de tela cheia mostrar fragmentos de texto desatualizados ou fora do lugar. O Claude Code ativa isso automaticamente para sessões em segundo plano e para a [visualização de agentes](/docs/pt/agent-view) no Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Defina como `1` para enviar o parâmetro de [esforço](/docs/pt/model-config#adjust-effort-level) em toda requisição, mesmo quando o Claude Code não reconhece o ID do modelo como compatível com esforço. Use isto ao rotear por um [gateway de LLM](/docs/pt/llm-gateway) ou provedor terceiro que serve modelos sob identificadores personalizados. Modelos que rejeitam o parâmetro de esforço na API, incluindo os modelos Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1 e Haiku 4.5, continuam excluídos para que as requisições não falhem |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Defina como `1` para enviar o parâmetro de [esforço](/docs/pt/model-config#adjust-effort-level) em toda requisição, mesmo quando o Claude Code não reconhece o ID do modelo como compatível com esforço. Use isso ao rotear por meio de um [gateway de LLM](/docs/pt/llm-gateway) ou provedor terceirizado que serve modelos sob identificadores personalizados. Modelos que rejeitam o parâmetro de esforço na API, incluindo os modelos Claude 3, Sonnet 4.0 e 4.5, Opus 4.0 e 4.1 e Haiku 4.5, continuam excluídos para que as requisições não falhem |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo em milissegundos no qual as credenciais devem ser atualizadas (ao usar [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo em milissegundos no qual as credenciais devem ser atualizadas (ao usar [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper)) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para impedir que o Claude Code abra o navegador automaticamente quando um novo [artefato](/docs/pt/artifacts#create-an-artifact) for publicado |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para impedir que o Claude Code abra o navegador automaticamente quando um novo [artefato](/docs/pt/artifacts#create-an-artifact) é publicado |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Defina como `0` para impedir que o Claude leia e responda a [comentários em um artefato](/docs/pt/artifacts#collect-comments-on-an-artifact). Não tem efeito quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [desativou os artefatos](/docs/pt/artifacts#availability). Requer Claude Code v2.1.221 ou posterior |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Defina como `0` para impedir que o Claude leia e responda a [comentários em um artefato](/docs/pt/artifacts#collect-comments-on-an-artifact). Não tem efeito quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [desativou os artefatos](/docs/pt/artifacts#availability). Requer Claude Code v2.1.221 ou posterior |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Defina como `0` para impedir que o Claude [responda por conta própria a comentários enviados a ele](/docs/pt/artifacts#let-claude-reply-to-comments-on-its-own). Requer Claude Code v2.1.228 ou posterior |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Defina como `0` para impedir que o Claude [responda por conta própria aos comentários enviados a ele](/docs/pt/artifacts#let-claude-reply-to-comments-on-its-own). Requer Claude Code v2.1.228 ou posterior |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir o [bloco de atribuição](/docs/pt/llm-gateway-protocol#system-prompt-attribution-block), que contém a versão do cliente e uma impressão digital do prompt, do início do system prompt. O cache em uma conexão direta com a API da Anthropic não é afetado em nenhum dos casos. Em algumas configurações de conexão direta, o Claude Code mantém o bloco nas requisições do classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) mesmo quando você define `0`. Em [Bloco de atribuição do system prompt](/docs/pt/llm-gateway-protocol#system-prompt-attribution-block), verifique quais conexões e credenciais isso abrange. Antes da v2.1.181, o bloco incluía um token por requisição em URLs base personalizadas e conexões com o Microsoft Foundry, então, nessas versões, defina-a como `0` quando seu gateway de LLM fizer cache com base no corpo da requisição ou encaminhar requisições a um provedor terceiro, ou quando você se conectar diretamente ao Microsoft Foundry |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir o [bloco de atribuição](/docs/pt/llm-gateway-protocol#system-prompt-attribution-block), que contém a versão do cliente e uma impressão digital do prompt, do início do system prompt. O cache em uma conexão direta com a Anthropic API não é afetado em nenhum dos casos. Em algumas configurações de conexão direta, o Claude Code mantém o bloco nas requisições do classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) mesmo quando você define `0`. Em [Bloco de atribuição do system prompt](/docs/pt/llm-gateway-protocol#system-prompt-attribution-block), verifique quais conexões e credenciais isso abrange. Antes da v2.1.181, o bloco incluía um token por requisição em URLs base personalizadas e em conexões do Microsoft Foundry, então, nessas versões, defina-a como `0` quando seu gateway de LLM fizer cache com base no corpo da requisição ou encaminhar requisições para um provedor terceirizado, ou quando você se conectar diretamente ao Microsoft Foundry |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` está ativada, segundos entre lembretes para o Claude verificar [subagentes em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) que ainda estão em execução. Aceita apenas um inteiro simples de `1` a `86400`; qualquer outro valor ou grafia é lido como não definido. Quando não definida, não há lembretes de verificação. Requer Claude Code v2.1.248 ou posterior |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` está ativada, segundos entre os lembretes ao Claude para verificar [subagentes em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) que ainda estão em execução. Aceita apenas um inteiro simples de `1` a `86400`; qualquer outro valor ou grafia é lido como não definido. Quando não definida, não há lembretes de verificação. Requer Claude Code v2.1.248 ou posterior |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Define a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) em tokens, de `100000` a `1000000`. Aceita apenas um inteiro simples, como `500000`: um valor como `500k` é lido como `500` e ajustado ao mínimo de 100K. A janela efetiva também é limitada à janela de contexto do modelo. Tem precedência sobre o comando `/autocompact`, a flag `--autocompact` e a configuração `autoCompactWindow`. O `used_percentage` da linha de status sempre mede em relação à janela de contexto completa do modelo, então, uma vez definida esta variável, essa porcentagem não indica mais quando a compactação será executada |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Define a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) em tokens, de `100000` a `1000000`. Aceita apenas um inteiro simples, como `500000`: um valor como `500k` é lido como `500` e ajustado ao mínimo de 100K. A janela efetiva também é limitada à janela de contexto do modelo. Tem precedência sobre o comando `/autocompact`, a flag `--autocompact` e a configuração `autoCompactWindow`. O `used_percentage` da linha de status sempre mede em relação à janela de contexto completa do modelo, então, depois que esta variável é definida, essa porcentagem não indica mais quando a compactação será executada |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescreve a [conexão automática com a IDE](/docs/pt/vs-code). Por padrão, o Claude Code se conecta automaticamente quando iniciado dentro do terminal integrado de uma IDE compatível. Defina como `false` para impedir isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falhar, como quando o tmux oculta o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/docs/pt/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sobrescreve a [conexão automática com a IDE](/docs/pt/vs-code). Por padrão, o Claude Code se conecta automaticamente quando iniciado dentro do terminal integrado de uma IDE compatível. Defina como `false` para impedir isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falhar, como quando o tmux oculta o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/docs/pt/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla se o Claude Code pede ao servidor para [revisar as ações do modo auto](/docs/pt/permission-modes#server-side-classifier-review). Defina como `0` para usar as próprias requisições de classificador do Claude Code em vez disso. Em uma conexão direta com a API da Anthropic, requer v2.1.281 ou posterior. A seção vinculada lista quais sessões consultam o servidor quando a variável não está definida, e a partir de qual versão. Requer Claude Code v2.1.271 ou posterior |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla se o Claude Code pede ao servidor para [revisar as ações do modo auto](/docs/pt/permission-modes#server-side-classifier-review). Defina como `0` para usar as próprias requisições de classificador do Claude Code em vez disso. Em uma conexão direta com a Anthropic API, requer v2.1.281 ou posterior. A seção vinculada lista quais sessões consultam o servidor quando a variável não está definida, e a partir de qual versão. Requer Claude Code v2.1.271 ou posterior |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que o Claude Code espera até que a cadeia padrão de provedores de credenciais da AWS produza credenciais antes que a requisição falhe com [`AWS default-chain credential resolve timed out`](/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente-o quando uma etapa da sua cadeia legitimamente precisar de mais tempo, como um login SSO baseado em navegador com MFA por meio de um wrapper como o `aws-vault`. Aplica-se sempre que o Claude Code assina com a cadeia padrão: [Amazon Bedrock](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) e o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint). Requer Claude Code v2.1.207 ou posterior |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que o Claude Code espera a cadeia padrão de provedores de credenciais da AWS produzir credenciais antes que a requisição falhe com [`AWS default-chain credential resolve timed out`](/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente-o quando uma etapa da sua cadeia legitimamente precisar de mais tempo, como um login SSO baseado em navegador com MFA por meio de um wrapper como `aws-vault`. Aplica-se sempre que o Claude Code assina com a cadeia padrão: [Amazon Bedrock](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) e o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint). Requer Claude Code v2.1.207 ou posterior |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Defina como `0` para desativar o [diff dos arquivos que mudaram enquanto um comando Bash era executado](/docs/pt/hooks#bash), ou `1` para registrá-lo em todos os modos de permissão. Tem precedência sobre a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled). Requer Claude Code v2.1.269 ou posterior |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Defina como `0` para desativar o [diff dos arquivos alterados enquanto um comando Bash era executado](/docs/pt/hooks#bash), ou `1` para registrá-lo em todos os modos de permissão. Tem precedência sobre a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled). Requer Claude Code v2.1.269 ou posterior |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa relatar um status ocioso ao seu host ao final de cada turno, mesmo enquanto trabalho em segundo plano ainda estiver em execução. Por padrão, a sessão continua relatando um status de execução após o fim do turno enquanto um trabalho em segundo plano, como um agente em segundo plano ou uma execução de [workflow](/docs/pt/workflows), ainda estiver ativo. Isso evita que um host que observa o status, como uma lista de sessões remotas, anuncie que o Claude está aguardando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor de desenvolvimento, não mantêm o status de execução. O padrão de status de execução e a desativação com `0` requerem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status de execução |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa informar um status ocioso ao seu host ao final de cada turno, mesmo enquanto ainda há trabalho em segundo plano em execução. Por padrão, a sessão continua informando um status de execução após o fim do turno enquanto trabalho em segundo plano, como um agente em segundo plano ou uma execução de [workflow](/docs/pt/workflows), ainda está ativo. Isso evita que um host que monitora o status, como uma lista de sessões remotas, anuncie que o Claude está aguardando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor de desenvolvimento, não mantêm o status de execução. O padrão de status de execução e a opção de desativação com `0` exigem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status de execução |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Definida automaticamente nos subprocessos da ferramenta Bash e de [comandos de hook](/docs/pt/hooks) enquanto a sessão tem uma conexão ativa do [Remote Control](/docs/pt/remote-control), e removida quando a conexão termina. O valor é o ID da sessão no formato `session_`, o mesmo identificador que aparece na URL `claude.ai/code` da sessão, para que um script possa apontar de volta para a sessão que o executou. Requer Claude Code v2.1.199 ou posterior. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), leia `CLAUDE_CODE_REMOTE_SESSION_ID` em vez disso |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Definida automaticamente nos subprocessos da ferramenta Bash e de [comandos de hook](/docs/pt/hooks) enquanto a sessão tem uma conexão ativa do [Remote Control](/docs/pt/remote-control), e removida quando a conexão termina. O valor é o ID da sessão no formato `session_`, o mesmo identificador que aparece na URL `claude.ai/code` da sessão, para que um script possa criar um link de volta para a sessão que o executou. Requer Claude Code v2.1.199 ou posterior. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), leia `CLAUDE_CODE_REMOTE_SESSION_ID` em vez disso |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Defina como `0` para fazer o Claude Code ler o byte `0x08`, também escrito `^H`, como Backspace simples, ou `1` para lê-lo como Ctrl+Backspace. Qualquer um dos valores substitui o padrão da plataforma. Por padrão, o Claude Code o lê como Ctrl+Backspace no Windows, exceto quando `TERM_PROGRAM` é `mintty` ou `TERM` é `cygwin`, e como Backspace simples no macOS e no Linux. Defina `0` em um terminal do Windows em que o [Backspace exclui uma palavra inteira](/docs/pt/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Defina como `0` para fazer o Claude Code ler o byte `0x08`, também escrito `^H`, como Backspace simples, ou `1` para lê-lo como Ctrl+Backspace. Qualquer um dos valores substitui o padrão da plataforma. Por padrão, o Claude Code o lê como Ctrl+Backspace no Windows, exceto quando `TERM_PROGRAM` é `mintty` ou `TERM` é `cygwin`, e como Backspace simples no macOS e no Linux. Defina `0` em um terminal do Windows em que [o Backspace exclui uma palavra inteira](/docs/pt/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

232| `CLAUDE_CODE_CERT_STORE` | Lista separada por vírgulas de fontes de certificados de CA para conexões TLS. `bundled` é o conjunto de CAs da Mozilla distribuído com o Claude Code. `system` é o repositório de confiança do sistema operacional, lido apenas em runtimes com `tls.getCACertificates`: o binário nativo, ou Node 22.15 ou posterior para instalações via npm. Consulte [Repositório de certificados de CA](/docs/pt/network-config#ca-certificate-store). O padrão é `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | Lista separada por vírgulas de fontes de certificados de CA para conexões TLS. `bundled` é o conjunto de CAs da Mozilla distribuído com o Claude Code. `system` é o repositório de confiança do sistema operacional, lido apenas em runtimes com `tls.getCACertificates`: o binário nativo, ou Node 22.15 ou posterior para instalações via npm. Consulte [Repositório de certificados de CA](/docs/pt/network-config#ca-certificate-store). O padrão é `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | Definida como `1` em subprocessos que o Claude Code inicia por meio das ferramentas Bash, PowerShell e Monitor, comandos de [hook](/docs/pt/hooks) e comandos da [linha de status](/docs/pt/statusline). Não é definida para subprocessos de [servidor MCP](/docs/pt/mcp) stdio, que são de longa duração e sobrevivem à sessão que os iniciou. Diferentemente de `CLAUDECODE`, esta só é definida pelo próprio Claude Code quando ele inicia um subprocesso, e não por extensões de IDE, então distingue de forma confiável uma sessão aninhada de um `claude` de nível superior iniciado em um terminal integrado à IDE. Uma TUI `claude` interativa aninhada iniciada dessa forma é automaticamente excluída de `--resume`, `--continue`, do histórico da seta para cima e da lista `claude agents`. Sessões não interativas `claude -p` continuam sendo persistidas. Defina `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para sobrescrever essa exclusão. Requer Claude Code v2.1.172 ou posterior |233| `CLAUDE_CODE_CHILD_SESSION` | Definida como `1` em subprocessos que o Claude Code inicia por meio das ferramentas Bash, PowerShell e Monitor, em comandos de [hook](/docs/pt/hooks) e em comandos de [linha de status](/docs/pt/statusline). Não é definida para subprocessos de [servidor MCP](/docs/pt/mcp) stdio, que são de longa duração e sobrevivem à sessão que os iniciou. Diferentemente de `CLAUDECODE`, esta só é definida pelo próprio Claude Code quando ele inicia um subprocesso, e não por extensões de IDE, então ela distingue de forma confiável uma sessão aninhada de um `claude` de nível superior iniciado em um terminal integrado à IDE. Uma TUI interativa `claude` aninhada iniciada dessa forma é automaticamente excluída de `--resume`, `--continue`, do histórico da seta para cima e da lista `claude agents`. Sessões não interativas `claude -p` continuam sendo persistidas. Defina `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para sobrescrever essa exclusão. Requer Claude Code v2.1.172 ou posterior |

234| `CLAUDE_CODE_CLIENT_CERT` | Caminho para o arquivo de certificado do cliente para autenticação mTLS |234| `CLAUDE_CODE_CLIENT_CERT` | Caminho para o arquivo de certificado do cliente para autenticação mTLS |

235| `CLAUDE_CODE_CLIENT_KEY` | Caminho para o arquivo de chave privada do cliente para autenticação mTLS |235| `CLAUDE_CODE_CLIENT_KEY` | Caminho para o arquivo de chave privada do cliente para autenticação mTLS |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Senha para a CLAUDE\_CODE\_CLIENT\_KEY criptografada (opcional) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase secreta para a CLAUDE\_CODE\_CLIENT\_KEY criptografada (opcional) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Removida na v2.1.186 e agora não tem efeito. Anteriormente definia um timeout separado para a fase de conexão, TLS e cabeçalhos de resposta de uma requisição de API em streaming. Use `API_TIMEOUT_MS` para o timeout por requisição. Para a fase de cabeçalhos de resposta de uma requisição em streaming, consulte `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Removida na v2.1.186 e agora sem efeito. Anteriormente definia um timeout separado para a fase de conexão, TLS e cabeçalhos de resposta de uma requisição de streaming à API. Use `API_TIMEOUT_MS` para o timeout por requisição. Para a fase de cabeçalhos de resposta de uma requisição de streaming, consulte `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescreve o caminho do arquivo de log de depuração. Apesar do nome, este é um caminho de arquivo, não um diretório. Requer que o modo de depuração seja ativado separadamente via `--debug`, `/debug` ou a variável de ambiente `DEBUG`: definir apenas esta variável não ativa o logging. A flag [`--debug-file`](/docs/pt/cli-reference#cli-flags) faz as duas coisas de uma vez. O padrão é `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Sobrescreve o caminho do arquivo de log de depuração. Apesar do nome, este é um caminho de arquivo, não um diretório. Requer que o modo de depuração seja ativado separadamente via `--debug`, `/debug` ou a variável de ambiente `DEBUG`: definir apenas esta variável não ativa o log. A flag [`--debug-file`](/docs/pt/cli-reference#cli-flags) faz as duas coisas de uma vez. O padrão é `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nível mínimo de log gravado no arquivo de log de depuração. Valores: `verbose`, `debug` (padrão), `info`, `warn`, `error`. Defina como `verbose` para incluir diagnósticos de alto volume, como a saída completa do comando da linha de status, ou aumente para `error` para reduzir o ruído |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nível mínimo de log gravado no arquivo de log de depuração. Valores: `verbose`, `debug` (padrão), `info`, `warn`, `error`. Defina como `verbose` para incluir diagnósticos de alto volume, como a saída completa do comando da linha de status, ou aumente para `error` para reduzir o ruído |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Defina como `1` para desativar o suporte à [janela de contexto de 1M](/docs/pt/model-config#extended-context). Quando definida, as variantes de modelo de 1M ficam indisponíveis no seletor de modelo, e o Claude Code restringe as sessões em modelos com uma janela nativa de 1M, como o [Sonnet 5.5](/docs/pt/model-config#sonnet-5-5-and-sonnet-5-context-window) e os modelos Fable, a uma janela de 200K; consulte [Contexto estendido](/docs/pt/model-config#extended-context) para saber como a restrição é aplicada. Útil para ambientes corporativos com requisitos de conformidade. Para seu papel na correção da janela para um ID de modelo `[1m]` não reconhecido, consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Defina como `1` para desativar o suporte à [janela de contexto de 1M](/docs/pt/model-config#extended-context). Quando definida, as variantes de modelo de 1M ficam indisponíveis no seletor de modelos, e o Claude Code limita as sessões em modelos com uma janela nativa de 1M, como o [Sonnet 5.5](/docs/pt/model-config#sonnet-5-5-and-sonnet-5-context-window) e os modelos Fable, a uma janela de 200K; consulte [Contexto estendido](/docs/pt/model-config#extended-context) para saber como essa limitação é aplicada. Útil para ambientes corporativos com requisitos de conformidade. Para sua função na correção da janela para um ID de modelo `[1m]` não reconhecido, consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Defina como `1` para desativar o [raciocínio adaptativo](/docs/pt/model-config#adjust-effort-level) no Opus 4.6 e no Sonnet 4.6 e recorrer ao orçamento fixo de pensamento controlado por `MAX_THINKING_TOKENS`. Não tem efeito nos [modelos Fable](/docs/pt/model-config#extended-thinking), no Sonnet 5 e posteriores, nem no Opus 4.7 e posteriores, que sempre usam raciocínio adaptativo |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Defina como `1` para desativar o [raciocínio adaptativo](/docs/pt/model-config#adjust-effort-level) no Opus 4.6 e no Sonnet 4.6 e recorrer ao orçamento fixo de pensamento controlado por `MAX_THINKING_TOKENS`. Não tem efeito nos [modelos Fable](/docs/pt/model-config#extended-thinking), no Sonnet 5 e posteriores, ou no Opus 4.7 e posteriores, que sempre usam raciocínio adaptativo |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Defina como `1` para impedir que o Claude Code mescle por chave os blocos `env` das [configurações gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier) entre fontes de administrador, de modo que apenas o bloco `env` inteiro da fonte de maior prioridade se aplique, como antes da v2.1.223. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.223 ou posterior |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Defina como `1` para impedir que o Claude Code mescle por chave os blocos `env` das [configurações gerenciadas](/docs/pt/managed-settings#precedence-within-the-managed-tier) entre as fontes de administrador, de modo que apenas o bloco `env` inteiro da fonte de maior prioridade se aplique, como antes da v2.1.223. Defina-a no ambiente que inicia o Claude Code, já que o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.223 ou posterior |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Defina como `1` para desativar a [ferramenta advisor](/docs/pt/advisor). O comando `/advisor` fica indisponível, qualquer `advisorModel` configurado é ignorado, e a flag `--advisor` é aceita, mas não tem efeito, então scripts existentes que a passam continuam funcionando sem erros |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Defina como `1` para desativar a [ferramenta advisor](/docs/pt/advisor). O comando `/advisor` fica indisponível, qualquer `advisorModel` configurado é ignorado e a flag `--advisor` é aceita, mas não tem efeito, então scripts existentes que a passam continuam funcionando sem erros |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Defina como `1` para desativar os [agentes em segundo plano e a visualização de agentes](/docs/pt/agent-view): `claude agents`, `--bg`, `/background` e o supervisor sob demanda. Equivalente à configuração [`disableAgentView`](/docs/pt/settings-reference#disableagentview) |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Defina como `1` para desativar os [agentes em segundo plano e a visualização de agentes](/docs/pt/agent-view): `claude agents`, `--bg`, `/background` e o supervisor sob demanda. Equivalente à configuração [`disableAgentView`](/docs/pt/settings-reference#disableagentview) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Defina como `1` para desativar a [renderização em tela cheia](/docs/pt/fullscreen) e usar o renderizador clássico da tela principal. A conversa permanece no scrollback nativo do seu terminal, para que `Cmd+f` e o modo de cópia do tmux funcionem normalmente. Tem precedência sobre `CLAUDE_CODE_NO_FLICKER` e a configuração [`tui`](/docs/pt/settings-reference#tui). Você também pode alternar com `/tui default`. Não se aplica a sessões em segundo plano abertas a partir da [visualização de agentes](/docs/pt/agent-view), que sempre usam renderização em tela cheia |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Defina como `1` para desativar a [renderização em tela cheia](/docs/pt/fullscreen) e usar o renderizador clássico da tela principal. A conversa permanece no scrollback nativo do seu terminal, para que `Cmd+f` e o modo de cópia do tmux funcionem normalmente. Tem precedência sobre `CLAUDE_CODE_NO_FLICKER` e a configuração [`tui`](/docs/pt/settings-reference#tui). Você também pode alternar com `/tui default`. Não se aplica a sessões em segundo plano abertas a partir da [visualização de agentes](/docs/pt/agent-view), que sempre usam renderização em tela cheia |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Defina como `1` para desativar a ferramenta [Artifact](/docs/pt/artifacts), que publica a saída da sessão como uma página web privada no claude.ai. Depois que você a define, nenhum arquivo de configurações reativa a ferramenta. Para desativar a ferramenta a partir de um arquivo de configurações, defina [`enableArtifact`](/docs/pt/settings-reference#enableartifact) como `false`; a chave descontinuada [`disableArtifact`](/docs/pt/settings-reference#disableartifact) também a desativa |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Defina como `1` para desativar a ferramenta [Artifact](/docs/pt/artifacts), que publica a saída da sessão como uma página web privada no claude.ai. Depois de defini-la, nenhum arquivo de configurações reativa a ferramenta. Para desativar a ferramenta a partir de um arquivo de configurações, defina [`enableArtifact`](/docs/pt/settings-reference#enableartifact) como `false`; a chave descontinuada [`disableArtifact`](/docs/pt/settings-reference#disableartifact) também a desativa |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Defina como `1` para desativar o processamento de anexos. Menções de arquivos com a sintaxe `@` são enviadas como texto simples em vez de serem expandidas para o conteúdo do arquivo |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Defina como `1` para desativar o processamento de anexos. Menções a arquivos com a sintaxe `@` são enviadas como texto simples em vez de serem expandidas para o conteúdo do arquivo |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Defina como `1` para fazer um processo do Claude Code executar ele mesmo seu comando [`gcpAuthRefresh`](/docs/pt/settings-reference#gcpauthrefresh) ou [`awsAuthRefresh`](/docs/pt/settings-reference#awsauthrefresh) em vez de esperar enquanto outro processo o executa. Requer Claude Code v2.1.286 ou posterior |248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Defina como `1` para fazer um processo do Claude Code executar ele mesmo seu comando [`gcpAuthRefresh`](/docs/pt/settings-reference#gcpauthrefresh) ou [`awsAuthRefresh`](/docs/pt/settings-reference#awsauthrefresh) em vez de esperar enquanto outro processo o executa. Requer Claude Code v2.1.286 ou posterior |

249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Defina como `1` para desativar a [memória automática](/docs/pt/memory#auto-memory). Defina como `0` para forçar a ativação da memória automática mesmo quando o modo `--bare` ou [`autoMemoryEnabled: false`](/docs/pt/settings-reference#automemoryenabled) a desativaria. Quando desativada, o Claude não cria nem carrega arquivos de memória automática |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Defina como `1` para desativar a [memória automática](/docs/pt/memory#auto-memory). Defina como `0` para forçar a ativação da memória automática mesmo quando o modo `--bare` ou [`autoMemoryEnabled: false`](/docs/pt/settings-reference#automemoryenabled) a desativaria. Quando desativada, o Claude não cria nem carrega arquivos de memória automática |

250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para desativar toda a funcionalidade de tarefas em segundo plano, incluindo o parâmetro `run_in_background` nas ferramentas Bash e de subagente, o envio automático para segundo plano e o atalho Ctrl+B |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para desativar toda a funcionalidade de tarefas em segundo plano, incluindo o parâmetro `run_in_background` nas ferramentas Bash e de subagente, o envio automático para segundo plano e o atalho Ctrl+B |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Defina como `1` para impedir que o Claude Code trate uma resposta em streaming do [Amazon Bedrock](/docs/pt/amazon-bedrock) com um cabeçalho `Content-Type` ausente ou vazio como o event stream binário do Amazon Bedrock. Por padrão, o Claude Code presume que um gateway removeu o cabeçalho de uma resposta que, de outra forma, não foi modificada, então ele decodifica o corpo e o streaming continua funcionando. Defina isto apenas para um gateway que também reemite o stream como server-sent events; o Claude Code então lê o corpo sem cabeçalho como server-sent events. Requer Claude Code v2.1.239 ou posterior |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Defina como `1` para impedir que o Claude Code trate uma resposta de streaming do [Amazon Bedrock](/docs/pt/amazon-bedrock) com um cabeçalho `Content-Type` ausente ou vazio como o stream de eventos binário do Amazon Bedrock. Por padrão, o Claude Code presume que um gateway removeu o cabeçalho de uma resposta que, fora isso, não foi modificada, então decodifica o corpo e o streaming continua funcionando. Defina esta variável apenas para um gateway que também reemite o stream como server-sent events; o Claude Code então lê o corpo sem cabeçalho como server-sent events. Requer Claude Code v2.1.239 ou posterior |

252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Defina como `1` para pular a verificação de que uma resposta em streaming do [Amazon Bedrock](/docs/pt/amazon-bedrock) carrega o content-type `application/vnd.amazon.eventstream`. Sem esta variável, quando uma resposta carrega um content-type diferente, o Claude Code faz a requisição falhar com um erro que nomeia esse tipo, o que significa que um [gateway ou proxy está transformando a resposta](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure o gateway para encaminhar o cabeçalho `Content-Type` e o corpo sem modificações, em vez de definir esta variável. Requer Claude Code v2.1.208 ou posterior |252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Defina como `1` para pular a verificação de que uma resposta de streaming do [Amazon Bedrock](/docs/pt/amazon-bedrock) carrega o content-type `application/vnd.amazon.eventstream`. Sem esta variável, quando uma resposta carrega um content-type diferente, o Claude Code falha a requisição com um erro que nomeia esse tipo, o que significa que um [gateway ou proxy está transformando a resposta](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure o gateway para encaminhar o cabeçalho `Content-Type` e o corpo sem modificações em vez de definir esta variável. Requer Claude Code v2.1.208 ou posterior |

253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Defina como `1` para interromper os comandos de shell em segundo plano em execução de uma [sessão em segundo plano](/docs/pt/agent-view), os workflows dinâmicos e, a partir da v2.1.198, os subagentes em segundo plano quando o [supervisor](/docs/pt/agent-view#the-supervisor-process) para, reinicia ou atualiza o processo dessa sessão, em vez de entregá-los ao próximo processo da sessão. Afeta apenas essa entrega: enviar uma sessão para segundo plano com `←` ou [`/background`](/docs/pt/agent-view#from-inside-a-session) ainda transfere o trabalho em andamento, e `CLAUDE_DISABLE_ADOPT` desativa ambos. Requer Claude Code v2.1.196 ou posterior |253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Defina como `1` para interromper os comandos de shell em segundo plano em execução de uma [sessão em segundo plano](/docs/pt/agent-view), os workflows dinâmicos e, a partir da v2.1.198, os subagentes em segundo plano quando o [supervisor](/docs/pt/agent-view#the-supervisor-process) parar, reiniciar ou atualizar o processo dessa sessão, em vez de entregá-los ao próximo processo da sessão. Afeta apenas essa transferência: enviar uma sessão para segundo plano com `←` ou [`/background`](/docs/pt/agent-view#from-inside-a-session) ainda transfere o trabalho em andamento, e `CLAUDE_DISABLE_ADOPT` desativa ambos. Requer Claude Code v2.1.196 ou posterior |

254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Defina como `1` para impedir que o Claude Code encerre [comandos de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) sob pressão de memória. Por padrão, no macOS e no Linux, o Claude Code encerra shells em segundo plano quando o sistema operacional relata pressão crítica de memória e a sessão está ociosa há 30 minutos sem nenhum turno ou subagente em execução. O Windows não tem sinal de pressão de memória, então esta variável não tem efeito lá. Requer Claude Code v2.1.193 ou posterior |254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Defina como `1` para impedir que o Claude Code encerre [comandos de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) sob pressão de memória do sistema. Por padrão, no macOS e no Linux, o Claude Code encerra shells em segundo plano quando o sistema operacional informa pressão crítica de memória do sistema e a sessão está ociosa há 30 minutos sem nenhum turno ou subagente em execução. O Windows não tem sinal de pressão de memória do sistema, então esta variável não tem efeito lá. Requer Claude Code v2.1.193 ou posterior |

255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Defina como `1` para desativar as [skills](/docs/pt/skills) e os workflows incluídos no Claude Code: skills e workflows incluídos são removidos por completo, enquanto comandos integrados como `/init` continuam podendo ser digitados, mas ficam ocultos para o modelo. `/doctor` continua podendo ser digitado, como os comandos integrados; oculte-o com `DISABLE_DOCTOR_COMMAND` em vez disso. Skills de plugins, `.claude/skills/` e `.claude/commands/` não são afetadas. Equivalente à configuração [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills) |255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Defina como `1` para desativar as [skills](/docs/pt/skills) e os workflows incluídos no Claude Code: skills e workflows incluídos são removidos completamente, enquanto comandos integrados como `/init` continuam podendo ser digitados, mas ficam ocultos do modelo. `/doctor` continua podendo ser digitado, como os comandos integrados; oculte-o com `DISABLE_DOCTOR_COMMAND` em vez disso. Skills de plugins, `.claude/skills/` e `.claude/commands/` não são afetadas. Equivalente à configuração [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills) |

256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Defina como `1` para manter as ferramentas de navegador do [Claude in Chrome](/docs/pt/chrome) disponíveis, omitindo a seção do Chrome do system prompt e a [skill incluída](/docs/pt/skills#bundled-skills) `/claude-in-chrome`. Para hosts que incorporam o Claude Code e fornecem sua própria orientação de navegador. Requer Claude Code v2.1.257 ou posterior |256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Defina como `1` para manter as ferramentas de navegador do [Claude in Chrome](/docs/pt/chrome) disponíveis enquanto omite a seção do Chrome do system prompt e a [skill incluída](/docs/pt/skills#bundled-skills) `/claude-in-chrome`. Para hosts que incorporam o Claude Code e fornecem suas próprias orientações de navegador. Requer Claude Code v2.1.257 ou posterior |

257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Defina como `1` para impedir o carregamento de quaisquer arquivos de memória CLAUDE.md no contexto, incluindo arquivos de memória de usuário, de projeto e de memória automática |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Defina como `1` para impedir o carregamento de quaisquer arquivos de memória CLAUDE.md no contexto, incluindo arquivos de memória de usuário, de projeto e de memória automática |

258| `CLAUDE_CODE_DISABLE_CRON` | Defina como `1` para desativar as [tarefas agendadas](/docs/pt/scheduled-tasks). A skill `/loop` e as ferramentas cron ficam indisponíveis e quaisquer tarefas já agendadas param de disparar, incluindo tarefas que já estão em execução no meio da sessão |258| `CLAUDE_CODE_DISABLE_CRON` | Defina como `1` para desativar as [tarefas agendadas](/docs/pt/scheduled-tasks). A skill `/loop` e as ferramentas de cron ficam indisponíveis e quaisquer tarefas já agendadas deixam de ser disparadas, incluindo tarefas que já estão em execução no meio da sessão |

259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Defina como `1` para desativar o limite de tempo nos prompts de [remoção de caminhos críticos](/docs/pt/permission-modes#critical-paths). No modo `auto`, o Claude Code passa a enviar essas remoções ao classificador, e no modo `bypassPermissions` o prompt aguarda sua resposta. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Defina como `1` para desativar o limite de tempo nos prompts de [remoção de caminhos críticos](/docs/pt/permission-modes#critical-paths). No modo `auto`, o Claude Code então envia essas remoções ao classificador, e no modo `bypassPermissions` o prompt aguarda sua resposta. Defina-a no ambiente que inicia o Claude Code, já que o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |

260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover das requisições de API os cabeçalhos de requisição `anthropic-beta` de pré-lançamento, os campos do corpo associados a eles e os campos beta de schema de ferramentas, como `defer_loading` e `eager_input_streaming`. Use isto quando um gateway de proxy rejeitar requisições com um erro `Unexpected value(s)` para o cabeçalho `anthropic-beta` ou um erro `Extra inputs are not permitted`. [Desativar recursos de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) lista o que a variável remove, incluindo o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search), e o que o Claude Code continua enviando |260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover das requisições à API os cabeçalhos de requisição `anthropic-beta` de pré-lançamento, os campos do corpo que os acompanham e os campos beta de esquema de ferramentas, como `defer_loading` e `eager_input_streaming`. Use isso quando um gateway proxy rejeitar requisições com um erro `Unexpected value(s)` para o cabeçalho `anthropic-beta` ou um erro `Extra inputs are not permitted`. [Desativar recursos de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) lista o que a variável remove, incluindo o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search), e o que o Claude Code continua enviando |

261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Defina como `1` para desativar os [subagentes Explore e Plan](/docs/pt/sub-agents#built-in-subagents) integrados. O Claude passa a explorar com suas ferramentas de busca ou com o subagente de uso geral, e o [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) lê arquivos diretamente em vez de iniciar agentes Explore e Plan. Subagentes personalizados chamados `Explore` ou `Plan` não são afetados. Para remover todos os tipos de subagente integrados no Agent SDK ou no modo não interativo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` em vez disso. Requer Claude Code v2.1.198 ou posterior |261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Defina como `1` para desativar os [subagentes Explore e Plan](/docs/pt/sub-agents#built-in-subagents) integrados. O Claude explora com suas ferramentas de busca ou com o subagente de uso geral, e o [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode) lê os arquivos diretamente em vez de iniciar os agentes Explore e Plan. Subagentes personalizados chamados `Explore` ou `Plan` não são afetados. Para remover todos os tipos de subagente integrados no Agent SDK ou no modo não interativo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` em vez disso. Requer Claude Code v2.1.198 ou posterior |

262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desativar o [modo rápido](/docs/pt/fast-mode) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desativar o [modo rápido](/docs/pt/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desativar as pesquisas de qualidade de sessão "How is Claude doing?". As pesquisas também são desativadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definida, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` as reative. Para definir uma taxa de amostragem em vez de desativá-las completamente, use a configuração [`feedbackSurveyRate`](/docs/pt/settings-reference#feedbacksurveyrate). Consulte [Pesquisas de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys) |263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desativar as pesquisas de qualidade de sessão "How is Claude doing?". As pesquisas também são desativadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definida, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` as reative. Para definir uma taxa de amostragem em vez de desativá-las por completo, use a configuração [`feedbackSurveyRate`](/docs/pt/settings-reference#feedbacksurveyrate). Consulte [Pesquisas de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys) |

264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desativar o [checkpointing](/docs/pt/checkpointing) de arquivos. O comando `/rewind` não conseguirá restaurar alterações de código. Sobrescreve a configuração [`fileCheckpointingEnabled`](/docs/pt/settings-reference#filecheckpointingenabled) |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desativar o [checkpointing](/docs/pt/checkpointing) de arquivos. O comando `/rewind` não conseguirá restaurar alterações de código. Sobrescreve a configuração [`fileCheckpointingEnabled`](/docs/pt/settings-reference#filecheckpointingenabled) |

265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Defina como `1` para remover do contexto do Claude as instruções integradas de fluxo de trabalho de commit e PR e o snapshot do status do git. Útil ao usar suas próprias skills de fluxo de trabalho do git. Tem precedência sobre a configuração [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions) quando definida |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Defina como `1` para remover do contexto do Claude as instruções integradas de fluxo de trabalho de commit e PR e o snapshot do status do git. Útil ao usar suas próprias skills de fluxo de trabalho do git. Tem precedência sobre a configuração [`includeGitInstructions`](/docs/pt/settings-reference#includegitinstructions) quando definida |

266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para impedir o remapeamento automático do Opus 4.0 e 4.1 para a versão atual do Opus na API da Anthropic. Use quando quiser intencionalmente fixar um modelo mais antigo. O remapeamento não é executado no Amazon Bedrock, no Google Cloud's Agent Platform nem no Microsoft Foundry |266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para impedir o remapeamento automático do Opus 4.0 e 4.1 para a versão atual do Opus na Anthropic API. Use quando quiser intencionalmente fixar um modelo mais antigo. O remapeamento não é executado no Amazon Bedrock, no Google Cloud's Agent Platform nem no Microsoft Foundry |

267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Defina como `1` para impedir que o Claude Code no [Amazon Bedrock](/docs/pt/amazon-bedrock#when-a-model-is-disabled-mid-session) e no [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai#when-a-model-is-disabled-mid-session) mude para um modelo mais antigo quando sua conta perde o acesso ao modelo de uma sessão no meio da sessão; em vez disso, a requisição recusada falha imediatamente. Uma [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) que você configurar ainda muda de modelo nessa recusa, e as [verificações de modelo na inicialização](/docs/pt/amazon-bedrock#startup-model-checks) ainda recorrem ao fallback na inicialização. Requer Claude Code v2.1.285 ou posterior |267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Defina como `1` para impedir que o Claude Code no [Amazon Bedrock](/docs/pt/amazon-bedrock#when-a-model-is-disabled-mid-session) e no [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai#when-a-model-is-disabled-mid-session) mude para um modelo mais antigo quando sua conta perde o acesso ao modelo de uma sessão no meio da sessão; em vez disso, a requisição recusada falha imediatamente. Uma [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) que você configurar ainda muda diante dessa recusa, e as [verificações de modelo na inicialização](/docs/pt/amazon-bedrock#startup-model-checks) ainda recorrem a um fallback na inicialização. Requer Claude Code v2.1.285 ou posterior |

268| `CLAUDE_CODE_DISABLE_MOUSE` | Defina como `1` para desativar o rastreamento do mouse na [renderização em tela cheia](/docs/pt/fullscreen). A rolagem por teclado com `PgUp` e `PgDn` continua funcionando. Use isto para manter o comportamento nativo de copiar ao selecionar do seu terminal |268| `CLAUDE_CODE_DISABLE_MOUSE` | Defina como `1` para desativar o rastreamento do mouse na [renderização em tela cheia](/docs/pt/fullscreen). A rolagem pelo teclado com `PgUp` e `PgDn` continua funcionando. Use isso para manter o comportamento nativo de copiar ao selecionar do seu terminal |

269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Defina como `1` para desativar o tratamento de cliques, arrastos e hover na [renderização em tela cheia](/docs/pt/fullscreen), mantendo a rolagem com a roda do mouse. Use isto quando quiser que a rolagem com a roda funcione dentro do Claude Code, mas não quiser que cliques posicionem o cursor, expandam a saída de ferramentas ou abram links. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambas estão definidas. Requer Claude Code v2.1.195 ou posterior |269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Defina como `1` para desativar o tratamento de cliques, arrastar e passar o mouse na [renderização em tela cheia](/docs/pt/fullscreen), mantendo a rolagem pela roda do mouse. Use isso quando quiser que a rolagem pela roda funcione dentro do Claude Code, mas não quiser que os cliques posicionem o cursor, expandam a saída de ferramentas ou abram links. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambas estão definidas. Requer Claude Code v2.1.195 ou posterior |

270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Defina como `1` para impedir que o Claude Code releia o [certificado e a chave de cliente mTLS](/docs/pt/network-config#mtls-authentication) quando uma requisição de API falha com um erro no nível de conexão, como um reset de conexão ou um erro de handshake TLS. Com a releitura desativada, o Claude Code carrega arquivos rotacionados apenas na próxima vez que aplicar configurações ou na próxima inicialização. Requer Claude Code v2.1.232 ou posterior |270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Defina como `1` para impedir que o Claude Code leia novamente o [certificado e a chave do cliente mTLS](/docs/pt/network-config#mtls-authentication) quando uma requisição à API falha com um erro em nível de conexão, como uma redefinição de conexão ou um erro de handshake TLS. Com o recarregamento desativado, o Claude Code carrega arquivos rotacionados apenas na próxima vez que aplicar as configurações ou na próxima inicialização. Requer Claude Code v2.1.232 ou posterior |

271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Defina com qualquer valor não vazio, como `1`, para desativar o tráfego de rede não essencial: atualizações automáticas, telemetria, relatórios de erros, o comando `/feedback`, o [feedback redigido pelo Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), notas de versão, as verificações do [badge de status de PR e MR](/docs/pt/interactive-mode#pr-review-status) e verificações de disponibilidade, como a verificação do [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Também interrompe as [execuções em segundo plano de fontes `command` de plugins](/docs/pt/plugins/loading#when-a-command-source-re-runs), que são comandos locais e não tráfego de rede, porque elas podem disparar instalações de dependências. **Defini-la como `0` ou `false` ainda desativa esse tráfego**, diferentemente da maioria das variáveis de ativar/desativar; remova a definição da variável para permiti-lo novamente. Também desativa a busca de feature flags, o que torna o [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam da busca de feature flags](#features-that-need-feature-flag-fetching) indisponíveis. A instalação automática do marketplace oficial de plugins não é abrangida; desative-a com `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Não afeta a [descoberta de modelos do gateway](/docs/pt/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tem sua própria ativação opcional |271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Defina com qualquer valor não vazio, como `1`, para desativar o tráfego de rede não essencial: atualizações automáticas, telemetria, relatórios de erros, o comando `/feedback`, o [feedback redigido pelo Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), notas de versão, as verificações do [selo de status de PR e MR](/docs/pt/interactive-mode#pr-review-status) e verificações de disponibilidade, como a verificação do [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Também interrompe as [execuções em segundo plano das fontes `command` de plugins](/docs/pt/plugins/loading#when-a-command-source-re-runs), que são comandos locais e não tráfego de rede, porque elas podem acionar instalações de dependências. **Defini-la como `0` ou `false` ainda desativa esse tráfego**, diferentemente da maioria das variáveis de ativar/desativar; remova a definição da variável para permiti-lo novamente. Também desativa a busca de feature flags, o que torna indisponíveis o [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam da busca de feature flags](#features-that-need-feature-flag-fetching). A instalação automática do marketplace oficial de plugins não é coberta; desative-a com `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Não afeta a [descoberta de modelos do gateway](/docs/pt/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tem sua própria opção de ativação |

272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Defina como `1` para desativar o fallback sem streaming quando uma requisição em streaming falha no meio do stream. Em vez disso, os erros de streaming são propagados para a camada de retry. Útil quando um proxy ou gateway faz com que o fallback produza execução duplicada de ferramentas |272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Defina como `1` para desativar o fallback sem streaming quando uma requisição de streaming falha no meio do stream. Os erros de streaming são propagados para a camada de novas tentativas em vez disso. Útil quando um proxy ou gateway faz com que o fallback produza execução duplicada de ferramentas |

273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Defina como `1` para enviar a notificação de desktop da ferramenta `PushNotification` mesmo enquanto você está digitando no terminal ou com ele em foco. Por padrão, a ferramenta omite tanto a notificação de desktop quanto o [push móvel](/docs/pt/remote-control#mobile-push-notifications) quando detecta atividade recente do teclado ou foco no terminal. Esta variável desativa apenas essa verificação local, então o servidor ainda pode suprimir o push móvel quando detecta que você está ativo. Requer Claude Code v2.1.193 ou posterior |273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Defina como `1` para enviar a notificação de desktop da ferramenta `PushNotification` mesmo enquanto você está digitando no terminal ou com ele em foco. Por padrão, a ferramenta omite tanto a notificação de desktop quanto o [push móvel](/docs/pt/remote-control#mobile-push-notifications) quando detecta atividade recente do teclado ou foco no terminal. Esta variável desativa apenas essa verificação local, então o servidor ainda pode suprimir o push móvel quando detecta que você está ativo. Requer Claude Code v2.1.193 ou posterior |

274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Defina como `1` para desativar o registro automático do marketplace oficial de plugins. O Claude Code lê a variável quando está prestes a registrar o marketplace, geralmente durante a primeira inicialização interativa em uma máquina. Se a variável estiver definida nesse momento, o Claude Code pula o registro permanentemente. Remover a definição da variável depois não desfaz essa omissão. Execute `claude plugin marketplace add anthropics/claude-plugins-official` para registrar o marketplace a qualquer momento |274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Defina como `1` para desativar o registro automático do marketplace oficial de plugins. O Claude Code lê a variável quando está prestes a registrar o marketplace, geralmente durante a primeira inicialização interativa de uma máquina. Se a variável estiver definida nesse momento, o Claude Code pula o registro permanentemente. Remover a definição da variável depois não desfaz isso. Execute `claude plugin marketplace add anthropics/claude-plugins-official` para registrar o marketplace a qualquer momento |

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Defina como `1` para impedir que o Claude Code execute seus [hooks `Notification` para solicitações de permissão não respondidas](/docs/pt/hooks#notification) em sessões nas quais o Claude Code as envia ao callback `canUseTool` do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code. Não tem efeito em sessões de terminal. Requer Claude Code v2.1.233 ou posterior |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Defina como `1` para impedir que o Claude Code execute seus [hooks `Notification` para solicitações de permissão não respondidas](/docs/pt/hooks#notification) em sessões nas quais o Claude Code as envia ao callback `canUseTool` do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code. Não tem efeito em sessões de terminal. Requer Claude Code v2.1.233 ou posterior |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Defina como `1` para pular o carregamento de skills do diretório de skills gerenciadas de todo o sistema. Útil para sessões de contêiner ou CI que não devem carregar skills provisionadas pelo operador |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Defina como `1` para pular o carregamento de skills do diretório de skills gerenciadas de todo o sistema. Útil para sessões em contêineres ou CI que não devem carregar skills provisionadas pelo operador |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Defina como `1` para desativar a verificação da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) que nega os comandos internos do `cmd` `rd`, `rmdir`, `del` e `erase` em um [caminho do sistema](/docs/pt/permission-modes#remove-item-in-powershell), como a raiz de uma unidade ou seu diretório pessoal. O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.283 ou posterior |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Defina como `1` para desativar a verificação da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) que nega os built-ins do `cmd` `rd`, `rmdir`, `del` e `erase` em um [caminho do sistema](/docs/pt/permission-modes#remove-item-in-powershell), como a raiz de uma unidade ou seu diretório pessoal. O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.283 ou posterior |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Defina como `1` para desativar a verificação de [caminho crítico](/docs/pt/permission-modes#critical-paths) para um `rm` recursivo cujo alvo é inteiramente a saída de uma substituição de comando, como `rm -rf "$(pwd)"`. As outras verificações de caminho crítico continuam em execução. Defina-a no ambiente que inicia o Claude Code, pois o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Defina como `1` para impedir que o Claude Code envie o campo de saída estruturada `output_config.format` e o valor `anthropic-beta` que o acompanha, para um [gateway de LLM](/docs/pt/llm-gateway-protocol#feature-pass-through) cujo upstream os rejeita. Isso mantém ativados os outros recursos de pré-lançamento que [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) desativa. Requer Claude Code v2.1.288 ou posterior |

279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Defina como `1` para desativar a verificação de [caminho crítico](/docs/pt/permission-modes#critical-paths) para um `rm` recursivo cujo alvo é inteiramente a saída de uma substituição de comando, como `rm -rf "$(pwd)"`. As outras verificações de caminho crítico continuam sendo executadas. Defina-a no ambiente que inicia o Claude Code, já que o Claude Code ignora uma cópia entregue por meio de um bloco `env` de configurações. Requer Claude Code v2.1.281 ou posterior |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desativar as atualizações automáticas do título do terminal com base no contexto da conversa. Isso também pula a requisição em segundo plano ao modelo pequeno/rápido que [gera um título de sessão](/docs/pt/sessions#name-your-sessions) |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desativar as atualizações automáticas do título do terminal com base no contexto da conversa. Isso também pula a requisição em segundo plano ao modelo pequeno/rápido que [gera um título de sessão](/docs/pt/sessions#name-your-sessions) |

280| `CLAUDE_CODE_DISABLE_THINKING` | Defina como `1` para omitir totalmente o parâmetro `thinking` das requisições de API. Esta é uma opção de compatibilidade para proxies e gateways que rejeitam o parâmetro. Em modelos que pensam por padrão, omitir o parâmetro significa que o modelo ainda pode pensar. Para desativar explicitamente o [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) na API da Anthropic, use `MAX_THINKING_TOKENS=0` em vez disso. Nenhuma das variáveis desativa o pensamento no Opus 5.5, no Sonnet 5.5 ou nos modelos Fable, que não permitem desativar o pensamento. Em [provedores terceiros](/docs/pt/third-party-integrations), `MAX_THINKING_TOKENS=0` também omite o parâmetro, então as duas variáveis se comportam da mesma forma lá |281| `CLAUDE_CODE_DISABLE_THINKING` | Defina como `1` para omitir completamente o parâmetro `thinking` das requisições à API. Esta é uma opção de compatibilidade para proxies e gateways que rejeitam o parâmetro. Em modelos que pensam por padrão, omitir o parâmetro significa que o modelo ainda pode pensar. Para desativar explicitamente o [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) na Anthropic API, use `MAX_THINKING_TOKENS=0` em vez disso. Nenhuma das variáveis desativa o pensamento no Opus 5.5, no Sonnet 5.5 ou nos modelos Fable, que não permitem desativar o pensamento. Em [provedores terceirizados](/docs/pt/third-party-integrations), `MAX_THINKING_TOKENS=0` também omite o parâmetro, então as duas variáveis se comportam da mesma forma lá |

281| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Defina como `1` para pular a [compactação automática](/docs/pt/costs#reduce-token-usage) proativa quando o Claude Code não reconhece o ID do modelo, como um alias de [gateway de LLM](/docs/pt/llm-gateway). Sem esta variável, o Claude Code compacta na janela de contexto que ele presume para o ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` pode corrigir a janela presumida em vez disso; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para saber quando cada variável se aplica. Requer Claude Code v2.1.223 ou posterior |282| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Defina como `1` para pular a [compactação automática](/docs/pt/costs#reduce-token-usage) proativa quando o Claude Code não reconhecer o ID do modelo, como um alias de [gateway de LLM](/docs/pt/llm-gateway). Sem esta variável, o Claude Code compacta na janela de contexto que presume para o ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` pode corrigir a janela presumida em vez disso; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para saber quando cada variável se aplica. Requer Claude Code v2.1.223 ou posterior |

282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Defina como `1` para desativar a rolagem virtual na [renderização em tela cheia](/docs/pt/fullscreen) e renderizar todas as mensagens da transcrição. Use isto se a rolagem no modo de tela cheia mostrar regiões em branco onde deveriam aparecer mensagens |283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Defina como `1` para desativar a rolagem virtual na [renderização em tela cheia](/docs/pt/fullscreen) e renderizar todas as mensagens da transcrição. Use isso se a rolagem no modo de tela cheia mostrar regiões em branco onde deveriam aparecer mensagens |

283| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Defina como `1` para desativar a ferramenta [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior). A ferramenta [WebSearch](/docs/pt/tools-reference#websearch-tool-behavior) continua disponível. Requer Claude Code v2.1.285 ou posterior |284| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Defina como `1` para desativar a ferramenta [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior). A ferramenta [WebSearch](/docs/pt/tools-reference#websearch-tool-behavior) continua disponível. Requer Claude Code v2.1.285 ou posterior |

284| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Defina como `1` para iniciar comandos da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) no Windows diretamente, em vez de por meio do launcher `cmd.exe`. Por padrão, o launcher permite que um comando PowerShell [em execução em segundo plano](/docs/pt/tools-reference#background-commands) [seja transferido para o próximo processo da sessão](/docs/pt/agent-view#the-supervisor-process), como quando você [envia a sessão para segundo plano](/docs/pt/agent-view#from-inside-a-session). Se você definir a variável, um comando PowerShell em segundo plano é interrompido quando o processo da sessão termina. Comandos Bash não são afetados. Requer Claude Code v2.1.269 ou posterior |285| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Defina como `1` para iniciar os comandos da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) no Windows diretamente, em vez de por meio do launcher `cmd.exe`. Por padrão, o launcher permite que um comando PowerShell [em execução em segundo plano](/docs/pt/tools-reference#background-commands) [seja transferido para o próximo processo da sessão](/docs/pt/agent-view#the-supervisor-process), como quando você [envia a sessão para segundo plano](/docs/pt/agent-view#from-inside-a-session). Se você definir a variável, um comando PowerShell em segundo plano é interrompido quando o processo da sessão termina. Comandos Bash não são afetados. Requer Claude Code v2.1.269 ou posterior |

285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Defina como `1` para desativar os [workflows](/docs/pt/workflows#turn-workflows-off). Equivalente à configuração [`disableWorkflows`](/docs/pt/settings-reference#disableworkflows) |286| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Defina como `1` para desativar os [workflows](/docs/pt/workflows#turn-workflows-off). Equivalente à configuração [`disableWorkflows`](/docs/pt/settings-reference#disableworkflows) |

286| `CLAUDE_CODE_EFFORT_LEVEL` | Define o nível de esforço para modelos compatíveis. Valores: `low`, `medium`, `high`, `xhigh`, `max` ou `auto` para usar o padrão do modelo. Os níveis disponíveis dependem do modelo. Tem precedência sobre `--effort`, `/effort` e as configurações `modelSettings` e `effortLevel`. Um limite [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) ainda se aplica. Consulte [Ajustar o nível de esforço](/docs/pt/model-config#adjust-effort-level) |287| `CLAUDE_CODE_EFFORT_LEVEL` | Define o nível de esforço para modelos compatíveis. Valores: `low`, `medium`, `high`, `xhigh`, `max` ou `auto` para usar o padrão do modelo. Os níveis disponíveis dependem do modelo. Tem precedência sobre `--effort`, `/effort` e as configurações `modelSettings` e `effortLevel`. Um limite definido por [`maxEffortLevel`](/docs/pt/settings-reference#maxeffortlevel) ainda se aplica. Consulte [Ajustar o nível de esforço](/docs/pt/model-config#adjust-effort-level) |

287| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Aceita para compatibilidade com versões mais antigas e não tem efeito. O modo auto está disponível por padrão em todos os provedores, incluindo Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e sessões do [Claude apps gateway](/docs/pt/claude-apps-gateway) com login feito. Da v2.1.158 à v2.1.206, era necessário definir esta variável como `1` para disponibilizar o [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nesses provedores |288| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Aceita para compatibilidade com versões mais antigas e não tem efeito. O modo auto está disponível por padrão em todos os provedores, incluindo Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e sessões conectadas do [Claude apps gateway](/docs/pt/claude-apps-gateway). Da v2.1.158 à v2.1.206, definir esta variável como `1` era necessário para tornar o [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) disponível nesses provedores |

288| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sobrescreve a disponibilidade do [resumo da sessão](/docs/pt/interactive-mode#session-recap). Defina como `0` para forçar a desativação dos resumos, independentemente da opção em `/config`. Defina como `1` para forçar a ativação dos resumos quando [`awaySummaryEnabled`](/docs/pt/settings-reference#awaysummaryenabled) for `false`. Tem precedência sobre a configuração e a opção em `/config` |289| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sobrescreve a disponibilidade do [resumo da sessão](/docs/pt/interactive-mode#session-recap). Defina como `0` para forçar a desativação dos resumos independentemente da opção em `/config`. Defina como `1` para forçar a ativação dos resumos quando [`awaySummaryEnabled`](/docs/pt/settings-reference#awaysummaryenabled) for `false`. Tem precedência sobre a configuração e a opção em `/config` |

289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Defina como `1` para atualizar o estado dos plugins nos limites de turno no [modo não interativo](/docs/pt/headless) após a conclusão de uma instalação em segundo plano. Desativada por padrão porque a atualização altera o system prompt no meio da sessão, o que invalida o [cache de prompt](/docs/pt/prompt-caching) para esse turno |290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Defina como `1` para atualizar o estado dos plugins nos limites de turno no [modo não interativo](/docs/pt/headless) após a conclusão de uma instalação em segundo plano. Desativado por padrão porque a atualização altera o system prompt no meio da sessão, o que invalida o [cache de prompt](/docs/pt/prompt-caching) para aquele turno |

290| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Defina como `1` para encaminhar a pesquisa de qualidade de sessão "How is Claude doing?" para o seu próprio [coletor OpenTelemetry](/docs/pt/monitoring-usage) quando o tráfego não essencial destinado à Anthropic estiver bloqueado. As avaliações da pesquisa são emitidas apenas como eventos OTEL para o coletor configurado. Nenhum dado da pesquisa é enviado à Anthropic neste modo. Aplica-se quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` está definida, e não tem efeito caso contrário. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` e a política de feedback de produto da organização têm precedência |291| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Defina como `1` para encaminhar a pesquisa de qualidade de sessão "How is Claude doing?" para o seu próprio [coletor OpenTelemetry](/docs/pt/monitoring-usage) quando o tráfego não essencial destinado à Anthropic estiver bloqueado. As avaliações da pesquisa são emitidas apenas como eventos OTEL para o coletor configurado. Nenhum dado da pesquisa é enviado à Anthropic nesse modo. Aplica-se quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` está definida, e não tem efeito caso contrário. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` e a política de feedback de produto da organização têm precedência |

291| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla se as entradas de chamadas de ferramenta são transmitidas pela API à medida que Claude as gera. Com isso desativado, uma entrada de ferramenta grande, como a escrita de um arquivo longo, chega somente depois que Claude termina de gerá-la, o que pode parecer travado. Ativado por padrão na API da Anthropic. No Amazon Bedrock e no Agent Platform do Google Cloud, ativado por modelo quando o contêiner implantado oferece suporte. Defina como `0` para desativar. Defina como `1` para forçar a ativação ao rotear por um proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL`. Desativado por padrão no Microsoft Foundry e em conexões de [gateway](/docs/pt/llm-gateway) |292| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla se as entradas das chamadas de ferramenta são transmitidas da API à medida que Claude as gera. Com isso desativado, uma entrada de ferramenta grande, como a gravação de um arquivo longo, chega somente depois que Claude termina de gerá-la, o que pode dar a impressão de que está travado. Ativado por padrão na API da Anthropic. No Amazon Bedrock e no Agent Platform do Google Cloud, ativado por modelo quando o contêiner implantado oferece suporte. Defina como `0` para desativar. Defina como `1` para forçar a ativação ao rotear por um proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` ou `ANTHROPIC_BEDROCK_BASE_URL`. Desativado por padrão no Microsoft Foundry e em conexões de [gateway](/docs/pt/llm-gateway) |

292| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Defina como `1` para preencher o seletor `/model` a partir do endpoint `/v1/models` do seu gateway quando `ANTHROPIC_BASE_URL` apontar para um gateway compatível com a Anthropic, como LiteLLM, Kong ou um proxy interno. Desativado por padrão porque, caso contrário, gateways baseados em uma chave de API compartilhada mostrariam a todos os usuários todos os modelos que a chave pode acessar. Os modelos descobertos ainda são filtrados por uma allowlist [`availableModels`](/docs/pt/settings-reference#availablemodels) que a sessão recebe; forneça a lista por meio de [MDM ou um arquivo de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), já que [a entrega gerenciada pelo servidor não está disponível em configurações de gateway](/docs/pt/server-managed-settings#platform-availability) |293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Defina como `1` para preencher o seletor `/model` a partir do endpoint `/v1/models` do seu gateway quando `ANTHROPIC_BASE_URL` aponta para um gateway compatível com a Anthropic, como LiteLLM, Kong ou um proxy interno. Desativado por padrão porque, caso contrário, gateways baseados em uma chave de API compartilhada mostrariam a todos os usuários todos os modelos aos quais a chave tem acesso. Os modelos descobertos ainda são filtrados por uma allowlist [`availableModels`](/docs/pt/settings-reference#availablemodels) que a sessão recebe; entregue a lista por meio de [MDM ou de um arquivo de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms), já que [a entrega gerenciada pelo servidor não está disponível em configurações de gateway](/docs/pt/server-managed-settings#platform-availability) |

293| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Removida na v2.1.142, quando o padrão do [modo rápido](/docs/pt/fast-mode) mudou de Opus 4.6 para Opus 4.7 |294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Removida na v2.1.142, quando o padrão do [modo rápido](/docs/pt/fast-mode) mudou do Opus 4.6 para o Opus 4.7 |

294| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Defina como `false` para desativar as sugestões de prompt, as previsões em cinza que aparecem na entrada do prompt. Tem precedência sobre a configuração [`promptSuggestionEnabled`](/docs/pt/settings-reference#promptsuggestionenabled), que é o que a opção **Prompt suggestions** em `/config` grava. O Claude Code também [pausa as sugestões enquanto sua conta está próxima ou no limite de uso](/docs/pt/interactive-mode#when-claude-code-skips-suggestions). Defina como `true` para mantê-las ativadas até atingir o limite. Requer Claude Code v2.1.238 ou posterior. Consulte [Sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) |295| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Defina como `false` para desativar as sugestões de prompt, as previsões em cinza que aparecem na entrada do seu prompt. Tem precedência sobre a configuração [`promptSuggestionEnabled`](/docs/pt/settings-reference#promptsuggestionenabled), que é o que o botão **Prompt suggestions** em `/config` grava. O Claude Code também [pausa as sugestões enquanto sua conta está perto ou no limite de uso](/docs/pt/interactive-mode#when-claude-code-skips-suggestions). Defina como `true` para mantê-las ativadas até você atingir o limite. Requer Claude Code v2.1.238 ou posterior. Consulte [Sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) |

295| `CLAUDE_CODE_ENABLE_TASKS` | Seleciona quais ferramentas de acompanhamento de tarefas o Claude Code fornece em [sessões que as têm](/docs/pt/tools-reference#task-tool-availability). Por padrão, o Claude Code fornece as ferramentas Task `TaskCreate`, `TaskUpdate`, `TaskGet` e `TaskList`. Defina como `0` para obter a ferramenta legada `TodoWrite` em vez disso. Consulte [Lista de tarefas](/docs/pt/interactive-mode#task-list) |296| `CLAUDE_CODE_ENABLE_TASKS` | Seleciona quais ferramentas de rastreamento de tarefas o Claude Code fornece nas [sessões que as possuem](/docs/pt/tools-reference#task-tool-availability). Por padrão, o Claude Code fornece as ferramentas Task `TaskCreate`, `TaskUpdate`, `TaskGet` e `TaskList`. Defina como `0` para obter a ferramenta legada `TodoWrite` em vez delas. Consulte [Lista de tarefas](/docs/pt/interactive-mode#task-list) |

296| `CLAUDE_CODE_ENABLE_TELEMETRY` | Defina como `1` para ativar a coleta de dados do OpenTelemetry para métricas e logs. Necessária antes de configurar exportadores OTel. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Consulte [Monitoramento](/docs/pt/monitoring-usage) |297| `CLAUDE_CODE_ENABLE_TELEMETRY` | Defina como `1` para ativar a coleta de dados OpenTelemetry para métricas e logs. Necessária antes de configurar exportadores OTel. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Consulte [Monitoramento](/docs/pt/monitoring-usage) |

297| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Defina como `1` para obter as ferramentas de acompanhamento de tarefas em todos os modelos. Sem ela, o Claude Code as fornece por padrão somente nos modelos listados em [Disponibilidade da ferramenta Task](/docs/pt/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` ainda seleciona as ferramentas Task ou `TodoWrite`. Requer Claude Code v2.1.233 ou posterior |298| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Defina como `1` para obter as ferramentas de rastreamento de tarefas em todos os modelos. Sem ela, o Claude Code as fornece por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](/docs/pt/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` ainda seleciona as ferramentas Task ou `TodoWrite`. Requer Claude Code v2.1.233 ou posterior |

298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo em milissegundos a aguardar depois que o loop de consulta fica ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts que usam o modo SDK |299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tempo em milissegundos a aguardar depois que o loop de consulta fica ocioso antes de sair automaticamente. Útil para fluxos de trabalho automatizados e scripts que usam o modo SDK |

299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Defina como `1` para ativar [equipes de agentes](/docs/pt/agent-teams). As equipes de agentes são experimentais e ficam desativadas por padrão |300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Defina como `1` para ativar [equipes de agentes](/docs/pt/agent-teams). As equipes de agentes são experimentais e ficam desativadas por padrão |

300| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON a ser mesclado no nível superior de todo corpo de requisição da API. Útil para passar parâmetros específicos do provedor que o Claude Code não expõe diretamente. Um valor exportado no seu shell também se aplica às [sessões em segundo plano](/docs/pt/agent-view) que você despacha com `claude agents` ou `--bg`. Antes da v2.1.206, as sessões em segundo plano ignoravam um valor exportado pelo shell e usavam qualquer cópia que o processo supervisor em segundo plano tivesse herdado |301| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON a ser mesclado no nível superior de todo corpo de requisição da API. Útil para passar parâmetros específicos do provedor que o Claude Code não expõe diretamente. Um valor exportado no seu shell também se aplica às [sessões em segundo plano](/docs/pt/agent-view) que você despacha com `claude agents` ou `--bg`. Antes da v2.1.206, as sessões em segundo plano ignoravam um valor exportado pelo shell e usavam qualquer cópia que o processo supervisor em segundo plano tivesse herdado |

301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescreve o limite padrão de tokens para leituras de arquivos. Útil quando você precisa ler arquivos maiores por completo |302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Sobrescreve o limite padrão de tokens para leituras de arquivos. Útil quando você precisa ler arquivos maiores por completo |

302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Defina como `1` para forçar a persistência da transcrição, o histórico de prompts e o registro em `claude agents` mesmo quando este `claude` foi iniciado de dentro de outra sessão do Claude Code. Use quando um valor herdado de `CLAUDE_CODE_CHILD_SESSION`, por exemplo de uma sessão `screen` ou de um inicializador em segundo plano iniciado primeiro pela ferramenta Bash do Claude Code, fizer com que uma sessão de nível superior genuína seja classificada erroneamente como aninhada. A partir da v2.1.178, o Claude Code detecta o caso do tmux automaticamente e ignora o marcador herdado, então o tmux não precisa mais desta variável. Também respeitada na v2.1.169 e anteriores; não tem efeito na v2.1.170 e v2.1.171, nas quais a detecção de sessão aninhada que ela sobrescreve foi removida |303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Defina como `1` para forçar a persistência da transcrição, o histórico de prompts e o registro em `claude agents` mesmo quando este `claude` foi iniciado de dentro de outra sessão do Claude Code. Use quando um valor herdado de `CLAUDE_CODE_CHILD_SESSION`, por exemplo de uma sessão `screen` ou de um inicializador em segundo plano iniciado primeiro pela ferramenta Bash do Claude Code, faz com que uma sessão que é genuinamente de nível superior seja classificada incorretamente como aninhada. A partir da v2.1.178, o Claude Code detecta o caso do tmux automaticamente e ignora o marcador herdado, então o tmux não precisa mais desta variável. Também respeitada na v2.1.169 e anteriores; não tem efeito na v2.1.170 e na v2.1.171, em que a detecção de sessão aninhada que ela sobrescreve foi removida |

303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Defina como `1` para forçar a renderização tachada de `~~text~~` nas respostas de Claude quando seu terminal oferece suporte, mas não é detectado automaticamente, como via SSH sem `TERM_PROGRAM` encaminhado. Sem isso, terminais não detectados mostram os marcadores `~~` literais em vez de renderizar o texto como tachado. Requer Claude Code v2.1.186 ou posterior |304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Defina como `1` para forçar a renderização de tachado para `~~text~~` nas respostas de Claude quando seu terminal oferece suporte, mas não é detectado automaticamente, como via SSH sem `TERM_PROGRAM` encaminhado. Sem isso, terminais não detectados mostram os marcadores `~~` literais em vez de renderizar o texto como tachado. Requer Claude Code v2.1.186 ou posterior |

304| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Defina como `1` para forçar a ativação da [saída sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) do modo privado DEC 2026 quando seu terminal oferece suporte, mas não é detectado automaticamente. Útil para emuladores como o `eat` do Emacs, que implementam BSU/ESU, mas não respondem à sondagem de capacidade. Não tem efeito no tmux. Diferentemente de `CLAUDE_CODE_NO_FLICKER`, que muda para a [renderização em tela cheia](/docs/pt/fullscreen), esta não altera o renderizador |305| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Defina como `1` para forçar a ativação da [saída sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) do modo privado DEC 2026 quando seu terminal oferece suporte, mas não é detectado automaticamente. Útil para emuladores como o `eat` do Emacs, que implementam BSU/ESU, mas não respondem à sondagem de capacidade. Não tem efeito no tmux. Diferentemente de `CLAUDE_CODE_NO_FLICKER`, que muda para a [renderização em tela cheia](/docs/pt/fullscreen), esta não altera o renderizador |

305| `CLAUDE_CODE_FORK_SUBAGENT` | Controla o [modo fork](/docs/pt/sub-agents#turn-fork-mode-on-or-off), que permite que Claude crie [subagentes bifurcados](/docs/pt/sub-agents#fork-the-current-conversation) por conta própria e fica ativado por padrão somente em sessões interativas. Defina como `1` para ativá-lo também em `claude -p` e no Agent SDK, ou `0` para desativá-lo em todo tipo de sessão. Você pode executar `/subtask` com o modo fork ativado ou não. O padrão interativo requer Claude Code v2.1.232 ou posterior; em versões anteriores, defina a variável como `1` para ativar o modo fork |306| `CLAUDE_CODE_FORK_SUBAGENT` | Controla o [modo fork](/docs/pt/sub-agents#turn-fork-mode-on-or-off), que permite que Claude gere [subagentes bifurcados](/docs/pt/sub-agents#fork-the-current-conversation) por conta própria e fica ativado por padrão apenas em sessões interativas. Defina como `1` para ativá-lo também em `claude -p` e no Agent SDK, ou `0` para desativá-lo em todo tipo de sessão. Você pode executar `/subtask` com o modo fork ativado ou não. O padrão interativo requer Claude Code v2.1.232 ou posterior; em versões anteriores, defina a variável como `1` para ativar o modo fork |

306| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Defina como `1` para emitir blocos de texto e de pensamento de [subagentes](/docs/pt/sub-agents) na saída de `claude -p --output-format stream-json`, o mesmo comportamento da flag [`--forward-subagent-text`](/docs/pt/cli-reference#cli-flags). Use a variável quando um harness invoca `claude` e não pode passar a flag por conta própria. Diferentemente da flag, que encerra com erro fora do modo não interativo com saída stream-json, a variável é ignorada nesses casos para que invocações aninhadas continuem funcionando quando ela é definida para todo o processo. Requer Claude Code v2.1.211 ou posterior |307| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Defina como `1` para emitir blocos de texto e de pensamento de [subagentes](/docs/pt/sub-agents) na saída de `claude -p --output-format stream-json`, o mesmo comportamento da flag [`--forward-subagent-text`](/docs/pt/cli-reference#cli-flags). Use a variável quando um harness invoca `claude` e não consegue passar a flag por conta própria. Diferentemente da flag, que encerra com um erro fora do modo não interativo com saída stream-json, a variável é ignorada nesses casos para que invocações aninhadas continuem funcionando quando ela é definida para todo o processo. Requer Claude Code v2.1.211 ou posterior |

307| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Defina como `1` para enviar os [cabeçalhos de dica de gateway](/docs/pt/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` e `x-claude-code-compaction`, em um proxy personalizado ou em um provedor terceirizado, como Amazon Bedrock ou Claude Platform on AWS. Defina como `0` para parar de enviá-los em todas as conexões, incluindo uma conexão direta com a API da Anthropic, onde o Claude Code os envia por padrão. Requer Claude Code v2.1.273 ou posterior |308| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Defina como `1` para enviar os [cabeçalhos de dica de gateway](/docs/pt/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` e `x-claude-code-compaction`, em um proxy personalizado ou em um provedor terceirizado, como Amazon Bedrock ou Claude Platform on AWS. Defina como `0` para parar de enviá-los em todas as conexões, incluindo uma conexão direta com a API da Anthropic, onde o Claude Code os envia por padrão. Requer Claude Code v2.1.273 ou posterior |

308| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout em milissegundos para a requisição de [descoberta de modelos do gateway](/docs/pt/llm-gateway-protocol#model-discovery) que `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` ativa (padrão: `3000`). Aumente-o quando seu gateway precisar de mais de três segundos para responder a `/v1/models` na inicialização. Aceita apenas dígitos simples; `0`, valores negativos e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |309| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout em milissegundos para a requisição de [descoberta de modelos do gateway](/docs/pt/llm-gateway-protocol#model-discovery) que `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` ativa (padrão: `3000`). Aumente-o quando seu gateway precisar de mais de três segundos para responder a `/v1/models` na inicialização. Aceita apenas dígitos simples; `0`, valores negativos e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |

309| `CLAUDE_CODE_GIT_BASH_PATH` | Somente Windows: caminho para o executável do Git Bash (`bash.exe`). Use quando o Git Bash estiver instalado, mas não no seu PATH. Se o caminho não existir ou o arquivo não se chamar `bash.exe`, `sh.exe`, `bash` ou `sh`, o Claude Code ignora a variável e detecta automaticamente o Git Bash como se ela não estivesse definida, registrando um aviso visível com `--debug`. Antes da v2.1.219, o Claude Code encerrava na inicialização quando o caminho não existia e usava qualquer arquivo existente como shell sem verificar se era bash ou sh. Consulte [Configuração no Windows](/docs/pt/setup#set-up-on-windows) |310| `CLAUDE_CODE_GIT_BASH_PATH` | Somente Windows: caminho para o executável do Git Bash (`bash.exe`). Use quando o Git Bash estiver instalado, mas não estiver no seu PATH. Se o caminho não existir ou o arquivo não se chamar `bash.exe`, `sh.exe`, `bash` ou `sh`, o Claude Code ignora a variável e detecta automaticamente o Git Bash como se ela não estivesse definida, registrando um aviso visível com `--debug`. Antes da v2.1.219, o Claude Code encerrava na inicialização quando o caminho não existia e usava qualquer arquivo existente como shell sem verificar se era bash ou sh. Consulte [Configuração no Windows](/docs/pt/setup#set-up-on-windows) |

310| `CLAUDE_CODE_GLOB_HIDDEN` | Defina como `false` para excluir dotfiles dos resultados quando Claude invoca a [ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior). Incluídos por padrão. Não afeta o preenchimento automático de arquivos com `@`, `ls`, Grep ou Read |311| `CLAUDE_CODE_GLOB_HIDDEN` | Defina como `false` para excluir dotfiles dos resultados quando Claude invoca a [ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior). Incluídos por padrão. Não afeta o preenchimento automático de arquivos com `@`, `ls`, Grep nem Read |

311| `CLAUDE_CODE_GLOB_NO_IGNORE` | Defina como `false` para fazer a [ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior) respeitar os padrões do `.gitignore`. Por padrão, o Glob retorna todos os arquivos correspondentes, incluindo os ignorados pelo git. Não afeta o preenchimento automático de arquivos com `@`, que tem sua própria [configuração `respectGitignore`](/docs/pt/settings-reference#respectgitignore) |312| `CLAUDE_CODE_GLOB_NO_IGNORE` | Defina como `false` para fazer a [ferramenta Glob](/docs/pt/tools-reference#glob-tool-behavior) respeitar os padrões do `.gitignore`. Por padrão, o Glob retorna todos os arquivos correspondentes, incluindo os ignorados pelo git. Não afeta o preenchimento automático de arquivos com `@`, que tem sua própria [configuração `respectGitignore`](/docs/pt/settings-reference#respectgitignore) |

312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout em segundos para a descoberta de arquivos da ferramenta Glob. O padrão é 20 segundos na maioria das plataformas e 60 segundos no WSL |313| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout em segundos para a descoberta de arquivos da ferramenta Glob. O padrão é 20 segundos na maioria das plataformas e 60 segundos no WSL |

313| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Quantos minutos o trabalho em segundo plano pode manter uma meta ativa aguardando antes que o Claude Code [peça a Claude para verificá-la](/docs/pt/goal#background-work-defers-evaluation). Padrão `30`. Defina `0` para desativar as verificações. Informe minutos inteiros em dígitos simples, no máximo `10080`, que é uma semana. O Claude Code trata qualquer outro valor como não definido e usa o padrão. Requer Claude Code v2.1.234 ou posterior |314| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Por quantos minutos o trabalho em segundo plano pode manter um objetivo ativo aguardando antes que o Claude Code [peça a Claude para verificá-lo](/docs/pt/goal#background-work-defers-evaluation). Padrão `30`. Defina `0` para desativar as verificações. Informe minutos inteiros em dígitos simples, no máximo `10080`, que equivale a uma semana. O Claude Code trata qualquer outro valor como não definido e usa o padrão. Requer Claude Code v2.1.234 ou posterior |

314| `CLAUDE_CODE_HIDE_CWD` | Defina como `1` para ocultar o diretório de trabalho no logotipo de inicialização. Útil para compartilhamentos de tela ou gravações em que o caminho expõe seu nome de usuário do sistema operacional |315| `CLAUDE_CODE_HIDE_CWD` | Defina como `1` para ocultar o diretório de trabalho no logotipo de inicialização. Útil para compartilhamentos de tela ou gravações em que o caminho expõe o nome de usuário do seu sistema operacional |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescreve o endereço de host usado para conectar à extensão da IDE. Por padrão, o Claude Code detecta automaticamente o endereço correto, incluindo o roteamento de WSL para Windows |316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Sobrescreve o endereço de host usado para conectar à extensão do IDE. Por padrão, o Claude Code detecta automaticamente o endereço correto, incluindo o roteamento do WSL para o Windows |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Defina como `1` para pular a instalação automática de extensões da IDE. Equivalente a definir [`autoInstallIdeExtension`](/docs/pt/settings-reference#autoinstallideextension) como `false` |317| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Defina como `1` para pular a instalação automática das extensões do IDE. Equivalente a definir [`autoInstallIdeExtension`](/docs/pt/settings-reference#autoinstallideextension) como `false` |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Defina como `1` para pular a validação das entradas do lockfile da IDE durante a conexão. Use quando a conexão automática não encontrar sua IDE mesmo ela estando em execução |318| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Defina como `1` para pular a validação das entradas do lockfile do IDE durante a conexão. Use quando a conexão automática não encontrar seu IDE mesmo com ele em execução |

318| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quantos [subagentes](/docs/pt/sub-agents#concurrent-subagent-limit) podem estar em execução em uma sessão antes que a ferramenta Agent se recuse a criar outro (padrão: 20). Aceita um número inteiro positivo em dígitos simples; qualquer outro valor é ignorado, então a variável pode ajustar o limite, mas não desativá-lo. Requer Claude Code v2.1.217 ou posterior |319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Quantos [subagentes](/docs/pt/sub-agents#concurrent-subagent-limit) podem estar em execução em uma sessão antes que a ferramenta Agent se recuse a gerar outro (padrão: 20). Aceita um número inteiro positivo em dígitos simples; qualquer outra coisa é ignorada, então a variável pode ajustar o limite, mas não desativá-lo. Requer Claude Code v2.1.217 ou posterior |

319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescreve o tamanho da janela de contexto que o Claude Code assume para o modelo ativo. A partir da v2.1.193, a forma como se aplica depende de como o Claude Code resolve o ID do modelo; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use isto ao rotear para um modelo via `ANTHROPIC_BASE_URL` cuja janela de contexto não corresponde ao tamanho integrado para o seu nome |320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescreve o tamanho da janela de contexto que o Claude Code assume para o modelo ativo. A partir da v2.1.193, a forma como se aplica depende de como o Claude Code resolve o ID do modelo; consulte [Corrigir a janela para um gateway ou ID de modelo personalizado](/docs/pt/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use isso ao rotear para um modelo via `ANTHROPIC_BASE_URL` cuja janela de contexto não corresponde ao tamanho integrado para o seu nome |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Comprimento máximo em caracteres de cada descrição de ferramenta MCP e das instruções de cada servidor MCP que o Claude Code envia ao modelo (padrão: 2048). O Claude Code [trunca textos mais longos](/docs/pt/mcp#for-mcp-server-authors). Aceita um número inteiro positivo em dígitos simples. Qualquer outro valor é ignorado e o padrão se aplica. Requer Claude Code v2.1.280 ou posterior |321| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Comprimento máximo, em caracteres, de cada descrição de ferramenta MCP e das instruções de cada servidor MCP que o Claude Code envia ao modelo (padrão: 2048). O Claude Code [trunca textos mais longos](/docs/pt/mcp#for-mcp-server-authors). Aceita um número inteiro positivo em dígitos simples. Qualquer outra coisa é ignorada e o padrão se aplica. Requer Claude Code v2.1.280 ou posterior |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Define o número máximo de tokens de saída para a maioria das requisições. Os padrões e limites variam por modelo; consulte [máximo de tokens de saída](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). O Claude Code reduz um valor acima do limite de um modelo para esse limite. Para um ID de modelo que o Claude Code não consegue resolver para um modelo conhecido, o padrão é 32000 e o limite é 128000. Aumentar este valor reduz a janela de contexto efetiva disponível antes que a [compactação automática](/docs/pt/costs#reduce-token-usage) seja acionada |322| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Define o número máximo de tokens de saída para a maioria das requisições. Os padrões e limites variam por modelo; consulte [máximo de tokens de saída](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). O Claude Code reduz um valor acima do limite de um modelo para esse limite. Para um ID de modelo que o Claude Code não consegue resolver para um modelo que conhece, o padrão é 32000 e o limite é 128000. Aumentar esse valor reduz a janela de contexto efetiva disponível antes que a [compactação automática](/docs/pt/costs#reduce-token-usage) seja acionada |

322| `CLAUDE_CODE_MAX_RETRIES` | Sobrescreve o número de vezes para tentar novamente requisições de API com falha (padrão: 10). Limitado a 15 a partir da v2.1.186; a partir da v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Para sessões não supervisionadas que precisam aguardar interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG` em vez disso |323| `CLAUDE_CODE_MAX_RETRIES` | Sobrescreve o número de vezes que requisições de API com falha são tentadas novamente (padrão: 10). Limitado a 15 a partir da v2.1.186; a partir da v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Para sessões não supervisionadas que precisam aguardar interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG` em vez disso |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removida na v2.1.224 e agora não tem efeito. Anteriormente limitava o número total de [subagentes](/docs/pt/sub-agents) que Claude podia criar com a ferramenta Agent em uma sessão (padrão: 200); criar além do limite falhava com `Subagent spawn limit reached`. O [limite de subagentes simultâneos](/docs/pt/sub-agents#concurrent-subagent-limit) e o [limite de profundidade](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) ainda se aplicam |324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Removida na v2.1.224 e agora sem efeito. Anteriormente limitava o número total de [subagentes](/docs/pt/sub-agents) que Claude podia gerar com a ferramenta Agent em uma sessão (padrão: 200); gerar além do limite falhava com `Subagent spawn limit reached`. O [limite de subagentes simultâneos](/docs/pt/sub-agents#concurrent-subagent-limit) e o [limite de profundidade](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) ainda se aplicam |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [camadas de subagentes](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) permitidas abaixo da conversa principal (padrão: 3). No padrão, subagentes podem criar seus próprios subagentes, e um subagente na terceira camada não pode criar mais; defina `1` para desativar o aninhamento. Da v2.1.217 à v2.1.218, o padrão era 1, então um subagente não podia criar os seus próprios a menos que você aumentasse o limite; a v2.1.219 aumentou o padrão para 3. Aceita um número inteiro positivo em dígitos simples; qualquer outro valor é ignorado, então o limite pode ser ajustado, mas não removido. Requer Claude Code v2.1.217 ou posterior |325| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [camadas de subagentes](/docs/pt/sub-agents#let-subagents-spawn-their-own-subagents) permitidas abaixo da conversa principal (padrão: 3). No padrão, os subagentes podem gerar seus próprios subagentes, e um subagente na terceira camada não pode gerar mais nenhum; defina `1` para desativar o aninhamento. Da v2.1.217 até a v2.1.218, o padrão era 1, então um subagente não podia gerar os seus próprios a menos que você aumentasse o limite; a v2.1.219 aumentou o padrão para 3. Aceita um número inteiro positivo em dígitos simples; qualquer outra coisa é ignorada, então o limite pode ser ajustado, mas não removido. Requer Claude Code v2.1.217 ou posterior |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de ferramentas somente leitura e subagentes que podem ser executados em paralelo (padrão: 10). Valores mais altos aumentam o paralelismo, mas consomem mais recursos |326| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de ferramentas somente leitura e subagentes que podem ser executados em paralelo (padrão: 10). Valores mais altos aumentam o paralelismo, mas consomem mais recursos |

326| `CLAUDE_CODE_MAX_TURNS` | Limita o número de turnos agênticos quando nenhum limite explícito é passado. Equivalente a passar [`--max-turns`](/docs/pt/cli-reference#cli-flags), que tem precedência quando ambos estão definidos. Um valor que não seja um inteiro positivo é rejeitado na inicialização com um erro, em vez de ser tratado como ausência de limite |327| `CLAUDE_CODE_MAX_TURNS` | Limita o número de turnos agênticos quando nenhum limite explícito é passado. Equivalente a passar [`--max-turns`](/docs/pt/cli-reference#cli-flags), que tem precedência quando ambos estão definidos. Um valor que não seja um inteiro positivo é rejeitado na inicialização com um erro, em vez de ser tratado como ausência de limite |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Limite do número total de chamadas de [WebSearch](/docs/pt/tools-reference#websearch-tool-behavior) que uma sessão pode fazer (padrão: 200). Quando Claude atinge o limite, outras chamadas de WebSearch retornam um aviso dizendo para continuar com as informações já reunidas. Aceita um número inteiro positivo sem limite superior. Qualquer outro valor é ignorado e o padrão se aplica, então o limite pode ser aumentado, mas não desativado. Requer Claude Code v2.1.212 ou posterior |328| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Limite do número total de chamadas de [WebSearch](/docs/pt/tools-reference#websearch-tool-behavior) que uma sessão pode fazer (padrão: 200). Quando Claude atinge o limite, chamadas adicionais de WebSearch retornam um aviso dizendo para continuar com as informações que já reuniu. Aceita um número inteiro positivo sem limite superior. Qualquer outra coisa é ignorada e o padrão se aplica, então o limite pode ser aumentado, mas não desativado. Requer Claude Code v2.1.212 ou posterior |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Defina como `1` para iniciar servidores MCP stdio apenas com um ambiente base seguro mais o `env` configurado do servidor, em vez de herdar o ambiente do seu shell |329| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Defina como `1` para iniciar servidores MCP stdio apenas com um ambiente base seguro mais o `env` configurado do servidor, em vez de herdar o ambiente do seu shell |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tempo decorrido em milissegundos antes que uma chamada de ferramenta MCP ainda em execução [passe para uma tarefa em segundo plano](/docs/pt/mcp#automatic-backgrounding-of-long-tool-calls) (padrão: 120000, ou 2 minutos). Defina como `0` para desativar a passagem automática para segundo plano. Requer Claude Code v2.1.212 ou posterior |330| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tempo decorrido, em milissegundos, antes que uma chamada de ferramenta MCP ainda em execução [passe para uma tarefa em segundo plano](/docs/pt/mcp#automatic-backgrounding-of-long-tool-calls) (padrão: 120000, ou 2 minutos). Defina como `0` para desativar a passagem automática para segundo plano. Requer Claude Code v2.1.212 ou posterior |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Quanto tempo em milissegundos o primeiro turno de uma sessão [não interativa](/docs/pt/headless) aguarda por servidores MCP que ainda estão se conectando, no lugar da [espera padrão do primeiro turno](/docs/pt/agent-sdk/mcp#connection-timing). Quando definida, a espera abrange todos os servidores pendentes. Defina como `0` para pular a espera. Um servidor de [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) mantém sua própria espera de `MCP_TIMEOUT` independentemente do valor. Requer Claude Code v2.1.274 ou posterior |331| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Por quanto tempo, em milissegundos, o primeiro turno de uma sessão [não interativa](/docs/pt/headless) aguarda servidores MCP que ainda estão se conectando, no lugar da [espera do primeiro turno](/docs/pt/agent-sdk/mcp#connection-timing) padrão. Quando definida, a espera abrange todos os servidores pendentes. Defina como `0` para pular a espera. Um servidor de [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) mantém sua própria espera de `MCP_TIMEOUT`, independentemente do valor. Requer Claude Code v2.1.274 ou posterior |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout de inatividade em milissegundos para chamadas de ferramentas MCP. Quando um servidor MCP stdio, HTTP, SSE, WebSocket ou [conector do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) não envia resposta nem notificação de progresso por esse tempo, a chamada de ferramenta é abortada com um erro em vez de aguardar o `MCP_TOOL_TIMEOUT` geral. Sobrescreve os padrões por transporte de 300000 (5 minutos) para servidores de rede e 1800000 (30 minutos) para servidores stdio. Defina como `0` para desativar a verificação de inatividade. Valores abaixo de 1000 são elevados para um segundo, e o valor é limitado ao `MCP_TOOL_TIMEOUT` efetivo. Um `timeout` por servidor no `.mcp.json` de pelo menos 1000 eleva a janela de inatividade desse servidor para pelo menos o valor de `timeout`. Não se aplica a servidores de IDE nem a servidores em processo do SDK. Requer Claude Code v2.1.187 ou posterior. Antes da v2.1.203, os servidores stdio estavam isentos do timeout de inatividade |332| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout de inatividade, em milissegundos, para chamadas de ferramenta MCP. Quando um servidor MCP stdio, HTTP, SSE, WebSocket ou [conector do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai) não envia resposta nem notificação de progresso por esse tempo, a chamada de ferramenta é abortada com um erro em vez de aguardar o `MCP_TOOL_TIMEOUT` geral. Sobrescreve os padrões por transporte de 300000 (5 minutos) para servidores de rede e 1800000 (30 minutos) para servidores stdio. Defina como `0` para desativar a verificação de inatividade. Valores abaixo de 1000 são elevados para um segundo, e o valor é limitado ao `MCP_TOOL_TIMEOUT` efetivo. Um `timeout` por servidor em `.mcp.json` de pelo menos 1000 eleva a janela de inatividade desse servidor para no mínimo o valor de `timeout`. Não se aplica a servidores de IDE nem a servidores in-process do SDK. Requer Claude Code v2.1.187 ou posterior. Antes da v2.1.203, os servidores stdio estavam isentos do timeout de inatividade |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | Definida pelo Claude Code, não por você: em sessões que vinculam um [socket de caixa de entrada](/docs/pt/cross-session-messaging#the-sessions-inbox-socket), o Claude Code exporta o caminho desse socket para hooks e comandos Bash quando vincula o socket. Em uma sessão que inicia com mensagens ativadas, o Claude Code vincula o socket antes da execução de qualquer hook. Outras sessões na máquina entregam mensagens para esse caminho. Cada sessão exporta seu próprio socket em vez de um herdado de uma sessão pai, e as mensagens que chegam nele passam pelos [controles de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) da sessão. Blocos `env` das configurações não podem defini-la. Requer Claude Code v2.1.224 ou posterior |333| `CLAUDE_CODE_MESSAGING_SOCKET` | Definida pelo Claude Code, não por você: em sessões que vinculam um [socket de caixa de entrada](/docs/pt/cross-session-messaging#the-sessions-inbox-socket), o Claude Code exporta o caminho desse socket para hooks e comandos Bash quando vincula o socket. Em uma sessão que começa com as mensagens ativadas, o Claude Code vincula o socket antes que qualquer hook seja executado. Outras sessões na máquina entregam mensagens para esse caminho. Cada sessão exporta seu próprio socket em vez de um herdado de um processo pai, e as mensagens que chegam nele passam pelos [controles de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) da sessão. Blocos `env` de configurações não podem defini-la. Requer Claude Code v2.1.224 ou posterior |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | Definida pelo Claude Code, não por você: em sessões que vinculam um [socket de caixa de entrada](/docs/pt/cross-session-messaging#the-sessions-inbox-socket), o Claude Code exporta este token por sessão para hooks e comandos Bash junto com `CLAUDE_CODE_MESSAGING_SOCKET`. Um script que envia para o socket pode enviar `{"type":"auth","token":"<token>"}` como primeira linha para provar que pertence à sessão. No Windows nativo, o Claude Code exige essa linha e fecha qualquer conexão que não comece com uma válida. As [regras de processo filho próprio](/docs/pt/cross-session-messaging#the-sessions-inbox-socket) dizem quando o Claude Code consulta o token. Cada sessão exporta seu próprio token, nunca um herdado de uma sessão pai. Blocos `env` das configurações não podem defini-la. Requer Claude Code v2.1.228 ou posterior |334| `CLAUDE_CODE_MESSAGING_TOKEN` | Definida pelo Claude Code, não por você: em sessões que vinculam um [socket de caixa de entrada](/docs/pt/cross-session-messaging#the-sessions-inbox-socket), o Claude Code exporta este token por sessão para hooks e comandos Bash junto com `CLAUDE_CODE_MESSAGING_SOCKET`. Um script que publica no socket pode enviar `{"type":"auth","token":"<token>"}` como sua primeira linha para provar que pertence à sessão. No Windows nativo, o Claude Code exige essa linha e fecha qualquer conexão que não comece com uma linha válida. As [regras de processo filho próprio](/docs/pt/cross-session-messaging#the-sessions-inbox-socket) dizem quando o Claude Code consulta o token. Cada sessão exporta seu próprio token, nunca um herdado de uma sessão pai. Blocos `env` de configurações não podem defini-la. Requer Claude Code v2.1.228 ou posterior |

334| `CLAUDE_CODE_NATIVE_CURSOR` | Defina como `1` para mostrar o cursor do próprio terminal no ponto de inserção em vez de um bloco desenhado. O cursor respeita as configurações de piscar, formato e foco do terminal |335| `CLAUDE_CODE_NATIVE_CURSOR` | Defina como `1` para mostrar o próprio cursor do terminal no ponto de inserção da entrada em vez de um bloco desenhado. O cursor respeita as configurações de piscar, formato e foco do terminal |

335| `CLAUDE_CODE_NEW_INIT` | Defina como `1` para fazer `/init` executar um fluxo de configuração interativo. O fluxo pergunta quais arquivos gerar, incluindo CLAUDE.md, skills e hooks, antes de explorar a base de código e gravá-los. Sem esta variável, `/init` gera um CLAUDE.md automaticamente sem perguntar |336| `CLAUDE_CODE_NEW_INIT` | Defina como `1` para fazer `/init` executar um fluxo de configuração interativo. O fluxo pergunta quais arquivos gerar, incluindo CLAUDE.md, skills e hooks, antes de explorar a base de código e gravá-los. Sem esta variável, `/init` gera um CLAUDE.md automaticamente sem perguntar |

336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Defina como `1` para gravar a saída do terminal por meio de um segundo descritor de arquivo não bloqueante, para que um terminal que para de ler, como um painel do modo de controle do tmux pausado ou uma conexão SSH travada, não possa congelar o Claude Code no meio da sessão. Aplica-se no macOS, Linux e WSL quando stdout é um terminal. Requer Claude Code v2.1.261 ou posterior |337| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Defina como `1` para gravar a saída do terminal por meio de um segundo descritor de arquivo não bloqueante, para que um terminal que para de ler, como um painel pausado do modo de controle do tmux ou uma conexão SSH travada, não possa congelar o Claude Code no meio da sessão. Aplica-se no macOS, Linux e WSL quando stdout é um terminal. Requer Claude Code v2.1.261 ou posterior |

337| `CLAUDE_CODE_NO_FLICKER` | Defina como `1` para ativar a [renderização em tela cheia](/docs/pt/fullscreen), uma prévia de pesquisa que reduz a cintilação e mantém a memória estável em conversas longas. Sobrescreve a configuração [`tui`](/docs/pt/settings-reference#tui); você também pode alternar com `/tui fullscreen` |338| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Limita quantas vezes o Claude Code reenvia uma [requisição sem streaming](/docs/pt/errors#streaming-response-ended-before-any-complete-data-was-received) que atinge o timeout. Com `0`, a requisição falha no primeiro timeout. Não definida por padrão, então `CLAUDE_CODE_MAX_RETRIES` limita esses reenvios. Consulte [Ajustar o comportamento de novas tentativas](/docs/pt/errors#tune-retry-behavior) para o timeout. Requer Claude Code v2.1.285 ou posterior |

338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token de atualização OAuth para autenticação do Claude.ai. Quando definido, `claude auth login` troca este token diretamente em vez de abrir um navegador. Requer `CLAUDE_CODE_OAUTH_SCOPES`. Útil para provisionar autenticação em ambientes automatizados |339| `CLAUDE_CODE_NO_FLICKER` | Defina como `1` para ativar a [renderização em tela cheia](/docs/pt/fullscreen), uma prévia de pesquisa que reduz a cintilação e mantém o uso de memória estável em conversas longas. Sobrescreve a configuração [`tui`](/docs/pt/settings-reference#tui); você também pode alternar com `/tui fullscreen` |

340| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Token de atualização OAuth para autenticação no Claude.ai. Quando definido, `claude auth login` troca esse token diretamente em vez de abrir um navegador. Requer `CLAUDE_CODE_OAUTH_SCOPES`. Útil para provisionar autenticação em ambientes automatizados |

339| `CLAUDE_CODE_OAUTH_SCOPES` | Escopos OAuth separados por espaço com os quais o token de atualização foi emitido, como `"user:profile user:inference user:sessions:claude_code"`. Obrigatória quando `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` está definida |341| `CLAUDE_CODE_OAUTH_SCOPES` | Escopos OAuth separados por espaço com os quais o token de atualização foi emitido, como `"user:profile user:inference user:sessions:claude_code"`. Obrigatória quando `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` está definida |

340| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acesso OAuth para autenticação do claude.ai. Alternativa ao `/login` para SDK e ambientes automatizados. Tem precedência sobre credenciais armazenadas no keychain. Gere um com [`claude setup-token`](/docs/pt/authentication#generate-a-long-lived-token). A menos que você execute [`/login`](/docs/pt/authentication#authentication-precedence), o Claude Code usa o token definido durante toda a sessão. Para substituir um token expirado, gere um novo e reinicie |342| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acesso OAuth para autenticação no claude.ai. Alternativa a `/login` para o SDK e ambientes automatizados. Tem precedência sobre credenciais armazenadas no keychain. Gere um com [`claude setup-token`](/docs/pt/authentication#generate-a-long-lived-token). A menos que você execute [`/login`](/docs/pt/authentication#authentication-precedence), o Claude Code usa o token que você definiu durante toda a sessão. Para substituir um token expirado, gere um novo e reinicie |

341| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Removida na v2.1.160 e agora não tem efeito. Anteriormente fixava o [modo rápido](/docs/pt/fast-mode) no Claude Opus 4.6 em vez do padrão atual. O Opus 4.6 não oferece mais suporte ao modo rápido |343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Removida na v2.1.160 e agora sem efeito. Anteriormente fixava o [modo rápido](/docs/pt/fast-mode) no Claude Opus 4.6 em vez do padrão atual. O Opus 4.6 não oferece mais suporte ao modo rápido |

342| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Comprimento máximo dos atributos do OpenTelemetry que carregam conteúdo (respostas do modelo, conteúdo de ferramentas, system prompts, corpos brutos da API), incluindo o marcador de truncamento, em unidades de código UTF-16 (padrão: 61440, ou seja, 60 KB). Aumente-o somente se o seu backend de telemetria aceitar valores de atributo maiores que 64 KB, ou reduza-o para diminuir o volume de telemetria. Requer Claude Code v2.1.214 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage) |344| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Comprimento máximo dos atributos OpenTelemetry que carregam conteúdo (respostas do modelo, conteúdo de ferramentas, system prompts, corpos brutos da API), incluindo o marcador de truncamento, em unidades de código UTF-16 (padrão: 61440, ou seja, 60 KB). Aumente-o apenas se o seu backend de telemetria aceitar valores de atributo maiores que 64 KB, ou reduza-o para diminuir o volume de telemetria. Requer Claude Code v2.1.214 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Defina como `1` para gravar erros de diagnóstico do exportador OpenTelemetry no stderr. Por padrão, esses erros aparecem apenas com `--debug`, então um exportador mal configurado, como em uma colisão de porta do Prometheus, falharia silenciosamente. Requer Claude Code v2.1.179 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage) |345| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Defina como `1` para gravar os erros de diagnóstico do exportador OpenTelemetry no stderr. Por padrão, esses erros só aparecem com `--debug`, então, caso contrário, um exportador mal configurado, como em uma colisão de porta do Prometheus, falha silenciosamente. Requer Claude Code v2.1.179 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout em milissegundos para descarregar spans pendentes do OpenTelemetry (padrão: 5000). Consulte [Monitoramento](/docs/pt/monitoring-usage) |346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout em milissegundos para descarregar spans pendentes do OpenTelemetry (padrão: 5000). Consulte [Monitoramento](/docs/pt/monitoring-usage) |

345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para atualizar cabeçalhos dinâmicos do OpenTelemetry em milissegundos (padrão: 1740000 / 29 minutos). Consulte [Cabeçalhos dinâmicos](/docs/pt/monitoring-usage#dynamic-headers) |347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo, em milissegundos, para atualizar cabeçalhos dinâmicos do OpenTelemetry (padrão: 1740000 / 29 minutos). Consulte [Cabeçalhos dinâmicos](/docs/pt/monitoring-usage#dynamic-headers) |

346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout em milissegundos para o exportador OpenTelemetry concluir no encerramento (padrão: 2000). Aumente se métricas forem descartadas na saída. Consulte [Monitoramento](/docs/pt/monitoring-usage) |348| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout em milissegundos para o exportador OpenTelemetry terminar no encerramento (padrão: 2000). Aumente-o se métricas forem descartadas na saída. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

347| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Defina como `1` para permitir que o Claude Code execute o comando de atualização do seu gerenciador de pacotes em segundo plano quando uma nova versão estiver disponível. Aplica-se a instalações via Homebrew e WinGet. Outros gerenciadores de pacotes continuam mostrando o comando de atualização sem executá-lo. Consulte [Atualizações automáticas](/docs/pt/setup#auto-updates) |349| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Defina como `1` para permitir que o Claude Code execute o comando de atualização do seu gerenciador de pacotes em segundo plano quando uma nova versão estiver disponível. Aplica-se a instalações via Homebrew e WinGet. Outros gerenciadores de pacotes continuam mostrando o comando de atualização sem executá-lo. Consulte [Atualizações automáticas](/docs/pt/setup#auto-updates) |

348| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção de escrita compatível com Perforce. Quando definida, Edit, Write e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo de destino não tiver o bit de escrita do proprietário, que o Perforce remove em arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o rastreamento de alterações do Perforce |350| `CLAUDE_CODE_PERFORCE_MODE` | Defina como `1` para ativar a proteção de gravação compatível com o Perforce. Quando definida, Edit, Write e NotebookEdit falham com uma dica `p4 edit <file>` se o arquivo de destino não tiver o bit de gravação do proprietário, que o Perforce remove em arquivos sincronizados até que `p4 edit` os abra. Isso impede que o Claude Code contorne o rastreamento de alterações do Perforce |

349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz de plugins. Apesar do nome, isto define o diretório pai, não o próprio cache: os marketplaces e o cache de plugins ficam em subdiretórios sob este caminho. O padrão é `~/.claude/plugins` |351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sobrescreve o diretório raiz de plugins. Apesar do nome, isso define o diretório pai, não o cache em si: os marketplaces e o cache de plugins ficam em subdiretórios sob este caminho. O padrão é `~/.claude/plugins` |

350| `CLAUDE_CODE_PLUGIN_DIRS` | Diretórios de plugins a carregar para a sessão, cada um carregado da forma como uma flag [`--plugin-dir`](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) o carrega. Separe vários caminhos com `:` no Unix ou `;` no Windows. Informe cada caminho como um caminho absoluto ou inicie-o com `~`, porque o Claude Code ignora caminhos relativos. Requer Claude Code v2.1.280 ou posterior. Consulte [Carregar um plugin para uma sessão](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session) |352| `CLAUDE_CODE_PLUGIN_DIRS` | Diretórios de plugins a serem carregados para a sessão, cada um carregado da mesma forma que uma flag [`--plugin-dir`](/docs/pt/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) o carrega. Separe vários caminhos com `:` no Unix ou `;` no Windows. Informe cada caminho como um caminho absoluto ou comece-o com `~`, porque o Claude Code ignora caminhos relativos. Requer Claude Code v2.1.280 ou posterior. Consulte [Carregar um plugin para uma sessão](/docs/pt/plugins/create#load-a-directory-or-archive-for-one-session) |

351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout em milissegundos para clonar ou atualizar um marketplace de plugins (padrão: 120000). Aumente este valor para repositórios grandes ou conexões de rede lentas. Consulte [Git clone atingiu o timeout](/docs/pt/plugins/troubleshooting#git-clone-timed-out-after-120s) |353| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout em milissegundos para clonar ou atualizar um marketplace de plugins (padrão: 120000). Aumente este valor para repositórios grandes ou conexões de rede lentas. Consulte [Git clone timed out](/docs/pt/plugins/troubleshooting#git-clone-timed-out-after-120s) |

352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para pular a tentativa de clonar novamente e continuar usando o checkout existente do marketplace quando uma atualização do marketplace não consegue alcançar ou se autenticar no remoto. Útil em ambientes offline ou isolados (airgapped), onde clonar novamente falharia da mesma forma. Consulte [Atualizações do marketplace falham em ambientes offline](/docs/pt/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Defina como `1` para pular a tentativa de clonar novamente e continuar usando o checkout existente do marketplace quando uma atualização do marketplace não consegue alcançar o remoto ou se autenticar nele. Útil em ambientes offline ou isolados (airgapped), onde clonar novamente falharia da mesma forma. Consulte [Atualizações do marketplace falham em ambientes offline](/docs/pt/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar fontes abreviadas `owner/repo` do GitHub via HTTPS em vez de SSH. Aplica-se à instalação e atualização de plugins, e a `/plugin marketplace add` e `update`. Útil em runners de CI, contêineres ou qualquer ambiente sem uma chave SSH configurada para `github.com` |355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Defina como `1` para clonar fontes abreviadas `owner/repo` do GitHub via HTTPS em vez de SSH. Aplica-se à instalação e atualização de plugins, e a `/plugin marketplace add` e `update`. Útil em runners de CI, contêineres ou qualquer ambiente sem uma chave SSH configurada para `github.com` |

354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Caminho para um ou mais diretórios seed de plugins somente leitura, separados por `:` no Unix ou `;` no Windows. Use isto para incluir um diretório de plugins pré-preenchido em uma imagem de contêiner. O Claude Code registra marketplaces desses diretórios na inicialização e usa plugins pré-armazenados em cache sem clonar novamente. Consulte [Pré-preencher plugins para contêineres](/docs/pt/plugins/org#seed-containers-and-ci) |356| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Caminho para um ou mais diretórios seed de plugins somente leitura, separados por `:` no Unix ou `;` no Windows. Use para incluir um diretório de plugins pré-preenchido em uma imagem de contêiner. O Claude Code registra marketplaces a partir desses diretórios na inicialização e usa plugins já armazenados em cache sem clonar novamente. Consulte [Pré-preencher plugins para contêineres](/docs/pt/plugins/org#seed-containers-and-ci) |

355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Defina como `1` para impedir que o Claude Code passe `-ExecutionPolicy Bypass` ao iniciar o PowerShell para chamadas de ferramenta, hooks e comandos da linha de status, respeitando em vez disso a política de execução efetiva da máquina. Por padrão, o Claude Code contorna a política de execução no escopo do processo para que scripts `.ps1` e importações de módulos funcionem em instalações do Windows com o padrão Restricted. O bypass no escopo do processo nunca sobrescreve as políticas de grupo `MachinePolicy` ou `UserPolicy`, independentemente desta configuração |357| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Defina como `1` para impedir que o Claude Code passe `-ExecutionPolicy Bypass` ao iniciar o PowerShell para chamadas de ferramenta, hooks e comandos da linha de status, e respeitar a política de execução efetiva da máquina. Por padrão, o Claude Code contorna a política de execução no escopo do processo para que scripts `.ps1` e importações de módulos funcionem em instalações do Windows com o padrão Restricted. O bypass no escopo do processo nunca sobrescreve `MachinePolicy` ou `UserPolicy` da Política de Grupo, independentemente desta configuração |

356| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Limite máximo em milissegundos da espera ociosa por subagentes e fluxos de trabalho em segundo plano após o turno final no [modo não interativo](/docs/pt/headless#background-tasks-at-exit) com a flag `-p`. A espera ociosa recomeça cada vez que Claude usa um turno para tratar um resultado em segundo plano. Padrão: `600000`, ou 10 minutos. Quando a espera ociosa atinge o limite, o Claude Code para de aguardar as tarefas em segundo plano restantes e encerra. Defina como `0` para aguardar indefinidamente. Este limite é separado do período de tolerância de cinco segundos que se aplica a shells simples em segundo plano. Requer Claude Code v2.1.182 ou posterior |358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Limite máximo, em milissegundos, da espera ociosa por subagentes e fluxos de trabalho em segundo plano após o turno final no [modo não interativo](/docs/pt/headless#background-tasks-at-exit) com a flag `-p`. A espera ociosa recomeça cada vez que Claude executa um turno para tratar um resultado em segundo plano. Padrão: `600000`, ou 10 minutos. Quando a espera ociosa atinge o limite, o Claude Code para de aguardar as tarefas em segundo plano restantes e encerra. Defina como `0` para aguardar indefinidamente. Este limite é separado do período de tolerância de cinco segundos que se aplica a shells simples em segundo plano. Requer Claude Code v2.1.182 ou posterior |

357| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia os processos que o Claude Code executa a partir do seu próprio binário, como o serviço em segundo plano que hospeda as sessões do [agent view](/docs/pt/agent-view), por meio de um inicializador corporativo informado como prefixo de argv, como `/opt/corp/launcher`. Defina-a no bloco `env` das configurações de usuário ou [configurações gerenciadas](/docs/pt/managed-settings), não como um export do shell, para que o serviço em segundo plano desanexado a herde; as configurações de projeto e locais não podem defini-la. Equivalente à [configuração `processWrapper`](/docs/pt/settings-reference#processwrapper), que requer Claude Code v2.1.210 ou posterior; esta variável tem precedência quando ambas estão definidas. A extensão do VS Code configura seu próprio inicializador separadamente por meio da configuração `claudeProcessWrapper`. Ignorada no Windows. Consulte [Executar o Claude Code por trás de um inicializador corporativo](/docs/pt/corporate-launcher) para o formato do valor, o que o inicializador abrange e o contrato que o inicializador deve satisfazer. Requer Claude Code v2.1.208 ou posterior |359| `CLAUDE_CODE_PROCESS_WRAPPER` | Inicia os processos que o Claude Code inicia a partir do seu próprio binário, como o serviço em segundo plano que hospeda as sessões da [visualização de agentes](/docs/pt/agent-view), por meio de um inicializador corporativo informado como prefixo argv, como `/opt/corp/launcher`. Defina-a no bloco `env` das configurações de usuário ou das [configurações gerenciadas](/docs/pt/managed-settings), não como um export do shell, para que o serviço em segundo plano desanexado a herde; configurações de projeto e locais não podem defini-la. Equivalente à [configuração `processWrapper`](/docs/pt/settings-reference#processwrapper), que requer Claude Code v2.1.210 ou posterior; esta variável tem precedência quando ambas estão definidas. A extensão do VS Code configura seu próprio inicializador separadamente por meio da configuração `claudeProcessWrapper`. Ignorada no Windows. Consulte [Executar o Claude Code por trás de um inicializador corporativo](/docs/pt/corporate-launcher) para o formato do valor, o que o inicializador abrange e o contrato que ele deve cumprir. Requer Claude Code v2.1.208 ou posterior |

358| `CLAUDE_CODE_PROJECT_DIR_NAME` | Defina junto com `CLAUDE_CONFIG_DIR` para escolher o nome do diretório em `projects/` sob o qual o Claude Code armazena as transcrições e a memória automática dessa sessão, no lugar de um derivado do caminho do diretório de trabalho. Por exemplo, iniciar o Claude Code com `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` as armazena em `/srv/tenant-a/projects/work/`. O Claude Code ignora esta variável quando `CLAUDE_CONFIG_DIR` não está definida e a lê apenas do ambiente a partir do qual você inicia `claude`, nunca de um [bloco `env` de arquivo de configurações](#in-settings-files). Consulte [Nomear o diretório do projeto você mesmo](/docs/pt/sessions#name-the-project-directory-yourself). Requer Claude Code v2.1.234 ou posterior |360| `CLAUDE_CODE_PROJECT_DIR_NAME` | Defina junto com `CLAUDE_CONFIG_DIR` para escolher o nome do diretório em `projects/` no qual o Claude Code armazena as transcrições e a memória automática dessa sessão, no lugar de um nome derivado do caminho do diretório de trabalho. Por exemplo, iniciar o Claude Code com `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` as armazena em `/srv/tenant-a/projects/work/`. O Claude Code ignora esta variável quando `CLAUDE_CONFIG_DIR` não está definida e a lê apenas do ambiente a partir do qual você inicia `claude`, nunca de um [bloco `env` de arquivo de configurações](#in-settings-files). Consulte [Nomear o diretório do projeto você mesmo](/docs/pt/sessions#name-the-project-directory-yourself). Requer Claude Code v2.1.234 ou posterior |

359| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que o Claude Code aceita, para escolher o [TTL do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) da conversa principal: seus turnos interativos, `-p` e do SDK, além dos auxiliares executados em linha com eles. Tem precedência sobre a configuração `promptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a sobrescreve. A API cobra gravações de cache de 1 hora a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |361| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que o Claude Code aceita, para escolher o [TTL do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) da conversa principal: seus turnos interativos, de `-p` e do SDK, além dos auxiliares executados junto com eles. Tem precedência sobre a configuração `promptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a sobrescreve. A API cobra gravações de cache de 1 hora a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |

360| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Defina como `1` para propagar o contexto de rastreamento W3C quando `ANTHROPIC_BASE_URL` apontar para um proxy personalizado. A propagação abrange o cabeçalho `traceparent` em requisições ao modelo e a MCP HTTP e a variável de ambiente `TRACEPARENT` para subprocessos de Bash, PowerShell e hooks. Por padrão, a propagação fica ativada somente quando conectado diretamente à API da Anthropic. Adicionada na v2.1.152. Consulte [Traces (beta)](/docs/pt/monitoring-usage#traces-beta) |362| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Defina como `1` para propagar o contexto de rastreamento W3C quando `ANTHROPIC_BASE_URL` aponta para um proxy personalizado. A propagação abrange o cabeçalho `traceparent` em requisições de modelo e de MCP HTTP e a variável de ambiente `TRACEPARENT` para subprocessos de Bash, PowerShell e hooks. Por padrão, a propagação é ativada apenas quando há conexão direta com a API da Anthropic. Adicionada na v2.1.152. Consulte [Traces (beta)](/docs/pt/monitoring-usage#traces-beta) |

361| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Definida por plataformas host que incorporam o Claude Code e gerenciam o roteamento do provedor de modelos em seu nome. Quando definida, o Claude Code ignora variáveis de seleção de provedor, endpoint e autenticação, como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY`, em arquivos de configurações, para que as configurações de usuário não possam sobrescrever o roteamento do host. O Claude Code também ignora chaves de seleção de modelo, como `model`, `fallbackModel` e `modelOverrides`, nas [configurações gerenciadas](/docs/pt/managed-settings), qualquer que seja a fonte gerenciada que as entregue, para que a configuração de modelo do host tenha precedência sobre uma fixação de modelo gerenciada desatualizada. O Claude Code também ignora variáveis de seleção de modelo, como `ANTHROPIC_MODEL` e a família `ANTHROPIC_DEFAULT_*_MODEL`, em um bloco `env` gerenciado; uma allowlist [`availableModels`](/docs/pt/model-config#restrict-model-selection) nas configurações gerenciadas ainda se aplica, a menos que o host forneça a sua própria. O Claude Code também pula a desativação automática de telemetria que, de outra forma, aplica em provedores terceirizados, como Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft Foundry, de modo que a telemetria segue a desativação padrão via `DISABLE_TELEMETRY`. Consulte [Comportamentos padrão por provedor de API](/docs/pt/data-usage#default-behaviors-by-api-provider) |363| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Definida por plataformas host que incorporam o Claude Code e gerenciam o roteamento do provedor de modelos em seu nome. Quando definida, o Claude Code ignora variáveis de seleção de provedor, endpoint e autenticação, como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY`, em arquivos de configurações, para que as configurações de usuário não possam sobrescrever o roteamento do host. O Claude Code também ignora chaves de seleção de modelo, como `model`, `fallbackModel` e `modelOverrides`, nas [configurações gerenciadas](/docs/pt/managed-settings), qualquer que seja a fonte gerenciada que as entregue, para que a configuração de modelos do host tenha precedência sobre uma fixação de modelo gerenciada desatualizada. O Claude Code também ignora variáveis de seleção de modelo, como `ANTHROPIC_MODEL` e a família `ANTHROPIC_DEFAULT_*_MODEL`, em um bloco `env` gerenciado; uma allowlist [`availableModels`](/docs/pt/model-config#restrict-model-selection) nas configurações gerenciadas ainda se aplica, a menos que o host forneça a sua própria. O Claude Code também pula a desativação automática de telemetria que, de outra forma, aplica em provedores terceirizados como Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft Foundry, então a telemetria segue a desativação padrão por `DISABLE_TELEMETRY`. Consulte [Comportamentos padrão por provedor de API](/docs/pt/data-usage#default-behaviors-by-api-provider) |

362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Defina como `1` para permitir que o proxy realize a resolução de DNS em vez do chamador. Opção para ambientes em que o proxy deve lidar com a resolução de nomes de host |364| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Defina como `1` para permitir que o proxy realize a resolução de DNS em vez do chamador. Opcional, para ambientes em que o proxy deve lidar com a resolução de nomes de host |

363| `CLAUDE_CODE_REMOTE` | Definida automaticamente como `true` quando o Claude Code está sendo executado como uma [sessão na nuvem](/docs/pt/claude-code-on-the-web). Leia-a a partir de um hook ou script de configuração para detectar se você está em uma sessão na nuvem |365| `CLAUDE_CODE_REMOTE` | Definida automaticamente como `true` quando o Claude Code está sendo executado como uma [sessão na nuvem](/docs/pt/claude-code-on-the-web). Leia-a a partir de um hook ou script de configuração para detectar se você está em uma sessão na nuvem |

364| `CLAUDE_CODE_REMOTE_SESSION_ID` | Definida automaticamente em [sessões na nuvem](/docs/pt/claude-code-on-the-web) com o ID da sessão atual. Leia-a para construir um link de volta para a transcrição da sessão. Consulte [Vincular a saída de volta à sessão](/docs/pt/cloud-environments#link-output-back-to-the-session) |366| `CLAUDE_CODE_REMOTE_SESSION_ID` | Definida automaticamente em [sessões na nuvem](/docs/pt/claude-code-on-the-web) com o ID da sessão atual. Leia-a para construir um link de volta à transcrição da sessão. Consulte [Vincular a saída de volta à sessão](/docs/pt/cloud-environments#link-output-back-to-the-session) |

365| `CLAUDE_CODE_RESTRICTED` | Defina como `1` para iniciar a sessão no modo restrito, o mesmo que passar [`--restricted`](/docs/pt/cli-reference#cli-flags). O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.248 ou posterior |367| `CLAUDE_CODE_RESTRICTED` | Defina como `1` para iniciar a sessão no modo restrito, o mesmo que passar [`--restricted`](/docs/pt/cli-reference#cli-flags). O Claude Code ignora esta variável no bloco `env` de um arquivo de configurações. Requer Claude Code v2.1.248 ou posterior |

366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Defina como `1` para retomar automaticamente se a sessão anterior terminou no meio de um turno. Usada no modo SDK para que o modelo continue sem exigir que o SDK reenvie o prompt. Para desativar, remova a definição da variável ou defina-a como `0`. Para o painel de chat do VS Code, consulte [Continuar conversas após um recarregamento](/docs/pt/vs-code#continue-conversations-after-a-reload) |368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Defina como `1` para retomar automaticamente se a sessão anterior terminou no meio de um turno. Usada no modo SDK para que o modelo continue sem exigir que o SDK reenvie o prompt. Para desativar, remova a definição da variável ou defina-a como `0`. Para o painel de chat do VS Code, consulte [Continuar conversas após recarregar](/docs/pt/vs-code#continue-conversations-after-a-reload) |

367| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Idade máxima em milissegundos da última mensagem da transcrição para que uma sessão que terminou no meio de um turno continue automaticamente ao ser retomada. Quando a última mensagem é mais antiga que esse limite, o Claude Code pula a retomada automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e sua mensagem de continuação `CLAUDE_CODE_RESUME_PROMPT`, e a sessão inicia ociosa para que você continue explicitamente. Não definida ou `0` significa sem limite, exceto que um turno cuja última requisição falhou com um erro de API só é retomado enquanto esse erro tiver menos de seis horas. Um valor positivo limita todos os turnos, incluindo esses; um valor negativo ou não numérico aplica um limite de uma hora. Scripts de inicialização para agentes de longa duração podem definir isto para que uma reinicialização sobre uma transcrição antiga não execute novamente um prompt obsoleto. O Claude Code define por conta própria um limite de uma hora quando reinicia uma sessão do [agent view](/docs/pt/agent-view) que travou e herdou sua conversa de uma sessão interativa. Requer Claude Code v2.1.211 ou posterior |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Idade máxima, em milissegundos, da última mensagem da transcrição para que uma sessão que terminou no meio de um turno continue automaticamente ao ser retomada. Quando a última mensagem é mais antiga que esse limite, o Claude Code pula a retomada automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` e sua mensagem de continuação `CLAUDE_CODE_RESUME_PROMPT`, e a sessão inicia ociosa para que você continue explicitamente. Não definida ou `0` significa sem limite, exceto que um turno cuja última requisição falhou com um erro de API é retomado apenas enquanto esse erro tiver menos de seis horas. Um valor positivo limita todos os turnos, incluindo esses; um valor negativo ou não numérico aplica um limite de uma hora. Scripts de inicialização de agentes de longa duração podem defini-la para que uma reinicialização com uma transcrição antiga não execute novamente um prompt desatualizado. O próprio Claude Code define um limite de uma hora quando reinicia uma sessão da [visualização de agentes](/docs/pt/agent-view) que travou e que herdou sua conversa de uma sessão interativa. Requer Claude Code v2.1.211 ou posterior |

368| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescreve a mensagem de continuação que o Claude Code envia a Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continua um turno interrompido em vez de reenviar seu prompt, ou quando você retoma uma [chamada de ferramenta adiada](/docs/pt/hooks#defer-a-tool-call-for-later) com `-p`. O padrão é `Continue from where you left off.`. Uma string vazia usa o padrão |370| `CLAUDE_CODE_RESUME_PROMPT` | Sobrescreve a mensagem de continuação que o Claude Code envia a Claude quando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continua um turno interrompido em vez de reenviar seu prompt, ou quando você retoma uma [chamada de ferramenta adiada](/docs/pt/hooks#defer-a-tool-call-for-later) com `-p`. O padrão é `Continue from where you left off.`. Uma string vazia usa o padrão |

369| `CLAUDE_CODE_RETRY_WATCHDOG` | Defina como `1` para sessões não supervisionadas, como harnesses de avaliação, jobs de CI ou workers remotos. Tenta novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. O Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que informa um limite de gastos ou créditos de uso esgotados, mesmo um vindo de um [limite de gastos do gateway](/docs/pt/errors#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses casos indefinidamente. Para requisições do modo rápido, consulte [Lidar com rate limits](/docs/pt/fast-mode#handle-rate-limits). O watchdog aguarda até 5 minutos entre as tentativas, ou até que o limite seja redefinido quando a resposta traz um horário de redefinição do rate limit, de modo que uma sessão que atinge um limite de uso aguarda o restante da janela. Na v2.1.199 ou posterior, também aumenta a contagem padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões perdidas, para 300, cerca de três horas de espera, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. Requer Claude Code v2.1.186 ou posterior |371| `CLAUDE_CODE_RETRY_WATCHDOG` | Defina como `1` para sessões não supervisionadas, como harnesses de avaliação, jobs de CI ou workers remotos. Tenta novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. O Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que informa um limite de gastos ou créditos de uso esgotados, mesmo que venha de um [limite de gastos do gateway](/docs/pt/errors#spend-limit-reached) que é redefinido periodicamente. Antes da v2.1.239, o watchdog tentava novamente esses erros indefinidamente. Para requisições no modo rápido, consulte [Lidar com rate limits](/docs/pt/fast-mode#handle-rate-limits). O watchdog aguarda até 5 minutos entre as tentativas, ou até o limite ser redefinido quando a resposta traz um horário de redefinição do rate limit, para que uma sessão que atinge um limite de uso aguarde o restante da janela. Na v2.1.199 ou posterior, ele também aumenta a contagem padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões interrompidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. Requer Claude Code v2.1.186 ou posterior |

370| `CLAUDE_CODE_SAFE_MODE` | Defina como `1` para iniciar no modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos e agentes personalizados, estilos de saída, fluxos de trabalho, temas personalizados, atalhos de teclado personalizados, comandos de linha de status e de sugestão de arquivos, servidores LSP e memória automática não são carregados, para a solução de problemas de uma configuração quebrada. A política das configurações gerenciadas ainda se aplica, incluindo hooks, linha de status e comandos de sugestão de arquivos configurados por política; plugins gerenciados, skills gerenciadas, CLAUDE.md gerenciado e servidores MCP configurados por política não. Equivalente a passar [`--safe-mode`](/docs/pt/cli-reference#cli-flags). Processos filhos iniciados diretamente herdam a variável |372| `CLAUDE_CODE_SAFE_MODE` | Defina como `1` para iniciar no modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos e agentes personalizados, estilos de saída, fluxos de trabalho, temas personalizados, atalhos de teclado personalizados, comandos de linha de status e de sugestão de arquivos, servidores LSP e memória automática não são carregados, para solucionar problemas de uma configuração quebrada. A política de configurações gerenciadas ainda se aplica, incluindo hooks, linha de status e comandos de sugestão de arquivos configurados por política; plugins gerenciados, skills gerenciadas, CLAUDE.md gerenciado e servidores MCP configurados por política não se aplicam. Equivalente a passar [`--safe-mode`](/docs/pt/cli-reference#cli-flags). Processos filhos iniciados diretamente herdam a variável |

371| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita quantas vezes scripts específicos podem ser invocados por sessão quando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está definida. As chaves são substrings comparadas com o texto do comando; os valores são limites inteiros de chamadas. Por exemplo, `{"deploy.sh": 2}` permite que `deploy.sh` seja chamado no máximo duas vezes. A correspondência é baseada em substring, então truques de expansão do shell como `./scripts/deploy.sh $(evil)` ainda contam para o limite. A expansão em tempo de execução via `xargs` ou `find -exec` não é detectada; este é um controle de defesa em profundidade |373| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita quantas vezes scripts específicos podem ser invocados por sessão quando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` está definida. As chaves são substrings comparadas com o texto do comando; os valores são limites inteiros de chamadas. Por exemplo, `{"deploy.sh": 2}` permite que `deploy.sh` seja chamado no máximo duas vezes. A correspondência é baseada em substrings, então truques de expansão do shell como `./scripts/deploy.sh $(evil)` ainda contam para o limite. A multiplicação em tempo de execução via `xargs` ou `find -exec` não é detectada; este é um controle de defesa em profundidade |

372| `CLAUDE_CODE_SCROLL_SPEED` | Define o multiplicador de rolagem da roda do mouse na [renderização em tela cheia](/docs/pt/fullscreen#mouse-wheel-scrolling). Aceita qualquer valor positivo até 20, incluindo valores fracionários abaixo de 1, como `0.5`, para desacelerar a rolagem acelerada do trackpad e da roda em terminais que já amplificam eventos da roda. Defina como `3` para corresponder ao `vim` se o seu terminal envia um evento da roda por entalhe sem amplificação. Ignorada no terminal das IDEs JetBrains, onde o Claude Code usa seu próprio tratamento de rolagem |374| `CLAUDE_CODE_SCROLL_SPEED` | Define o multiplicador de rolagem da roda do mouse na [renderização em tela cheia](/docs/pt/fullscreen#mouse-wheel-scrolling). Aceita qualquer valor positivo até 20, incluindo valores fracionários abaixo de 1, como `0.5`, para desacelerar a rolagem acelerada do trackpad e da roda em terminais que já amplificam os eventos da roda. Defina como `3` para corresponder ao `vim` se o seu terminal envia um evento de roda por entalhe sem amplificação. Ignorada no terminal dos IDEs JetBrains, em que o Claude Code usa seu próprio tratamento de rolagem |

373| `CLAUDE_CODE_SEND_FEEDBACK` | Defina como `0` para desativar o [feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) em uma sessão. Defina como `1` para ativá-lo onde sua conta já tem acesso; a variável não pode conceder acesso por si só, e as outras opções que desativam o feedback, como `DISABLE_FEEDBACK_COMMAND` e o valor `off` da configuração [`feedbackDrafts`](/docs/pt/settings-reference#feedbackdrafts), ainda se aplicam |375| `CLAUDE_CODE_SEND_FEEDBACK` | Defina como `0` para desativar o [feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) para uma sessão. Defina como `1` para ativá-lo onde sua conta já tem acesso; a variável não pode conceder acesso por si só, e os outros controles que desativam o feedback, como `DISABLE_FEEDBACK_COMMAND` e o valor `off` da configuração [`feedbackDrafts`](/docs/pt/settings-reference#feedbackdrafts), ainda se aplicam |

374| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescreve o orçamento de tempo em milissegundos para hooks [SessionEnd](/docs/pt/hooks#sessionend). O valor também é o timeout para cada hook que não define seu próprio `timeout`. Aplica-se à saída da sessão, a `/clear` e à troca de sessões via `/resume` interativo. Por padrão, o orçamento é de 1,5 segundo, elevado automaticamente para o maior `timeout` por hook configurado nos arquivos de configurações, até 60 segundos. Timeouts em hooks fornecidos por plugins não elevam o orçamento |376| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Sobrescreve o orçamento de tempo, em milissegundos, para hooks [SessionEnd](/docs/pt/hooks#sessionend). O valor também é o timeout de cada hook que não define seu próprio `timeout`. Aplica-se à saída da sessão, a `/clear` e à troca de sessões via `/resume` interativo. Por padrão, o orçamento é de 1,5 segundo, elevado automaticamente para o maior `timeout` por hook configurado em arquivos de configurações, até 60 segundos. Timeouts em hooks fornecidos por plugins não aumentam o orçamento |

375| `CLAUDE_CODE_SESSION_ID` | Definida automaticamente com o ID da sessão atual em subprocessos das ferramentas Bash e PowerShell, subprocessos de [comandos de hook](/docs/pt/hooks) e subprocessos de [servidores MCP](/docs/pt/mcp) stdio. Para Bash, PowerShell e hooks, corresponde ao campo `session_id` na entrada JSON do hook e é atualizada em `/clear`. Um subprocesso de servidor MCP mantém o ID com o qual foi iniciado. Com `--resume <session-id>`, ele recebe o ID retomado, correspondendo aos hooks e ao Bash. Com `--continue` ou `--resume` sem um ID explícito, ele pode receber o ID da inicialização original em vez disso. Use para correlacionar scripts e ferramentas externas com a sessão do Claude Code que os iniciou |377| `CLAUDE_CODE_SESSION_ID` | Definida automaticamente com o ID da sessão atual em subprocessos das ferramentas Bash e PowerShell, em subprocessos de [comandos de hook](/docs/pt/hooks) e em subprocessos de [servidores MCP](/docs/pt/mcp) stdio. Para Bash, PowerShell e hooks, corresponde ao campo `session_id` na entrada JSON do hook e é atualizada em `/clear`. Um subprocesso de servidor MCP mantém o ID com o qual foi iniciado. Em `--resume <session-id>`, ele recebe o ID retomado, correspondendo aos hooks e ao Bash. Em `--continue` ou `--resume` sem um ID explícito, ele pode receber o ID da inicialização original. Use para correlacionar scripts e ferramentas externas com a sessão do Claude Code que os iniciou |

376| `CLAUDE_CODE_SHELL` | Define o shell que o Claude Code usa para executar comandos da ferramenta Bash. Aceita um caminho para um binário `bash` ou `zsh`, por exemplo `/opt/homebrew/bin/bash`. Outros shells, como `fish`, não são compatíveis. Se o valor não for um caminho funcional de `bash` ou `zsh`, o Claude Code o ignora e recorre à detecção automática. A detecção automática usa seu `$SHELL` quando ele aponta para `bash` ou `zsh`; caso contrário, escolhe o primeiro `zsh` e depois `bash` funcional encontrado no seu `PATH` e nos locais de instalação padrão |378| `CLAUDE_CODE_SHELL` | Define o shell que o Claude Code usa para executar comandos da ferramenta Bash. Aceita um caminho para um binário `bash` ou `zsh`, por exemplo `/opt/homebrew/bin/bash`. Outros shells, como `fish`, não são suportados. Se o valor não for um caminho funcional de `bash` ou `zsh`, o Claude Code o ignora e recorre à detecção automática. A detecção automática usa seu `$SHELL` quando ele aponta para `bash` ou `zsh`; caso contrário, escolhe o primeiro `zsh` funcional e, depois, `bash` encontrado no seu `PATH` e nos locais de instalação padrão |

377| `CLAUDE_CODE_SHELL_PREFIX` | Prefixo de comando que envolve os comandos de shell que o Claude Code inicia: chamadas da ferramenta Bash, comandos de [hook](/docs/pt/hooks), comandos da [linha de status](/docs/pt/statusline) e comandos de inicialização de [servidores MCP](/docs/pt/mcp) stdio. Hooks do PowerShell e hooks no formato exec são executados sem o prefixo. Útil para logging ou auditoria. Definir um caminho de executável simples, como `/path/to/logger.sh`, executa cada comando como `/path/to/logger.sh '<command>'`. O wrapper recebe a linha de comando como um único argumento entre aspas de shell em `$1`, então o wrapper deve reavaliar `$1` com um shell, por exemplo `exec bash -c "$1"`. Tratar `$1` como um caminho de executável simples quebra servidores MCP stdio que passam argumentos como `npx -y <package>`. Para chamadas da ferramenta Bash, `$1` contém a invocação completa do shell que o Claude Code monta, incluindo a configuração do ambiente, e não apenas o comando que Claude executou |379| `CLAUDE_CODE_SHELL_PREFIX` | Prefixo de comando que envolve os comandos de shell que o Claude Code inicia: chamadas da ferramenta Bash, comandos de [hook](/docs/pt/hooks), comandos da [linha de status](/docs/pt/statusline) e comandos de inicialização de [servidores MCP](/docs/pt/mcp) stdio. Hooks do PowerShell e hooks em formato exec são executados sem o prefixo. Útil para logging ou auditoria. Definir um caminho de executável simples, como `/path/to/logger.sh`, executa cada comando como `/path/to/logger.sh '<command>'`. O wrapper recebe a linha de comando como um único argumento entre aspas do shell em `$1`, então o wrapper deve reavaliar `$1` com um shell, por exemplo `exec bash -c "$1"`. Tratar `$1` como um caminho de executável simples quebra servidores MCP stdio que passam argumentos como `npx -y <package>`. Para chamadas da ferramenta Bash, `$1` contém a invocação completa do shell que o Claude Code monta, incluindo a configuração do ambiente, não apenas o comando que Claude executou |

378| `CLAUDE_CODE_SIMPLE` | Defina como `1` para executar com um system prompt mínimo e apenas as ferramentas Bash, de leitura de arquivos e de edição de arquivos. As ferramentas MCP de `--mcp-config` continuam disponíveis. Desativa a descoberta automática de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memória automática e CLAUDE.md. Skills em um diretório que você passa com `--add-dir` ainda são carregadas. Tokens OAuth e credenciais do keychain não são lidos, então a autenticação da Anthropic deve vir de `ANTHROPIC_API_KEY` ou de um `apiKeyHelper` em `--settings`. Equivalente a passar [`--bare`](/docs/pt/headless#start-faster-with-bare-mode) |380| `CLAUDE_CODE_SIMPLE` | Defina como `1` para executar com um system prompt mínimo e apenas as ferramentas Bash, de leitura de arquivos e de edição de arquivos. As ferramentas MCP de `--mcp-config` continuam disponíveis. Desativa a descoberta automática de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memória automática e CLAUDE.md. Skills em um diretório que você passa com `--add-dir` ainda são carregadas. Tokens OAuth e credenciais do keychain não são lidos, então a autenticação da Anthropic deve vir de `ANTHROPIC_API_KEY` ou de um `apiKeyHelper` em `--settings`. Equivalente a passar [`--bare`](/docs/pt/headless#start-faster-with-bare-mode) |

379| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Defina como `1` para usar um system prompt mais curto e descrições de ferramentas abreviadas em qualquer modelo. Defina como `0`, `false`, `no` ou `off` para desativar mesmo em modelos nos quais o experimento ou a configuração do servidor a ativaria. O conjunto completo de ferramentas, hooks, servidores MCP e a descoberta de CLAUDE.md permanecem ativados |381| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Defina como `1` para usar um system prompt mais curto e descrições de ferramentas abreviadas em qualquer modelo. Defina como `0`, `false`, `no` ou `off` para desativar, mesmo em modelos em que o experimento ou a configuração do servidor o ativariam. O conjunto completo de ferramentas, os hooks, os servidores MCP e a descoberta de CLAUDE.md permanecem ativados |

380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Pula a autenticação do lado do cliente para o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), para gateways que assinam as requisições por conta própria |382| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Pula a autenticação do lado do cliente para o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), para gateways que assinam as requisições por conta própria |

381| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Defina como `1` para desativar o cache em processo das credenciais resolvidas a partir da cadeia padrão de provedores de credenciais da AWS, para que o Claude Code resolva a cadeia em toda requisição de API. Com o cache desativado, um perfil baseado em SSO solicita credenciais ao IAM Identity Center em toda requisição. Consulte [cache de credenciais e timeout de resolução](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout). Requer Claude Code v2.1.207 ou posterior |383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Defina como `1` para desativar o cache em processo das credenciais resolvidas a partir da cadeia de provedores de credenciais padrão da AWS, para que o Claude Code resolva a cadeia a cada requisição de API. Com o cache desativado, um perfil baseado em SSO solicita credenciais ao IAM Identity Center a cada requisição. Consulte [cache de credenciais e timeout de resolução](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout). Requer Claude Code v2.1.207 ou posterior |

382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Pula a autenticação da AWS para o Amazon Bedrock (por exemplo, ao usar um gateway de LLM) |384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Pula a autenticação da AWS para o Amazon Bedrock (por exemplo, ao usar um gateway de LLM) |

383| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Defina como `1` para tratar uma verificação de disponibilidade do [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) com falha como disponível, para redes que bloqueiam a requisição direta da verificação para `api.anthropic.com`. O Claude Code ainda respeita uma resposta "disabled by your organization" |385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Defina como `1` para tratar uma verificação de disponibilidade do [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) com falha como disponível, para redes que bloqueiam a requisição direta da verificação para `api.anthropic.com`. O Claude Code ainda respeita uma resposta "disabled by your organization" |

384| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Defina como `1` para pular a verificação de disponibilidade do [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) do lado do cliente, para proxies que interceptam a requisição da verificação em vez de recusá-la. A API ainda rejeita requisições do modo rápido quando sua organização tem o modo rápido desativado |386| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Defina como `1` para pular a verificação de disponibilidade do [modo rápido](/docs/pt/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) do lado do cliente, para proxies que interceptam a requisição da verificação em vez de recusá-la. A API ainda rejeita requisições no modo rápido quando sua organização tem o modo rápido desativado |

385| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Pula a autenticação do Azure para o Microsoft Foundry, para um proxy ou gateway que injeta seu próprio cabeçalho `Authorization`. O Claude Code envia requisições sem uma credencial do Azure e preserva o cabeçalho `Authorization` que você fornece, por exemplo por meio de `ANTHROPIC_CUSTOM_HEADERS`. Ignorada quando `ANTHROPIC_FOUNDRY_API_KEY` ou `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está definida. Antes da v2.1.203, esta variável deixava o cliente do Microsoft Foundry incapaz de enviar requisições, a menos que uma chave de API também estivesse definida |387| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Pula a autenticação do Azure para o Microsoft Foundry, para um proxy ou gateway que injeta seu próprio cabeçalho `Authorization`. O Claude Code envia as requisições sem uma credencial do Azure e preserva o cabeçalho `Authorization` que você fornece, por exemplo por meio de `ANTHROPIC_CUSTOM_HEADERS`. Ignorada quando `ANTHROPIC_FOUNDRY_API_KEY` ou `ANTHROPIC_FOUNDRY_AUTH_TOKEN` está definida. Antes da v2.1.203, esta variável deixava o cliente do Microsoft Foundry incapaz de enviar requisições, a menos que uma chave de API também estivesse definida |

386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Pula a autenticação da AWS para o Amazon Bedrock Mantle (por exemplo, ao usar um gateway de LLM) |388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Pula a autenticação da AWS para o Amazon Bedrock Mantle (por exemplo, ao usar um gateway de LLM) |

387| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | As [verificações de modelo na inicialização](/docs/pt/amazon-bedrock#startup-model-checks) no [Amazon Bedrock](/docs/pt/amazon-bedrock) e no [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai) lembram, nesta máquina, quais modelos descobriram que sua conta não pode invocar, por até um dia. Defina como `1` para desativar essa memória. Requer Claude Code v2.1.285 ou posterior |389| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | As [verificações de modelos na inicialização](/docs/pt/amazon-bedrock#startup-model-checks) no [Amazon Bedrock](/docs/pt/amazon-bedrock) e no [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai) lembram, nesta máquina, quais modelos elas descobriram que sua conta não pode invocar, por até um dia. Defina como `1` para desativar essa memória. Requer Claude Code v2.1.285 ou posterior |

388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Defina como `1` para não gravar o histórico de prompts e as transcrições de sessão em disco. Sessões iniciadas com esta variável definida não aparecem em `--resume`, `--continue` nem no histórico da seta para cima. Útil para sessões efêmeras executadas por script |390| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Defina como `1` para pular a gravação do histórico de prompts e das transcrições de sessão em disco. Sessões iniciadas com esta variável definida não aparecem em `--resume`, `--continue` nem no histórico da seta para cima. Útil para sessões efêmeras executadas por scripts |

389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Pula a autenticação do Google para o Agent Platform do Google Cloud (por exemplo, ao usar um gateway de LLM) |391| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Pula a autenticação do Google para o Agent Platform do Google Cloud (por exemplo, ao usar um gateway de LLM) |

390| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Defina como `1` para que uma sessão iniciada com `--output-format stream-json` grave uma [mensagem de resultado informando por que o Claude Code se recusou a iniciar](/docs/pt/agent-sdk/typescript#startup_failure_reason) para falhas de inicialização que, de outra forma, terminam apenas com stderr. Requer Claude Code v2.1.274 ou posterior |392| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Defina como `1` para que uma sessão iniciada com `--output-format stream-json` grave uma [mensagem de resultado informando por que o Claude Code se recusou a iniciar](/docs/pt/agent-sdk/typescript#startup_failure_reason) para falhas de inicialização que, de outra forma, terminam apenas com stderr. Requer Claude Code v2.1.274 ou posterior |

391| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de vezes consecutivas que um hook [Stop](/docs/pt/hooks#stop) ou [SubagentStop](/docs/pt/hooks#subagentstop) pode impedir o término do turno antes que o Claude Code o sobrescreva e encerre o turno mesmo assim (padrão: 8). Defina como `0` para desativar o limite. Aumente-o se o seu hook legitimamente precisar de mais iterações para ser resolvido |393| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de vezes consecutivas que um hook [Stop](/docs/pt/hooks#stop) ou [SubagentStop](/docs/pt/hooks#subagentstop) pode impedir que o turno termine antes que o Claude Code o sobrescreva e encerre o turno mesmo assim (padrão: 8). Defina como `0` para desativar o limite. Aumente-o se o seu hook legitimamente precisar de mais iterações para chegar a uma conclusão |

392| `CLAUDE_CODE_SUBAGENT_MODEL` | O modelo padrão para [subagentes](/docs/pt/sub-agents#choose-a-model), membros de [equipes de agentes](/docs/pt/agent-teams#specify-teammates-and-models) e agentes de [workflow](/docs/pt/workflows) que não recebem um modelo de outra forma. Aceita um alias como `haiku` ou um nome de modelo completo. Duas fontes têm precedência sobre ela: um modelo que Claude passa ao criar o agente e um campo `model` na definição do agente, incluindo `inherit`. Para mudar isso, defina [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/pt/sub-agents#run-every-subagent-on-one-model). Consulte [Escolher um modelo](/docs/pt/sub-agents#choose-a-model) para a ordem completa. Defini-la como `inherit` é o mesmo que deixá-la sem definição. Antes da v2.1.251, esta variável sobrescrevia tanto o modelo por invocação quanto o campo `model` da definição |394| `CLAUDE_CODE_SUBAGENT_MODEL` | O modelo padrão para [subagentes](/docs/pt/sub-agents#choose-a-model), colegas de [equipe de agentes](/docs/pt/agent-teams#specify-teammates-and-models) e agentes de [fluxos de trabalho](/docs/pt/workflows) que não recebem um modelo de outra forma. Aceita um alias como `haiku` ou um nome completo de modelo. Duas fontes têm precedência sobre ela: um modelo que Claude passa ao gerar o agente e um campo `model` na definição do agente, incluindo `inherit`. Para mudar isso, defina [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/pt/sub-agents#run-every-subagent-on-one-model). Consulte [Escolher um modelo](/docs/pt/sub-agents#choose-a-model) para a ordem completa. Defini-la como `inherit` é o mesmo que deixá-la não definida. Antes da v2.1.251, esta variável sobrescrevia tanto o modelo por invocação quanto o campo `model` da definição |

393| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Defina como `1` para forçar um único modelo em subagentes, membros de equipes e agentes de workflow. [Executar todos os subagentes em um modelo](/docs/pt/sub-agents#run-every-subagent-on-one-model) informa qual é esse modelo. Requer Claude Code v2.1.257 ou posterior |395| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Defina como `1` para forçar um único modelo em subagentes, colegas de equipe e agentes de fluxos de trabalho. [Executar todos os subagentes em um único modelo](/docs/pt/sub-agents#run-every-subagent-on-one-model) informa qual é esse modelo. Requer Claude Code v2.1.257 ou posterior |

394| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que o Claude Code aceita, para escolher o [TTL do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para requisições fora da conversa principal, como [subagentes](/docs/pt/sub-agents), fluxos de trabalho e trabalho em segundo plano. Tem precedência sobre a configuração `subagentPromptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a sobrescreve. A API cobra gravações de cache de 1 hora a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |396| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Defina `5m` ou `1h`, os únicos valores que o Claude Code aceita, para escolher o [TTL do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) para requisições fora da conversa principal, como [subagentes](/docs/pt/sub-agents), fluxos de trabalho e trabalho em segundo plano. Tem precedência sobre a configuração `subagentPromptCacheTtl` e sobre `ENABLE_PROMPT_CACHING_1H`, e `FORCE_PROMPT_CACHING_5M` a sobrescreve. A API cobra gravações de cache de 1 hora a uma taxa mais alta. Requer Claude Code v2.1.242 ou posterior |

395| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais dos ambientes de subprocessos (ferramenta Bash, hooks, servidores MCP stdio): credenciais da Anthropic e de provedores de nuvem, qualquer outra variável que o Claude Code reconheça como credencial e credenciais incorporadas em URLs de registros de pacotes. O processo pai do Claude mantém essas credenciais para chamadas de API, mas os processos filhos não podem lê-las, reduzindo a exposição a ataques de injeção de prompt que tentam exfiltrar segredos via expansão do shell. Na v2.1.251 ou posterior, a limpeza também remove as próprias variáveis do Claude Code que apontam para o armazenamento de configuração (como `CLAUDE_CONFIG_DIR`), para que um processo filho não consiga localizar um diretório de configuração realocado. Deixe a limpeza sem definição se um subprocesso precisar dessas variáveis. No Linux, isto também executa subprocessos Bash em um namespace de PID isolado para que não possam ler os ambientes de processos do host via `/proc`; como efeito colateral, `ps`, `pgrep` e `kill` não conseguem ver nem enviar sinais para processos do host. `claude-code-action` define isto automaticamente quando `allowed_non_write_users` está configurado |397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais dos ambientes de subprocessos (ferramenta Bash, hooks, servidores MCP stdio): credenciais da Anthropic e de provedores de nuvem, qualquer outra variável que o Claude Code reconheça como credencial e credenciais incorporadas em URLs de registros de pacotes. O processo pai do Claude mantém essas credenciais para chamadas de API, mas os processos filhos não podem lê-las, o que reduz a exposição a ataques de injeção de prompt que tentam exfiltrar segredos via expansão do shell. Na v2.1.251 ou posterior, a limpeza também remove as próprias variáveis de ponteiro do armazenamento de configuração do Claude Code (como `CLAUDE_CONFIG_DIR`), para que um processo filho não consiga localizar um diretório de configuração realocado. Deixe a limpeza desativada se um subprocesso precisar dessas variáveis. No Linux, isso também executa os subprocessos Bash em um namespace de PID isolado para que não possam ler os ambientes dos processos do host via `/proc`; como efeito colateral, `ps`, `pgrep` e `kill` não conseguem ver nem sinalizar processos do host. `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |

396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` no modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugins antes da primeira consulta. Sem isso, os plugins são instalados em segundo plano e podem não estar disponíveis no primeiro turno. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |398| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` no modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugins antes da primeira consulta. Sem isso, os plugins são instalados em segundo plano e podem não estar disponíveis no primeiro turno. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |

397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a instalação síncrona de plugins. Quando excedido, o Claude Code prossegue sem plugins e registra um erro em log. Sem padrão: sem esta variável, a instalação síncrona aguarda até a conclusão |399| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a instalação síncrona de plugins. Quando excedido, o Claude Code prossegue sem plugins e registra um erro em log. Sem padrão: sem esta variável, a instalação síncrona aguarda até ser concluída |

398| `CLAUDE_CODE_SYNC_SKILLS` | Defina como `1` no modo não interativo com a flag `-p` para fazer o Claude Code baixar as skills ativadas para sua conta do claude.ai nessa execução e aguardar a lista delas, até `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de executar a primeira consulta. Os downloads em si terminam em segundo plano, e Claude aguarda o download de uma skill quando a invoca. Requer autenticação do claude.ai. Sessões de terminal em que você faz login com sua conta do claude.ai [baixam essas skills](/docs/pt/skills#where-synced-skills-load) para `~/.claude/skills/synced/` e as ressincronizam a cada 10 minutos aproximadamente sem esta variável, então defina-a somente quando uma execução com `-p` precisar das suas skills atuais na primeira consulta. Antes da v2.1.273, as sessões de terminal as baixavam somente em uma execução com `-p` com esta variável definida. O nome da pasta `synced` é [reservado para esse download](/docs/pt/skills#where-skills-live). Antes da v2.1.227, as skills eram baixadas diretamente para `~/.claude/skills/`. O Claude Code aplica [regras extras às skills baixadas](/docs/pt/skills#how-synced-skills-behave), como não executar seus comandos `!` na sua máquina |400| `CLAUDE_CODE_SYNC_SKILLS` | Defina como `1` no modo não interativo com a flag `-p` para fazer o Claude Code baixar as skills ativadas para sua conta do claude.ai nessa execução e aguardar a lista delas, por até `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de executar a primeira consulta. Os downloads em si terminam em segundo plano, e Claude aguarda o download de uma skill quando a invoca. Requer autenticação no claude.ai. Sessões de terminal em que você faz login com sua conta do claude.ai [baixam essas skills](/docs/pt/skills#where-synced-skills-load) para `~/.claude/skills/synced/` e as ressincronizam aproximadamente a cada 10 minutos sem esta variável, então defina-a apenas quando uma execução `-p` precisar das suas skills atuais na primeira consulta. Antes da v2.1.273, as sessões de terminal as baixavam apenas em uma execução `-p` com esta variável definida. O nome de pasta `synced` é [reservado para este download](/docs/pt/skills#where-skills-live). Antes da v2.1.227, as skills eram baixadas diretamente em `~/.claude/skills/`. O Claude Code aplica [regras extras às skills baixadas](/docs/pt/skills#how-synced-skills-behave), como não executar os comandos `!` delas na sua máquina |

399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a ressincronização de skills que ocorre no meio da sessão quando um app construído com o [Agent SDK](/docs/pt/agent-sdk/typescript#query-object) recarrega skills (padrão: 30000). Quando excedido, o recarregamento continua com as skills que já chegaram, e os downloads restantes terminam em segundo plano |401| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout em milissegundos para a ressincronização de skills executada no meio da sessão quando um aplicativo criado com o [Agent SDK](/docs/pt/agent-sdk/typescript#query-object) recarrega as skills (padrão: 30000). Quando excedido, o recarregamento continua com as skills que já chegaram, e os downloads restantes terminam em segundo plano |

400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout em milissegundos para a primeira consulta aguardar a lista inicial de skills quando `CLAUDE_CODE_SYNC_SKILLS` está definida (padrão: 5000). Quando excedido, a primeira consulta é executada com as skills que já chegaram. Os downloads terminam em segundo plano de qualquer forma, e Claude aguarda o download de uma skill quando a invoca |402| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout em milissegundos para que a primeira consulta aguarde a lista inicial de skills quando `CLAUDE_CODE_SYNC_SKILLS` está definida (padrão: 5000). Quando excedido, a primeira consulta é executada com as skills que já chegaram. Os downloads terminam em segundo plano de qualquer forma, e Claude aguarda o download de uma skill quando a invoca |

401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Defina como `false` para desativar o realce de sintaxe na saída de diff. Útil quando as cores interferem na configuração do seu terminal. Para também desativar o realce em blocos de código e pré-visualizações de arquivos, use a configuração [`syntaxHighlightingDisabled`](/docs/pt/settings-reference#syntaxhighlightingdisabled) |403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Defina como `false` para desativar o realce de sintaxe na saída de diff. Útil quando as cores interferem na configuração do seu terminal. Para desativar também o realce em blocos de código e pré-visualizações de arquivos, use a configuração [`syntaxHighlightingDisabled`](/docs/pt/settings-reference#syntaxhighlightingdisabled) |

402| `CLAUDE_CODE_TASK_LIST_ID` | Compartilha uma lista de tarefas entre sessões. Defina o mesmo ID em várias instâncias do Claude Code para coordenar em uma lista de tarefas compartilhada, em [sessões que têm as ferramentas Task](/docs/pt/tools-reference#task-tool-availability). Consulte [Lista de tarefas](/docs/pt/interactive-mode#task-list) |404| `CLAUDE_CODE_TASK_LIST_ID` | Compartilha uma lista de tarefas entre sessões. Defina o mesmo ID em várias instâncias do Claude Code para coordenar uma lista de tarefas compartilhada, em [sessões que têm as ferramentas Task](/docs/pt/tools-reference#task-tool-availability). Consulte [Lista de tarefas](/docs/pt/interactive-mode#task-list) |

403| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescreve, em milissegundos, quanto tempo uma sessão não interativa aguarda na saída para que sua [equipe de agentes](/docs/pt/agent-teams) termine de ser desmontada. Aceita de 1000 a 60000; um valor fora do intervalo é ignorado e o padrão de 10000 se aplica. Requer Claude Code v2.1.206 ou posterior |405| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Sobrescreve, em milissegundos, quanto tempo uma sessão não interativa aguarda na saída para que sua [equipe de agentes](/docs/pt/agent-teams) termine de ser desmontada. Aceita de 1000 a 60000; um valor fora desse intervalo é ignorado e o padrão de 10000 se aplica. Requer Claude Code v2.1.206 ou posterior |

404| `CLAUDE_CODE_TMPDIR` | Sobrescreve o diretório temporário usado para arquivos temporários internos. O Claude Code acrescenta `/claude-{uid}/` a este caminho no Unix, ou `/claude/` no Windows. Padrão: `/tmp` no macOS, `os.tmpdir()` no Linux e no Windows. No macOS e no Linux, subprocessos Bash em [sandbox](/docs/pt/sandboxing) recebem um `$TMPDIR` de fallback curto sob o padrão do sistema quando sua substituição é um caminho longo, já que algumas ferramentas falham quando os caminhos temporários ficam longos demais. Comandos Bash fora da sandbox herdam o `$TMPDIR` do seu shell quando ele está definido. No Windows nativo, quando seu shell não define `$TMPDIR`, um comando Bash que referencia `$TMPDIR` recebe sua substituição, ou `%TEMP%` quando você não definiu uma. Os próprios arquivos temporários do Claude Code sempre usam sua substituição. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |406| `CLAUDE_CODE_TMPDIR` | Sobrescreve o diretório temporário usado para arquivos temporários internos. O Claude Code acrescenta `/claude-{uid}/` a este caminho no Unix, ou `/claude/` no Windows. Padrão: `/tmp` no macOS, `os.tmpdir()` no Linux e no Windows. No macOS e no Linux, subprocessos Bash [em sandbox](/docs/pt/sandboxing) recebem um `$TMPDIR` de fallback curto sob o padrão do sistema quando o valor que você definiu é um caminho longo, já que algumas ferramentas falham quando os caminhos temporários ficam longos demais. Comandos Bash fora do sandbox herdam o `$TMPDIR` do seu shell quando ele está definido. No Windows nativo, quando seu shell não define `$TMPDIR`, um comando Bash que referencia `$TMPDIR` recebe o valor que você definiu, ou `%TEMP%` quando você não definiu nenhum. Os próprios arquivos temporários do Claude Code sempre usam o valor que você definiu. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

405| `CLAUDE_CODE_TMUX_TRUECOLOR` | Defina com qualquer valor não vazio, como `1`, para permitir saída truecolor de 24 bits dentro do tmux. **Defini-la como `0` ou `false` ainda permite truecolor**, diferentemente da maioria das variáveis de ativar/desativar; remova a definição da variável para restaurar a restrição a 256 cores. Por padrão, o Claude Code restringe a 256 cores quando `$TMUX` está definida, porque o tmux não repassa sequências de escape truecolor a menos que seja configurado para isso. Defina isto depois de adicionar `set -ga terminal-overrides ',*:Tc'` ao seu `~/.tmux.conf`. Consulte [Configuração do terminal](/docs/pt/terminal-config) para outras configurações do tmux |407| `CLAUDE_CODE_TMUX_TRUECOLOR` | Defina com qualquer valor não vazio, como `1`, para permitir saída truecolor de 24 bits dentro do tmux. **Defini-la como `0` ou `false` ainda permite truecolor**, diferentemente da maioria das variáveis de ativar/desativar; remova a definição da variável para restaurar a limitação a 256 cores. Por padrão, o Claude Code limita a saída a 256 cores quando `$TMUX` está definida, porque o tmux não repassa sequências de escape truecolor, a menos que seja configurado para isso. Defina-a depois de adicionar `set -ga terminal-overrides ',*:Tc'` ao seu `~/.tmux.conf`. Consulte [Configuração do terminal](/docs/pt/terminal-config) para outras configurações do tmux |

406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | No Linux e no WSL, defina com uma lista separada por vírgulas dos tipos de processos que o Claude Code [exclui do limite de memória das ferramentas](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` ou `lsp`. Defina `none` para limitar todos os tipos, ou `all-new` para limitar apenas comandos das ferramentas Bash, PowerShell e Monitor. O Claude Code mantém os comandos das ferramentas Bash, PowerShell e Monitor sob o limite independentemente do que você listar. Requer Claude Code v2.1.246 ou posterior |408| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | No Linux e no WSL, defina com uma lista separada por vírgulas dos tipos de processos que o Claude Code [exclui do limite de memória das ferramentas](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` ou `lsp`. Defina `none` para limitar todos os tipos, ou `all-new` para limitar apenas os comandos das ferramentas Bash, PowerShell e Monitor. O Claude Code mantém os comandos das ferramentas Bash, PowerShell e Monitor sob o limite, independentemente do que você listar. Requer Claude Code v2.1.246 ou posterior |

407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | No Linux e no WSL, defina com um tamanho como `4G` para [limitar a memória que os comandos das ferramentas Bash e PowerShell podem usar](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), e os comandos da ferramenta Monitor na v2.1.246 ou posterior. Escreva o tamanho em dígitos simples, sozinho para um número de bytes ou com um sufixo `K`, `M`, `G` ou `T`. Defina `0` ou `off` para desativar o limite. Depois que o primeiro processo iniciado pelo Claude Code ativou ou desativou o limite, um valor alterado entra em vigor na próxima vez que você iniciar `claude`. Requer Claude Code v2.1.233 ou posterior |409| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | No Linux e no WSL, defina com um tamanho como `4G` para [limitar a memória que os comandos das ferramentas Bash e PowerShell podem usar](/docs/pt/tools-reference#memory-limit-on-linux-and-wsl), e os comandos da ferramenta Monitor na v2.1.246 ou posterior. Escreva o tamanho em dígitos simples, sozinho para um número de bytes ou com um sufixo `K`, `M`, `G` ou `T`. Defina `0` ou `off` para desativar o limite. Depois que o primeiro processo iniciado pelo Claude Code tiver ativado ou desativado o limite, um valor alterado entra em vigor na próxima vez que você iniciar `claude`. Requer Claude Code v2.1.233 ou posterior |

408| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Prazo em milissegundos antes que o Claude Code cancele uma caixa de diálogo que encaminha para um cliente remoto, como um host de [Remote Control](/docs/pt/remote-control) ou do SDK, ou a caixa de diálogo de aprovação de uma [mensagem entre sessões retida](/docs/pt/cross-session-messaging#control-inbound-messages); prompts de permissão e perguntas de `AskUserQuestion` usam seus próprios fluxos e não são regidos por ela. No Claude Code v2.1.236 ou posterior, também limita o [prompt de consentimento de créditos de uso do Fable](/docs/pt/model-config#fable-and-usage-credits) no meio da sessão em uma sessão que pode estar sendo executada sem supervisão. [Controlar mensagens de entrada](/docs/pt/cross-session-messaging#control-inbound-messages) e [sessões não interativas](/docs/pt/cross-session-messaging#non-interactive-sessions) abordam as regras completas de expiração de mensagens retidas, incluindo os casos em que o prazo não se aplica. Sobrescreve a configuração [`dialogExpiry`](/docs/pt/settings-reference#dialogexpiry). `0` ou um valor negativo desativa o prazo |410| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Prazo, em milissegundos, antes que o Claude Code cancele um diálogo que ele encaminha para um cliente remoto, como um host de [Remote Control](/docs/pt/remote-control) ou do SDK, ou o diálogo de aprovação de uma [mensagem entre sessões retida](/docs/pt/cross-session-messaging#control-inbound-messages); prompts de permissão e perguntas de `AskUserQuestion` usam seus próprios fluxos e não são regidos por ela. No Claude Code v2.1.236 ou posterior, ela também limita o [prompt de consentimento de créditos de uso do Fable](/docs/pt/model-config#fable-and-usage-credits) no meio da sessão em uma sessão que pode estar sendo executada sem supervisão. [Controlar mensagens recebidas](/docs/pt/cross-session-messaging#control-inbound-messages) e [sessões não interativas](/docs/pt/cross-session-messaging#non-interactive-sessions) abordam as regras completas de expiração de mensagens retidas, incluindo os casos em que o prazo não se aplica. Sobrescreve a configuração [`dialogExpiry`](/docs/pt/settings-reference#dialogexpiry). `0` ou um valor negativo desativa o prazo |

409| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usar o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) |411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Usar o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) |

410| `CLAUDE_CODE_USE_BEDROCK` | Usar o [Amazon Bedrock](/docs/pt/amazon-bedrock) |412| `CLAUDE_CODE_USE_BEDROCK` | Usar o [Amazon Bedrock](/docs/pt/amazon-bedrock) |

411| `CLAUDE_CODE_USE_FOUNDRY` | Usar o [Microsoft Foundry](/docs/pt/microsoft-foundry) |413| `CLAUDE_CODE_USE_FOUNDRY` | Usar o [Microsoft Foundry](/docs/pt/microsoft-foundry) |

412| `CLAUDE_CODE_USE_MANTLE` | Usar o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint) do Amazon Bedrock |414| `CLAUDE_CODE_USE_MANTLE` | Usar o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint) do Amazon Bedrock |

413| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Defina como `1` para descobrir comandos personalizados, subagentes e estilos de saída usando as APIs de arquivos do Node.js em vez do ripgrep. Defina isto se o binário do ripgrep incluído não estiver disponível ou estiver bloqueado no seu ambiente. Não afeta as ferramentas Grep ou de busca de arquivos |415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Defina como `1` para descobrir comandos personalizados, subagentes e estilos de saída usando as APIs de arquivos do Node.js em vez do ripgrep. Defina-a se o binário do ripgrep incluído estiver indisponível ou bloqueado no seu ambiente. Não afeta a ferramenta Grep nem as ferramentas de busca de arquivos |

414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla a ferramenta PowerShell. No Windows sem Git Bash, a ferramenta é ativada automaticamente; defina como `0` para desativá-la. No Windows com Git Bash instalado, a ferramenta fica ativada por padrão para contas do claude.ai e do Console; defina como `1` para ativá-la em sessões do Amazon Bedrock, do Agent Platform do Google Cloud e do Microsoft Foundry, ou `0` para desativá-la. No Linux, macOS e WSL, defina como `1` para ativá-la, o que requer `pwsh` no seu `PATH`. Quando ativada no Windows, Claude pode executar comandos do PowerShell nativamente em vez de roteá-los pelo Git Bash. Consulte [Ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) |416| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla a ferramenta PowerShell. No Windows sem Git Bash, a ferramenta é ativada automaticamente; defina como `0` para desativá-la. No Windows com Git Bash instalado, a ferramenta fica ativada por padrão para contas do claude.ai e do Console; defina como `1` para ativá-la em sessões do Amazon Bedrock, do Agent Platform do Google Cloud e do Microsoft Foundry, ou `0` para desativá-la. No Linux, macOS e WSL, defina como `1` para ativá-la, o que requer `pwsh` no seu `PATH`. Quando ativada no Windows, Claude pode executar comandos do PowerShell nativamente em vez de roteá-los pelo Git Bash. Consulte [Ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) |

415| `CLAUDE_CODE_USE_VERTEX` | Usar o [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai) |417| `CLAUDE_CODE_USE_VERTEX` | Usar o [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai) |

416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Defina com o número de milissegundos que o [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) mantém em cache a resposta de cada URL buscada. O padrão é `900000`, que corresponde a 15 minutos. Aceita apenas dígitos simples; `0`, um decimal ou qualquer outra grafia mantém o padrão. O Claude Code lê o valor uma vez por inicialização, então uma alteração em um bloco `env` das configurações se aplica na próxima vez que você iniciar `claude`. Requer Claude Code v2.1.233 ou posterior |418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Defina com o número de milissegundos durante os quais o [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) mantém em cache a resposta de cada URL buscada. O padrão é `900000`, que equivale a 15 minutos. Aceita apenas dígitos simples; `0`, um decimal ou qualquer outra grafia mantém o padrão. O Claude Code lê o valor uma vez por inicialização, então uma alteração em um bloco `env` de configurações se aplica na próxima vez que você iniciar `claude`. Requer Claude Code v2.1.233 ou posterior |

417| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite superior em milissegundos de quanto tempo o [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) aguarda o download de uma página, incluindo quaisquer redirecionamentos que ele siga. Um download que não tiver sido concluído até lá falha com um erro de prazo. O padrão é `300000`, que corresponde a cinco minutos. Defina como `0` para remover o limite. Aceita apenas dígitos simples; um decimal ou qualquer outra grafia mantém o padrão. Requer Claude Code v2.1.268 ou posterior |419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Limite superior, em milissegundos, de quanto tempo o [WebFetch](/docs/pt/tools-reference#webfetch-tool-behavior) aguarda o download de uma página, incluindo quaisquer redirecionamentos que ele siga. Um download que não tiver sido concluído até lá falha com um erro de prazo. O padrão é `300000`, que equivale a cinco minutos. Defina como `0` para remover o limite. Aceita apenas dígitos simples; um decimal ou qualquer outra grafia mantém o padrão. Requer Claude Code v2.1.268 ou posterior |

418| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quantos agentes uma única execução de [workflow](/docs/pt/workflows) executa ao mesmo tempo, de `1` a `256`. Por padrão, uma execução executa até 16 agentes ao mesmo tempo, menos quando o Claude Code tem menos CPUs disponíveis; chamadas `agent()` enfileiradas aguardam um espaço livre. A transcrição de cada agente em execução permanece na memória do Claude Code, então valores mais altos aumentam o uso de memória. Aceita apenas dígitos simples; valores fora do intervalo e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Quantos agentes uma única execução de [workflow](/docs/pt/workflows) executa ao mesmo tempo, de `1` a `256`. Por padrão, uma execução roda até 16 agentes ao mesmo tempo, menos quando o Claude Code tem menos CPUs disponíveis; chamadas `agent()` enfileiradas aguardam um slot livre. A transcrição de cada agente em execução permanece na memória do Claude Code, então valores mais altos aumentam o uso de memória. Aceita apenas dígitos simples; valores fora do intervalo e outras grafias mantêm o padrão. Requer Claude Code v2.1.269 ou posterior |

419| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite superior, em milissegundos, de quanto tempo um agente de [workflow](/docs/pt/workflows) espera que a primeira resposta de um agente irmão com o mesmo prefixo comece antes de enviar sua própria primeira requisição. Quando um fan-out inicia vários agentes que compartilham um [prefixo de cache de prompt](/docs/pt/workflows#prompt-caching-in-a-fan-out), o Claude Code retém todos os agentes, exceto o primeiro, por até esse tempo, para que os demais leiam o prefixo em cache em vez de cada um processá-lo sem cache. Padrão `5000`. Defina como `0` para desativar a espera. Quando `DISABLE_PROMPT_CACHING` está definida, os agentes nunca esperam. Requer Claude Code v2.1.229 ou posterior |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Limite superior em milissegundos de quanto tempo um agente de [workflow](/docs/pt/workflows) espera que a primeira resposta de um irmão com o mesmo prefixo comece antes de enviar sua própria primeira requisição. Quando um fan-out inicia vários agentes que compartilham um [prefixo de cache de prompt](/docs/pt/workflows#prompt-caching-in-a-fan-out), o Claude Code segura todos, exceto o primeiro agente, por até esse tempo, para que os demais leiam o prefixo em cache em vez de cada um processá-lo sem cache. Padrão `5000`. Defina como `0` para desativar a espera. Quando `DISABLE_PROMPT_CACHING` está definido, os agentes nunca esperam. Requer Claude Code v2.1.229 ou posterior |

420| `CLAUDE_CONFIG_DIR` | Sobrescreve o diretório de configuração (padrão: `~/.claude`). Todas as configurações, o histórico de sessões e os plugins são armazenados nesse caminho. Para credenciais, consulte [onde o Claude Code armazena credenciais](/docs/pt/authentication#credential-management). Útil para executar várias contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |422| `CLAUDE_CONFIG_DIR` | Sobrescreve o diretório de configuração (padrão: `~/.claude`). Todas as configurações, o histórico de sessões e os plugins são armazenados nesse caminho. Para credenciais, consulte [onde o Claude Code armazena credenciais](/docs/pt/authentication#credential-management). Útil para executar várias contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

421| `CLAUDE_DISABLE_ADOPT` | Defina como `1` para interromper o trabalho em segundo plano em andamento em vez de transferi-lo quando você coloca uma sessão em segundo plano pressionando `←` ou com [`/background`](/docs/pt/agent-view#from-inside-a-session). O Claude Code pede sua confirmação antes de colocar em segundo plano e, em seguida, interrompe as tarefas que seriam transferidas. Requer Claude Code v2.1.195 ou posterior |423| `CLAUDE_DISABLE_ADOPT` | Defina como `1` para interromper o trabalho em segundo plano em andamento em vez de transferi-lo quando você envia uma sessão para segundo plano pressionando `←` ou com [`/background`](/docs/pt/agent-view#from-inside-a-session). O Claude Code pede que você confirme antes de enviar para segundo plano e, em seguida, interrompe as tarefas que de outra forma seriam transferidas. Requer Claude Code v2.1.195 ou posterior |

422| `CLAUDE_EFFORT` | Definida automaticamente em subprocessos da ferramenta Bash e em comandos de hook com o [nível de esforço](/docs/pt/model-config#adjust-effort-level) em vigor quando o subprocesso é iniciado: `low`, `medium`, `high`, `xhigh` ou `max`. Corresponde ao campo `effort.level` passado para os [hooks](/docs/pt/hooks). Definida apenas quando o modelo atual oferece suporte ao parâmetro de esforço |424| `CLAUDE_EFFORT` | Definida automaticamente em subprocessos da ferramenta Bash e em comandos de hook com o [nível de esforço](/docs/pt/model-config#adjust-effort-level) em vigor quando o subprocesso é iniciado: `low`, `medium`, `high`, `xhigh` ou `max`. Corresponde ao campo `effort.level` passado para [hooks](/docs/pt/hooks). Definida apenas quando o modelo atual suporta o parâmetro de esforço |

423| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Defina como `1` para forçar a ativação do watchdog de inatividade de streaming em nível de byte, ou como `0` para forçar sua desativação. `0` também desativa o [prazo do primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) nas conexões em que esse prazo é executado. Quando não definida, o watchdog é ativado por padrão para conexões diretas com a API da Anthropic e com o [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e para respostas de streaming em conexões de [gateway](/docs/pt/gateways) alcançadas por meio de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`; antes da v2.1.222 ele não era executado nessas conexões de gateway, então o watchdog em nível de evento podia relatar um travamento ali mesmo enquanto pings de keep-alive estavam chegando. Para timeouts e como os temporizadores interagem, consulte [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Defina como `1` para forçar a ativação do watchdog de inatividade de streaming em nível de byte, ou como `0` para forçar sua desativação. `0` também desativa o [prazo do primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) nas conexões em que esse prazo é executado. Quando não definida, o watchdog fica ativado por padrão para conexões diretas com a API da Anthropic e com a [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e para respostas de streaming em conexões de [gateway](/docs/pt/gateways) alcançadas por meio de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`; antes da v2.1.222 ele não era executado nessas conexões de gateway, então o watchdog em nível de evento podia relatar um travamento ali mesmo enquanto pings de keep-alive estavam chegando. Para timeouts e como os temporizadores interagem, consulte [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |

424| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Defina como `1` para ativar o watchdog de inatividade de streaming em nível de byte nas respostas `vnd.amazon.eventstream` do Amazon Bedrock, o que também ativa o [prazo do primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) nas requisições de streaming do Bedrock. Desativado por padrão. Configure o timeout com `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Defina como `1` para ativar o watchdog de inatividade de streaming em nível de byte nas respostas `vnd.amazon.eventstream` do Amazon Bedrock, o que também ativa o [prazo do primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) em requisições de streaming do Bedrock. Desativado por padrão. Configure o timeout com `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

425| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Defina como `0` para forçar a desativação do watchdog de inatividade de streaming em nível de evento, ou como `1` para forçar sua ativação. Quando não definida, o watchdog fica ativado por padrão para todos os provedores. Antes da v2.1.196, o padrão sem definição era controlado pelo servidor na API direta da Anthropic e desativado nos outros provedores. Configure o timeout com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para os outros temporizadores de travamento que são executados junto com este, consulte [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |427| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Defina como `0` para forçar a desativação do watchdog de inatividade de streaming em nível de evento, ou como `1` para forçar sua ativação. Quando não definida, o watchdog fica ativado por padrão para todos os provedores. Antes da v2.1.196, o padrão quando não definida era controlado pelo servidor na API direta da Anthropic e desativado em outros provedores. Configure o timeout com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para os outros temporizadores de travamento que são executados junto com este, consulte [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |

426| `CLAUDE_ENV_FILE` | Caminho para um script de shell cujo conteúdo o Claude Code executa antes de cada comando Bash no mesmo processo de shell, para que as exportações no arquivo fiquem visíveis para o comando. Use para manter a ativação de virtualenv ou conda entre comandos. Também é preenchida dinamicamente pelos hooks [SessionStart](/docs/pt/hooks#persist-environment-variables), [Setup](/docs/pt/hooks#setup), [CwdChanged](/docs/pt/hooks#cwdchanged) e [FileChanged](/docs/pt/hooks#filechanged) |428| `CLAUDE_ENV_FILE` | Caminho para um script de shell cujo conteúdo o Claude Code executa antes de cada comando Bash no mesmo processo de shell, para que as exportações no arquivo fiquem visíveis para o comando. Use para persistir a ativação de virtualenv ou conda entre comandos. Também preenchida dinamicamente pelos hooks [SessionStart](/docs/pt/hooks#persist-environment-variables), [Setup](/docs/pt/hooks#setup), [CwdChanged](/docs/pt/hooks#cwdchanged) e [FileChanged](/docs/pt/hooks#filechanged) |

427| `CLAUDE_JOB_DIR` | Definida pelo Claude Code em cada [sessão em segundo plano](/docs/pt/agent-view) com o diretório `~/.claude/jobs/<id>` dessa sessão. Os comandos de shell que a sessão executa a herdam. Grave arquivos temporários em [`$CLAUDE_JOB_DIR/tmp`](/docs/pt/agent-view#where-state-is-stored). As chamadas `Write` e `Edit` do Claude nesse local não pedem permissão, e o diretório é removido quando a sessão é excluída |429| `CLAUDE_JOB_DIR` | Definida pelo Claude Code em cada [sessão em segundo plano](/docs/pt/agent-view) como o diretório `~/.claude/jobs/<id>` dessa sessão. Os comandos de shell que a sessão executa a herdam. Grave arquivos temporários em [`$CLAUDE_JOB_DIR/tmp`](/docs/pt/agent-view#where-state-is-stored). As chamadas `Write` e `Edit` do Claude ali não pedem permissão, e o diretório é removido quando a sessão é excluída |

428| `CLAUDE_PID` | O Claude Code define esta variável com o ID do seu próprio processo nos subprocessos que ele cria: comandos das ferramentas Bash e PowerShell e comandos de hook. No Linux, a integração de shell da ferramenta Bash a usa para recusar um padrão de `pkill` que corresponderia ao próprio processo do Claude Code; consulte [a referência de erros](/docs/pt/errors#pkill-pattern-matches-the-claude-code-process). Leia-a nos seus próprios scripts para identificar ou sinalizar deliberadamente o processo pai do Claude Code. Requer Claude Code v2.1.214 ou posterior |430| `CLAUDE_PID` | O Claude Code define esta variável com seu próprio ID de processo nos subprocessos que ele gera: comandos das ferramentas Bash e PowerShell e comandos de hook. No Linux, a integração de shell da ferramenta Bash a utiliza para recusar um padrão de `pkill` que corresponderia ao próprio processo do Claude Code; consulte [a referência de erros](/docs/pt/errors#pkill-pattern-matches-the-claude-code-process). Leia-a a partir dos seus próprios scripts para identificar ou sinalizar deliberadamente o processo pai do Claude Code. Requer Claude Code v2.1.214 ou posterior |

429| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefixo para nomes de sessão do [Remote Control](/docs/pt/remote-control) gerados automaticamente quando nenhum nome explícito é fornecido. O padrão é o hostname da sua máquina, produzindo nomes como `myhost-graceful-unicorn`. A flag de CLI `--remote-control-session-name-prefix` define o mesmo valor para uma única invocação |431| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefixo para nomes de sessão do [Remote Control](/docs/pt/remote-control) gerados automaticamente quando nenhum nome explícito é fornecido. O padrão é o hostname da sua máquina, produzindo nomes como `myhost-graceful-unicorn`. A flag de CLI `--remote-control-session-name-prefix` define o mesmo valor para uma única invocação |

430| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Prazo, em milissegundos, para o primeiro byte de resposta de uma requisição de streaming, nas conexões em que o [prazo do primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) é executado. Para saber como o Claude Code limita esse valor, o tempo extra que ele adiciona para corpos de requisição grandes e como ele escolhe o prazo quando você deixa esta variável sem definição, consulte [Nenhuma resposta da API](/docs/pt/errors#no-response-from-api). Requer Claude Code v2.1.242 ou posterior |432| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Prazo em milissegundos para o primeiro byte de resposta de uma requisição de streaming, nas conexões em que o [prazo do primeiro byte](/docs/pt/network-config#streaming-idle-watchdogs) é executado. Para saber como o Claude Code o limita, o tempo extra que ele adiciona para corpos de requisição grandes e como ele escolhe o prazo quando você deixa esta variável não definida, consulte [No response from API](/docs/pt/errors#no-response-from-api). Requer Claude Code v2.1.242 ou posterior |

431| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos antes que os watchdogs de inatividade de streaming em nível de evento e de byte fechem uma conexão travada. Quando você define esta variável explicitamente, o mínimo é `300000` (5 minutos); valores menores são ajustados silenciosamente para absorver pausas de pensamento estendido e buffering de proxy, e o watchdog em nível de byte limita o valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tem precedência sobre esta variável para o watchdog em nível de byte. Para os padrões sem definição de cada watchdog, consulte [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |433| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout em milissegundos antes que os watchdogs de inatividade de streaming em nível de evento e de byte fechem uma conexão travada. Quando você define esta variável explicitamente, o mínimo é `300000` (5 minutos); valores menores são limitados silenciosamente para absorver pausas de pensamento estendido e buffering de proxy, e o watchdog em nível de byte limita o valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tem precedência sobre esta variável para o watchdog em nível de byte. Para os padrões de cada watchdog quando não definida, consulte [Watchdogs de inatividade de streaming](/docs/pt/network-config#streaming-idle-watchdogs) |

432| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Removida na v2.1.260 e agora sem efeito. Anteriormente limitava, em milissegundos, por quanto tempo um [comando de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) iniciado por um [subagente](/docs/pt/sub-agents) podia ser executado, com padrão de 60 minutos. Consulte [as regras de tempo de vida de comandos em segundo plano](/docs/pt/tools-reference#background-commands) |434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Removida na v2.1.260 e agora sem efeito. Anteriormente limitava por quanto tempo um [comando de shell em segundo plano](/docs/pt/interactive-mode#background-bash-commands) iniciado por um [subagente](/docs/pt/sub-agents) podia ser executado, em milissegundos, com um padrão de 60 minutos. Consulte [as regras de tempo de vida de comandos em segundo plano](/docs/pt/tools-reference#background-commands) |

433| `DEBUG` | Defina como `1` para ativar o modo de depuração, equivalente a iniciar com [`--debug`](/docs/pt/cli-reference#cli-flags). Os logs de depuração são gravados em `~/.claude/debug/<session-id>.txt` ou no caminho definido por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Somente os valores verdadeiros `1`, `true`, `yes` e `on` ativam o modo de depuração, então padrões de namespace como `DEBUG=express:*` definidos para outras ferramentas não o acionam |435| `DEBUG` | Defina como `1` para ativar o modo de depuração, equivalente a iniciar com [`--debug`](/docs/pt/cli-reference#cli-flags). Os logs de depuração são gravados em `~/.claude/debug/<session-id>.txt`, ou no caminho definido por `CLAUDE_CODE_DEBUG_LOGS_DIR`. Apenas os valores verdadeiros `1`, `true`, `yes` e `on` ativam o modo de depuração, então padrões de namespace como `DEBUG=express:*` definidos para outras ferramentas não o acionam |

434| `DISABLE_AUTOUPDATER` | Defina como `1` para desativar as atualizações automáticas em segundo plano. O `claude update` manual continua funcionando. Use `DISABLE_UPDATES` para bloquear ambos |436| `DISABLE_AUTOUPDATER` | Defina como `1` para desativar as atualizações automáticas em segundo plano. O `claude update` manual ainda funciona. Use `DISABLE_UPDATES` para bloquear ambos |

435| `DISABLE_AUTO_COMPACT` | Defina como `1` para desativar a compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` continua disponível. Use quando quiser controle explícito sobre quando a compactação ocorre. Sobrescreve a configuração [`autoCompactEnabled`](/docs/pt/settings-reference#autocompactenabled) |437| `DISABLE_AUTO_COMPACT` | Defina como `1` para desativar a compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` continua disponível. Use quando quiser controle explícito sobre quando a compactação ocorre. Sobrescreve a configuração [`autoCompactEnabled`](/docs/pt/settings-reference#autocompactenabled) |

436| `DISABLE_COMPACT` | Defina como `1` para desativar toda a compactação: tanto a compactação automática quanto o comando manual `/compact` |438| `DISABLE_COMPACT` | Defina como `1` para desativar toda a compactação: tanto a compactação automática quanto o comando manual `/compact` |

437| `DISABLE_COST_WARNINGS` | Defina como `1` para desativar as mensagens de aviso de custo |439| `DISABLE_COST_WARNINGS` | Defina como `1` para desativar as mensagens de aviso de custo |

438| `DISABLE_DOCTOR_COMMAND` | Defina como `1` para ocultar a skill de verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) e seu alias `/checkup`. Útil para implantações gerenciadas em que os usuários não devem executar diagnósticos de configuração a partir de uma sessão. Não afeta o comando de terminal `claude doctor`. Antes da v2.1.205, esta variável ocultava o comando da tela de diagnóstico `/doctor` |440| `DISABLE_DOCTOR_COMMAND` | Defina como `1` para ocultar a skill de verificação de configuração [`/doctor`](/docs/pt/commands#all-commands) e seu alias `/checkup`. Útil para implantações gerenciadas em que os usuários não devem executar diagnósticos de configuração a partir de uma sessão. Não afeta o comando de terminal `claude doctor`. Antes da v2.1.205, esta variável ocultava o comando da tela de diagnóstico `/doctor` |

439| `DISABLE_ERROR_REPORTING` | Defina com qualquer valor não vazio, como `1`, para desativar o relatório de erros. **Defini-la como `0` ou `false` ainda desativa**, ao contrário da maioria das variáveis de ativar/desativar; remova a definição da variável para reativar o relatório de erros |441| `DISABLE_ERROR_REPORTING` | Defina com qualquer valor não vazio, como `1`, para desativar o relatório de erros. **Defini-la como `0` ou `false` ainda desativa**, ao contrário da maioria das variáveis liga/desliga; remova a definição da variável para reativar o relatório de erros |

440| `DISABLE_EXTRA_USAGE_COMMAND` | Defina como `1` para ocultar o comando `/usage-credits`, que permite aos usuários comprar uso adicional além dos rate limits |442| `DISABLE_EXTRA_USAGE_COMMAND` | Defina como `1` para ocultar o comando `/usage-credits` que permite aos usuários comprar uso adicional além dos rate limits |

441| `DISABLE_FEEDBACK_COMMAND` | Defina como `1` para desativar o comando `/feedback` e o [feedback redigido pelo Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior). Também desativa `/bug` e `/share`, que enviam relatórios pelo mesmo caminho; antes da v2.1.212 eles eram aliases de `/feedback`, então o comando era desativado com todos os nomes. O nome antigo `DISABLE_BUG_COMMAND` também é aceito |443| `DISABLE_FEEDBACK_COMMAND` | Defina como `1` para desativar o comando `/feedback` e o [feedback redigido pelo Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior). Também desativa `/bug` e `/share`, que relatam pelo mesmo caminho; antes da v2.1.212 eles eram aliases de `/feedback`, então o comando era desativado sob todos os nomes. O nome antigo `DISABLE_BUG_COMMAND` também é aceito |

442| `DISABLE_GROWTHBOOK` | Defina como `1` ou `true` para desativar a busca de feature flags do GrowthBook e usar os padrões do código para todas as flags. Isso torna indisponíveis o [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam da busca de feature flags](#features-that-need-feature-flag-fetching). Defini-la como `0` ou `false` mantém a busca ativada. O registro de eventos de telemetria permanece ativado, a menos que `DISABLE_TELEMETRY` também esteja definida |444| `DISABLE_GROWTHBOOK` | Defina como `1` ou `true` para desativar a busca de feature flags do GrowthBook e usar os padrões do código para todas as flags. Isso torna o [Remote Control](/docs/pt/remote-control#requirements) e os outros [recursos que precisam da busca de feature flags](#features-that-need-feature-flag-fetching) indisponíveis. Defini-la como `0` ou `false` mantém a busca ativada. O registro em log de eventos de telemetria permanece ativado, a menos que `DISABLE_TELEMETRY` também esteja definida |

443| `DISABLE_INSTALLATION_CHECKS` | Defina como `1` para desativar os avisos de instalação. Use apenas ao gerenciar manualmente o local de instalação, pois isso pode mascarar problemas com instalações padrão |445| `DISABLE_INSTALLATION_CHECKS` | Defina como `1` para desativar os avisos de instalação. Use apenas ao gerenciar manualmente o local de instalação, pois isso pode mascarar problemas com instalações padrão |

444| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Defina como `1` para ocultar o comando `/install-github-app`. Já fica oculto ao usar provedores de terceiros (Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry) |446| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Defina como `1` para ocultar o comando `/install-github-app`. Já fica oculto ao usar provedores de terceiros (Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry) |

445| `DISABLE_INTERLEAVED_THINKING` | Defina como `1` para impedir o envio do cabeçalho beta de interleaved-thinking. Útil quando seu gateway de LLM ou provedor não oferece suporte ao [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |447| `DISABLE_INTERLEAVED_THINKING` | Defina como `1` para impedir o envio do cabeçalho beta de interleaved-thinking. Útil quando seu gateway de LLM ou provedor não suporta [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

446| `DISABLE_LOGIN_COMMAND` | Defina como `1` para ocultar o comando `/login`. Útil quando a autenticação é tratada externamente por meio de chaves de API ou `apiKeyHelper` |448| `DISABLE_LOGIN_COMMAND` | Defina como `1` para ocultar o comando `/login`. Útil quando a autenticação é tratada externamente por meio de chaves de API ou `apiKeyHelper` |

447| `DISABLE_LOGOUT_COMMAND` | Defina como `1` para ocultar o comando `/logout` |449| `DISABLE_LOGOUT_COMMAND` | Defina como `1` para ocultar o comando `/logout` |

448| `DISABLE_PROMPT_CACHING` | Defina como `1` para desativar o [cache de prompt](/docs/pt/prompt-caching#disable-prompt-caching) para todos os modelos (tem precedência sobre as configurações por modelo) |450| `DISABLE_PROMPT_CACHING` | Defina como `1` para desativar o [cache de prompt](/docs/pt/prompt-caching#disable-prompt-caching) para todos os modelos (tem precedência sobre as configurações por modelo) |


450| `DISABLE_PROMPT_CACHING_HAIKU` | Defina como `1` para desativar o cache de prompt para o [modelo Haiku padrão](/docs/pt/prompt-caching#disable-prompt-caching), onde quer que ele seja executado |452| `DISABLE_PROMPT_CACHING_HAIKU` | Defina como `1` para desativar o cache de prompt para o [modelo Haiku padrão](/docs/pt/prompt-caching#disable-prompt-caching), onde quer que ele seja executado |

451| `DISABLE_PROMPT_CACHING_OPUS` | Defina como `1` para desativar o cache de prompt para o [modelo Opus padrão](/docs/pt/prompt-caching#disable-prompt-caching) |453| `DISABLE_PROMPT_CACHING_OPUS` | Defina como `1` para desativar o cache de prompt para o [modelo Opus padrão](/docs/pt/prompt-caching#disable-prompt-caching) |

452| `DISABLE_PROMPT_CACHING_SONNET` | Defina como `1` para desativar o cache de prompt para o [modelo Sonnet padrão](/docs/pt/prompt-caching#disable-prompt-caching) |454| `DISABLE_PROMPT_CACHING_SONNET` | Defina como `1` para desativar o cache de prompt para o [modelo Sonnet padrão](/docs/pt/prompt-caching#disable-prompt-caching) |

453| `DISABLE_TELEMETRY` | Defina com qualquer valor não vazio, como `1`, para desativar a telemetria. **Defini-la como `0` ou `false` ainda desativa**, ao contrário da maioria das variáveis de ativar/desativar; remova a definição da variável para reativar a telemetria. Os eventos de telemetria não incluem dados do usuário como código, caminhos de arquivo ou comandos Bash. Também desativa a [busca de feature flags](#features-that-need-feature-flag-fetching). Consulte [Desativar a telemetria para sua organização](/docs/pt/managed-settings#turn-telemetry-off-for-your-organization) |455| `DISABLE_TELEMETRY` | Defina com qualquer valor não vazio, como `1`, para desativar a telemetria. **Defini-la como `0` ou `false` ainda desativa**, ao contrário da maioria das variáveis liga/desliga; remova a definição da variável para reativar a telemetria. Os eventos de telemetria não incluem dados do usuário como código, caminhos de arquivo ou comandos Bash. Também desativa a [busca de feature flags](#features-that-need-feature-flag-fetching). Consulte [Desativar a telemetria para sua organização](/docs/pt/managed-settings#turn-telemetry-off-for-your-organization) |

454| `DISABLE_UPDATES` | Defina como `1` para bloquear todas as atualizações, incluindo `claude update` e `claude install` manuais. Mais rigorosa que `DISABLE_AUTOUPDATER`. Use ao distribuir o Claude Code pelos seus próprios canais quando os usuários não devem se autoatualizar |456| `DISABLE_UPDATES` | Defina como `1` para bloquear todas as atualizações, incluindo `claude update` e `claude install` manuais. Mais restritiva que `DISABLE_AUTOUPDATER`. Use ao distribuir o Claude Code pelos seus próprios canais quando os usuários não devem se autoatualizar |

455| `DISABLE_UPGRADE_COMMAND` | Defina como `1` para ocultar o comando `/upgrade` |457| `DISABLE_UPGRADE_COMMAND` | Defina como `1` para ocultar o comando `/upgrade` |

456| `DO_NOT_TRACK` | Defina como `1` para desativar a telemetria, com o mesmo efeito de `DISABLE_TELEMETRY`, inclusive sobre a [busca de feature flags](#features-that-need-feature-flag-fetching). O Claude Code lê esta variável como um booleano padrão, então `0` mantém a telemetria ativada, e a respeita como a convenção entre ferramentas reconhecida por muitas CLIs de desenvolvedor |458| `DO_NOT_TRACK` | Defina como `1` para desativar a telemetria, com o mesmo efeito de `DISABLE_TELEMETRY`, inclusive na [busca de feature flags](#features-that-need-feature-flag-fetching). O Claude Code lê esta variável como um booleano padrão, então `0` mantém a telemetria ativada, e a respeita como a convenção entre ferramentas reconhecida por muitas CLIs de desenvolvedor |

457| `ENABLE_BETA_TRACING_DETAILED` | Defina como `1`, junto com `BETA_TRACING_ENDPOINT`, para ativar o [tracing beta detalhado](/docs/pt/monitoring-usage#traces-beta), que adiciona atributos de span com conteúdo e o span `claude_code.hook`. Sessões interativas da CLI também exigem que sua organização esteja na lista de permissões do beta. Ambas as variáveis são ignoradas nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |459| `ENABLE_BETA_TRACING_DETAILED` | Defina como `1`, junto com `BETA_TRACING_ENDPOINT`, para ativar o [rastreamento beta detalhado](/docs/pt/monitoring-usage#traces-beta), que adiciona atributos de span com conteúdo e o span `claude_code.hook`. Sessões interativas da CLI também exigem que sua organização esteja na lista de permissões do beta. Ambas as variáveis são ignoradas nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) |

458| `ENABLE_CLAUDEAI_MCP_SERVERS` | Defina como `false` para impedir que o Claude Code busque [servidores MCP do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Ativada por padrão para usuários que fizeram login. Para desativar por projeto ou por organização, defina [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) nas configurações |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | Defina como `false` para impedir que o Claude Code busque [servidores MCP do claude.ai](/docs/pt/mcp#use-mcp-servers-from-claude-ai). Ativada por padrão para usuários com login. Para desativar por projeto ou por organização, defina [`disableClaudeAiConnectors`](/docs/pt/settings-reference#disableclaudeaiconnectors) nas configurações |

459| `ENABLE_PROMPT_CACHING_1H` | Defina como `1` para solicitar um [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) de 1 hora em vez dos 5 minutos padrão. Destinada a usuários de chave de API, [Amazon Bedrock](/docs/pt/amazon-bedrock), [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai), [Microsoft Foundry](/docs/pt/microsoft-foundry) e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Usuários de assinatura dentro do uso incluído recebem o TTL de 1 hora automaticamente na [conversa principal](/docs/pt/prompt-caching#which-ttl-each-request-gets). Usuários de assinatura que consomem [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) podem defini-la para manter o TTL de 1 hora. Gravações de cache de 1 hora são cobradas a uma taxa mais alta. Para escolher o TTL por grupo de requisições, use `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que têm precedência sobre esta variável |461| `ENABLE_PROMPT_CACHING_1H` | Defina como `1` para solicitar um [TTL de cache de prompt](/docs/pt/prompt-caching#cache-lifetime) de 1 hora em vez do padrão de 5 minutos. Destinada a usuários de chave de API, [Amazon Bedrock](/docs/pt/amazon-bedrock), [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai), [Microsoft Foundry](/docs/pt/microsoft-foundry) e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws). Usuários de assinatura dentro do uso incluído recebem o TTL de 1 hora automaticamente na [conversa principal](/docs/pt/prompt-caching#which-ttl-each-request-gets). Usuários de assinatura que utilizam [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) podem defini-la para manter o TTL de 1 hora. Gravações de cache de 1 hora são cobradas a uma taxa mais alta. Para escolher o TTL por grupo de requisições, use `CLAUDE_CODE_PROMPT_CACHE_TTL` e `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, que têm precedência sobre esta variável |

460| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuada. Use `ENABLE_PROMPT_CACHING_1H` em vez disso |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuada. Use `ENABLE_PROMPT_CACHING_1H` em vez disso |

461| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search). Sem definição, o Claude Code adia todas as ferramentas MCP por padrão. Ele ainda as carrega antecipadamente em modelos da Agent Platform do Google Cloud anteriores à geração Claude 4.5, em uma implantação do Microsoft Foundry hospedada no Azure e quando `ANTHROPIC_BASE_URL` aponta para um host que não é first-party. `true` sempre adia e envia o cabeçalho beta, exceto nesses mesmos modelos da Agent Platform e implantações do Microsoft Foundry; as requisições falham em proxies que não oferecem suporte a `tool_reference`. `auto` carrega antecipadamente quando as definições de ferramentas cabem em 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Um valor que você mesmo define é ignorado quando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está definida. Antes da v2.1.221, o Claude Code desativava o tool search para todos os modelos na Agent Platform do Google Cloud, a menos que você definisse esta variável como `true` |463| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](/docs/pt/mcp#scale-with-mcp-tool-search). Quando não definida, o Claude Code adia todas as ferramentas MCP por padrão. Ele ainda as carrega antecipadamente em modelos da Agent Platform do Google Cloud anteriores à geração Claude 4.5, em uma implantação do Microsoft Foundry hospedada no Azure e quando `ANTHROPIC_BASE_URL` aponta para um host que não é first-party. `true` sempre adia e envia o cabeçalho beta, exceto nesses mesmos modelos da Agent Platform e implantações do Microsoft Foundry; as requisições falham em proxies que não suportam `tool_reference`. `auto` carrega antecipadamente quando as definições de ferramentas cabem em 10% do contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Um valor que você mesmo define é ignorado quando `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` está definida. Antes da v2.1.221, o Claude Code desativava a busca de ferramentas para todos os modelos na Agent Platform do Google Cloud, a menos que você definisse esta variável como `true` |

462| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Defina com qualquer valor não vazio, como `1`, para fazer o Claude Code parar de tentar novamente após erros de sobrecarga repetidos para todos os modelos quando nenhum modelo de fallback estiver configurado. **Defini-la como `0` ou `false` ainda ativa esse comportamento**, ao contrário da maioria das variáveis de ativar/desativar; remova a definição da variável para restaurar o comportamento padrão de novas tentativas. Sem ela, o Claude Code para de tentar novamente dessa forma em modelos que reconhece como Opus, Fable ou Mythos quando você se autentica com uma chave de API ou um [provedor de terceiros](/docs/pt/third-party-integrations) em vez de uma assinatura do Claude. No Claude Code v2.1.160 ou posterior, o Claude Code muda para a sua [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) configurada após erros de sobrecarga repetidos para qualquer modelo principal, então esta variável não afeta a mudança para um modelo de fallback |464| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Defina com qualquer valor não vazio, como `1`, para fazer o Claude Code parar de tentar novamente em erros repetidos de sobrecarga para todos os modelos quando nenhum modelo de fallback está configurado. **Defini-la como `0` ou `false` ainda ativa isso**, ao contrário da maioria das variáveis liga/desliga; remova a definição da variável para restaurar o comportamento padrão de novas tentativas. Sem ela, o Claude Code para de tentar novamente dessa forma em modelos que reconhece como modelos Opus, Fable ou Mythos quando você se autentica com uma chave de API ou um [provedor de terceiros](/docs/pt/third-party-integrations) em vez de uma assinatura do Claude. No Claude Code v2.1.160 ou posterior, o Claude Code alterna para sua [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) configurada em erros repetidos de sobrecarga para qualquer modelo principal, então esta variável não afeta a alternância para um modelo de fallback |

463| `FORCE_AUTOUPDATE_PLUGINS` | Defina como `1` para forçar as atualizações automáticas de plugins mesmo quando o atualizador automático principal estiver desativado via `DISABLE_AUTOUPDATER` |465| `FORCE_AUTOUPDATE_PLUGINS` | Defina como `1` para forçar atualizações automáticas de plugins mesmo quando o atualizador automático principal está desativado por meio de `DISABLE_AUTOUPDATER` |

464| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal os suporta, mas não é detectado automaticamente, ou como `0` para desativá-los. Quando não definida, o Claude Code ativa hyperlinks apenas quando detecta suporte do terminal. O Claude Code interpreta este valor como um número, não um booleano, então um valor como `false`, `no` ou `off` ativa os hyperlinks em vez de desativá-los. O [badge de PR ou merge request](/docs/pt/interactive-mode#pr-review-status) do rodapé é renderizado como hyperlink mesmo quando o Claude Code não consegue detectar suporte do terminal, como via SSH. Defina `0` para renderizar o badge como texto simples |466| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal os suporta mas não é detectado automaticamente, ou `0` para desativá-los. Quando não definida, o Claude Code ativa hyperlinks apenas quando detecta suporte do terminal. O Claude Code interpreta este valor como um número, não um booleano, então um valor como `false`, `no` ou `off` ativa os hyperlinks em vez de desativá-los. O [selo de PR ou merge request](/docs/pt/interactive-mode#pr-review-status) do rodapé é renderizado como hyperlink mesmo quando o Claude Code não consegue detectar suporte do terminal, como por SSH. Defina `0` para renderizar o selo como texto simples |

465| `FORCE_PROMPT_CACHING_5M` | Defina como `1` para forçar o TTL de cache de prompt de 5 minutos mesmo quando o TTL de 1 hora se aplicaria. Sobrescreve `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` e as configurações `promptCacheTtl` e `subagentPromptCacheTtl` |467| `FORCE_PROMPT_CACHING_5M` | Defina como `1` para forçar o TTL de cache de prompt de 5 minutos mesmo quando o TTL de 1 hora seria aplicado. Sobrescreve `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H` e as configurações `promptCacheTtl` e `subagentPromptCacheTtl` |

466| `HTTP_PROXY` | Especifica o servidor proxy HTTP para conexões de rede |468| `HTTP_PROXY` | Especifica o servidor proxy HTTP para conexões de rede |

467| `HTTPS_PROXY` | Especifica o servidor proxy HTTPS para conexões de rede |469| `HTTPS_PROXY` | Especifica o servidor proxy HTTPS para conexões de rede |

468| `IS_DEMO` | Defina com qualquer valor não vazio, como `1`, para ativar o modo de demonstração: oculta seu e-mail e o nome da organização do cabeçalho e da saída de `/status`, e pula o onboarding. **Defini-la como `0` ou `false` ainda ativa o modo de demonstração**, ao contrário da maioria das variáveis de ativar/desativar; remova a definição da variável para desativá-lo. Útil ao transmitir ou gravar uma sessão |470| `IS_DEMO` | Defina com qualquer valor não vazio, como `1`, para ativar o modo de demonstração: oculta seu e-mail e o nome da organização do cabeçalho e da saída de `/status`, e pula o onboarding. **Defini-la como `0` ou `false` ainda ativa o modo de demonstração**, ao contrário da maioria das variáveis liga/desliga; remova a definição da variável para desativá-lo. Útil ao fazer streaming ou gravar uma sessão |

469| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos nas respostas de ferramentas MCP. O Claude Code exibe um aviso quando a saída excede 10.000 tokens. Ferramentas que declaram [`anthropic/maxResultSizeChars`](/docs/pt/mcp#raise-the-limit-for-a-specific-tool) usam esse limite de caracteres para o conteúdo de texto, mas o conteúdo de imagem dessas ferramentas continua sujeito a esta variável (padrão: 25000) |471| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos nas respostas de ferramentas MCP. O Claude Code exibe um aviso quando a saída excede 10.000 tokens. Ferramentas que declaram [`anthropic/maxResultSizeChars`](/docs/pt/mcp#raise-the-limit-for-a-specific-tool) usam esse limite de caracteres para conteúdo de texto, mas o conteúdo de imagem dessas ferramentas ainda está sujeito a esta variável (padrão: 25000) |

470| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de tentativas que o Claude Code permite quando a resposta do modelo falha na validação contra o [`--json-schema`](/docs/pt/cli-reference#cli-flags) no modo não interativo com a flag `-p`; após essa quantidade de tentativas com falha sem saída válida, a execução falha. O mesmo limite se aplica quando a saída estruturada de um subagente de [workflow](/docs/pt/workflows) falha na validação. O padrão é 5, uma primeira tentativa mais quatro novas tentativas |472| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de tentativas que o Claude Code permite quando a resposta do modelo falha na validação contra o [`--json-schema`](/docs/pt/cli-reference#cli-flags) no modo não interativo com a flag `-p`; após esse número de tentativas com falha sem saída válida, a execução falha. O mesmo limite se aplica quando a saída estruturada de um subagente de [workflow](/docs/pt/workflows) falha na validação. O padrão é 5, uma primeira tentativa mais quatro novas tentativas |

471| `MAX_THINKING_TOKENS` | Orçamento fixo de tokens para o [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). O Claude Code o limita a um token abaixo do máximo de tokens de saída da requisição e nunca abaixo de 1.024. Consulte `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para saber como esse limite é definido. Quando não definida e o pensamento está ativado, os modelos com [raciocínio adaptativo](/docs/pt/model-config#adjust-effort-level) escolhem a própria profundidade de pensamento, e os outros modelos usam o limite. Defina como `0` para desativar o pensamento na API da Anthropic, exceto no Opus 5.5, no Sonnet 5.5 e nos modelos Fable, que não permitem desativar o pensamento. Em [provedores de terceiros](/docs/pt/third-party-integrations), `0` omite o parâmetro `thinking`. Com o pensamento desativado na API da Anthropic, o Claude Code envia o esforço `high` em vez de um nível mais alto para modelos que ele sabe que [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como o Opus 5. O Claude Code ignora valores diferentes de zero em modelos de raciocínio adaptativo, exceto nos modelos em que `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desativa o raciocínio adaptativo |473| `MAX_THINKING_TOKENS` | Orçamento fixo de tokens para o [pensamento estendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). O Claude Code o limita a um token abaixo do máximo de tokens de saída da requisição e nunca abaixo de 1.024. Consulte `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para saber como esse limite é definido. Quando não definida e o pensamento está ativado, modelos com [raciocínio adaptativo](/docs/pt/model-config#adjust-effort-level) escolhem sua própria profundidade de pensamento, e outros modelos usam o limite. Defina como `0` para desativar o pensamento na API da Anthropic, exceto no Opus 5.5, no Sonnet 5.5 e nos modelos Fable, que não podem ter o pensamento desativado. Em [provedores de terceiros](/docs/pt/third-party-integrations), `0` omite o parâmetro `thinking`. Com o pensamento desativado na API da Anthropic, o Claude Code envia o esforço `high` em vez de um nível mais alto para modelos que ele sabe que [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como o Opus 5. O Claude Code ignora valores diferentes de zero em modelos de raciocínio adaptativo, exceto nos modelos em que `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desativa o raciocínio adaptativo |

472| `MCP_CLIENT_SECRET` | Client secret OAuth para servidores MCP que exigem [credenciais pré-configuradas](/docs/pt/mcp#use-pre-configured-oauth-credentials). Evita o prompt interativo ao adicionar um servidor com `--client-secret` |474| `MCP_CLIENT_SECRET` | Client secret OAuth para servidores MCP que exigem [credenciais pré-configuradas](/docs/pt/mcp#use-pre-configured-oauth-credentials). Evita o prompt interativo ao adicionar um servidor com `--client-secret` |

473| `MCP_CONNECTION_NONBLOCKING` | Controla se a inicialização espera que os servidores MCP se conectem antes da primeira consulta. A inicialização do MCP não é bloqueante por padrão: os servidores se conectam em segundo plano e suas ferramentas ficam disponíveis à medida que terminam. Defina como `0` para fazer o Claude Code esperar que os servidores se conectem antes da primeira consulta. Servidores configurados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral) ainda fazem a inicialização esperar de qualquer forma, exceto quando servidos a partir do [cache de descoberta](/docs/pt/mcp#server-status-detail), pois suas ferramentas precisam estar presentes quando o primeiro prompt é montado. No modo não interativo (`-p`) sem `--input-format stream-json`, o Claude Code também espera pelos servidores ainda pendentes antes do primeiro turno, independentemente desta variável. Quando você passa [`--mcp-config`](/docs/pt/cli-reference#cli-flags) explicitamente, a espera tem um prazo maior; consulte a entrada dessa flag para a exceção de servidores em cache |475| `MCP_CONNECTION_NONBLOCKING` | Controla se a inicialização espera que os servidores MCP se conectem antes da primeira consulta. A inicialização do MCP é não bloqueante por padrão: os servidores se conectam em segundo plano e suas ferramentas ficam disponíveis à medida que terminam. Defina como `0` para fazer o Claude Code esperar que os servidores se conectem antes da primeira consulta. Servidores configurados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral) ainda fazem a inicialização esperar independentemente disso, exceto quando servidos a partir do [cache de descoberta](/docs/pt/mcp#server-status-detail), já que suas ferramentas precisam estar presentes quando o primeiro prompt é construído. No modo não interativo (`-p`) sem `--input-format stream-json`, o Claude Code também espera pelos servidores ainda pendentes antes do primeiro turno, independentemente desta variável. Quando você passa [`--mcp-config`](/docs/pt/cli-reference#cli-flags) explicitamente, a espera tem um prazo maior; consulte a entrada dessa flag para a exceção de servidores em cache |

474| `MCP_CONNECT_TIMEOUT_MS` | Quanto tempo, em milissegundos, a inicialização bloqueante do MCP espera pelo lote de conexões antes de capturar a lista de ferramentas (padrão: 5000). Aplica-se quando `MCP_CONNECTION_NONBLOCKING=0` ou para servidores marcados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral). Servidores ainda pendentes no prazo continuam se conectando em segundo plano. Diferente de `MCP_TIMEOUT`, que limita a tentativa de conexão de um servidor individual |476| `MCP_CONNECT_TIMEOUT_MS` | Quanto tempo a inicialização bloqueante do MCP espera, em milissegundos, pelo lote de conexões antes de capturar a lista de ferramentas (padrão: 5000). Aplica-se quando `MCP_CONNECTION_NONBLOCKING=0` ou para servidores marcados com [`alwaysLoad: true`](/docs/pt/mcp#exempt-a-server-from-deferral). Servidores ainda pendentes no prazo continuam se conectando em segundo plano. Diferente de `MCP_TIMEOUT`, que limita a tentativa de conexão de um servidor individual |

475| `MCP_DISCOVERY_CACHE` | Ativa ou desativa o [cache de descoberta do MCP](/docs/pt/mcp#server-status-detail). Com o cache ativado, um servidor HTTP ou SSE remoto que você já usou pode exibir o [status `cached`](/docs/pt/mcp#server-status-detail), e o Claude Code o conecta na primeira chamada de ferramenta em vez de na inicialização. O cache fica desativado por padrão, a menos que uma implantação gradual o tenha ativado para sua conta. Defina como `1` para ativá-lo, ou `0` para mantê-lo desativado mesmo quando a implantação gradual o tiver ativado. Antes da v2.1.238, o cache ficava ativado por padrão. O status `cached` requer Claude Code v2.1.221 ou posterior |477| `MCP_DISCOVERY_CACHE` | Ativa ou desativa o [cache de descoberta do MCP](/docs/pt/mcp#server-status-detail). Com o cache ativado, um servidor HTTP ou SSE remoto que você já usou antes pode mostrar o [status `cached`](/docs/pt/mcp#server-status-detail), e o Claude Code o conecta na primeira chamada de ferramenta em vez de na inicialização. O cache fica desativado por padrão, a menos que uma implantação gradual o tenha ativado para sua conta. Defina como `1` para ativá-lo, ou `0` para mantê-lo desativado mesmo quando a implantação o tiver ativado. Antes da v2.1.238, o cache ficava ativado por padrão. O status `cached` requer Claude Code v2.1.221 ou posterior |

476| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Idade máxima, em segundos, de uma entrada do [cache de descoberta](/docs/pt/mcp#server-status-detail) (padrão: 14400, ou 4 horas). Em uma inicialização em que a entrada é mais antiga que isso, o Claude Code a descarta e conecta o servidor na inicialização, como faz com o cache desativado. O Claude Code limita o valor a 7 dias. Antes da v2.1.238, o padrão era 86400, ou 24 horas, e o Claude Code não limitava o valor |478| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Idade máxima, em segundos, de uma entrada do [cache de descoberta](/docs/pt/mcp#server-status-detail) (padrão: 14400, ou 4 horas). Em uma inicialização em que a entrada é mais antiga que isso, o Claude Code a descarta e conecta o servidor na inicialização, como faz com o cache desativado. O Claude Code limita o valor a 7 dias. Antes da v2.1.238, o padrão era 86400, ou 24 horas, e o Claude Code não limitava o valor |

477| `MCP_DISCOVERY_CACHE_STRIKES` | Em uma inicialização em que uma entrada do [cache de descoberta](/docs/pt/mcp#server-status-detail) é mais antiga que `MCP_DISCOVERY_CACHE_TTL_S`, o Claude Code a atualiza em segundo plano. Esta variável define quantas atualizações seguidas podem falhar antes que o Claude Code descarte a entrada e conecte o servidor na próxima inicialização (padrão: 1). Aumente-a se sua conexão de rede cair ocasionalmente, para que uma única atualização com falha não descarte a entrada. Requer Claude Code v2.1.238 ou posterior |479| `MCP_DISCOVERY_CACHE_STRIKES` | Em uma inicialização em que uma entrada do [cache de descoberta](/docs/pt/mcp#server-status-detail) é mais antiga que `MCP_DISCOVERY_CACHE_TTL_S`, o Claude Code a atualiza em segundo plano. Esta variável define quantas atualizações seguidas podem falhar antes que o Claude Code descarte a entrada e conecte o servidor na próxima inicialização (padrão: 1). Aumente-a se sua conexão de rede cair ocasionalmente, para que uma única atualização com falha não descarte a entrada. Requer Claude Code v2.1.238 ou posterior |

478| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante os quais o Claude Code usa uma entrada do [cache de descoberta](/docs/pt/mcp#server-status-detail) sem atualizá-la (padrão: 900). Em uma inicialização em que a entrada é mais antiga que isso, o Claude Code ainda a usa, mas a atualiza em segundo plano. Quando a entrada fica mais antiga que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, o Claude Code a descarta. O Claude Code limita o valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que é 4 horas por padrão. Antes da v2.1.238, o Claude Code não limitava o valor |480| `MCP_DISCOVERY_CACHE_TTL_S` | Segundos durante os quais o Claude Code usa uma entrada do [cache de descoberta](/docs/pt/mcp#server-status-detail) sem atualizá-la (padrão: 900). Em uma inicialização em que a entrada é mais antiga que isso, o Claude Code ainda a usa, mas a atualiza em segundo plano. Quando a entrada fica mais antiga que `MCP_DISCOVERY_CACHE_MAX_STALE_S`, o Claude Code a descarta. O Claude Code limita o valor a `MCP_DISCOVERY_CACHE_MAX_STALE_S`, que é de 4 horas por padrão. Antes da v2.1.238, o Claude Code não limitava o valor |

479| `MCP_OAUTH_CALLBACK_PORT` | Porta fixa para o callback de redirecionamento OAuth, como alternativa a `--callback-port` ao adicionar um servidor MCP com [credenciais pré-configuradas](/docs/pt/mcp#use-pre-configured-oauth-credentials) |481| `MCP_OAUTH_CALLBACK_PORT` | Porta fixa para o callback de redirecionamento OAuth, como alternativa a `--callback-port` ao adicionar um servidor MCP com [credenciais pré-configuradas](/docs/pt/mcp#use-pre-configured-oauth-credentials) |

480| `MCP_PROTOCOL_NEGOTIATION` | Somente no [runtime de cliente MCP v2](/docs/pt/mcp#mcp-client-runtimes), define se o Claude Code sonda os servidores em busca da revisão de protocolo MCP 2026-07-28. Defina `auto` para sondar servidores HTTP, de conectores do claude.ai e stdio; um servidor que não responde à sondagem se conecta pelo protocolo anterior, como os servidores SSE e WebSocket sempre fazem. Defina `legacy` para pular a sondagem para todos os servidores. Sem a variável, o Claude Code sonda servidores HTTP e também sonda servidores de conectores do claude.ai em sessões em que [busca feature flags](#features-that-need-feature-flag-fetching). Qualquer outro valor é ignorado com um aviso no log de depuração. Requer Claude Code v2.1.221 ou posterior |482| `MCP_PROTOCOL_NEGOTIATION` | Apenas no [runtime de cliente MCP v2](/docs/pt/mcp#mcp-client-runtimes), define se o Claude Code sonda os servidores em busca da revisão de protocolo MCP 2026-07-28. Defina `auto` para sondar servidores HTTP, de conector do claude.ai e stdio, ou `legacy` para não sondar nenhum. Com a variável não definida, o Claude Code sonda os servidores descritos em [Runtimes de cliente MCP](/docs/pt/mcp#mcp-client-runtimes). Qualquer outro valor é ignorado com um aviso no log de depuração. Requer Claude Code v2.1.221 ou posterior |

481| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) a conectar em paralelo durante a inicialização (padrão: 20) |483| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) a conectar em paralelo durante a inicialização (padrão: 20) |

482| `MCP_SDK_GENERATION` | Fixa qual [runtime de cliente MCP](/docs/pt/mcp#mcp-client-runtimes) este processo usa para se conectar aos servidores MCP: `v1`, construído sobre o MCP TypeScript SDK 1.x, ou `v2`, construído sobre o [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sem a variável, o Claude Code usa o v2, a partir das versões listadas nessa seção. No Claude Code v2.1.221 ou posterior, o runtime v2 verifica o emissor que um servidor OAuth do MCP retorna em sua resposta de autorização e faz o login falhar com um erro que começa com `Issuer mismatch in authorization response` quando ele não corresponde. O runtime v1 não executa essa verificação. Se você definir um valor não reconhecido, o Claude Code o ignora e grava um aviso no log de depuração. O Claude Code lê o valor uma vez por processo. Requer Claude Code v2.1.218 ou posterior |484| `MCP_SDK_GENERATION` | Fixa com qual [runtime de cliente MCP](/docs/pt/mcp#mcp-client-runtimes) este processo se conecta aos servidores MCP: `v1`, construído sobre o MCP TypeScript SDK 1.x, ou `v2`, construído sobre o [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sem a variável, o Claude Code usa o v2, a partir das versões listadas nessa seção. No Claude Code v2.1.221 ou posterior, o runtime v2 verifica o emissor que um servidor OAuth MCP retorna em sua resposta de autorização e faz o login falhar com um erro que começa com `Issuer mismatch in authorization response` quando ele não corresponde. O runtime v1 não executa essa verificação. Se você definir um valor não reconhecido, o Claude Code o ignora e grava um aviso no log de depuração. O Claude Code lê o valor uma vez por processo. Requer Claude Code v2.1.218 ou posterior |

483| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locais (stdio) a conectar em paralelo durante a inicialização (padrão: 3) |485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locais (stdio) a conectar em paralelo durante a inicialização (padrão: 3) |

484| `MCP_TIMEOUT` | Timeout em milissegundos para a inicialização do servidor MCP (padrão: 30000, ou 30 segundos) |486| `MCP_TIMEOUT` | Timeout em milissegundos para a inicialização do servidor MCP (padrão: 30000, ou 30 segundos) |

485| `MCP_TOOL_TIMEOUT` | Timeout em milissegundos para a execução de ferramentas MCP (padrão: 100000000, cerca de 28 horas). Para um servidor HTTP, SSE ou de conector do claude.ai, cada requisição também atinge o timeout após 60 segundos por padrão; defina esta variável, ou o `timeout` por servidor, acima de 60000 para aumentar esse limite por requisição. Um valor menor ainda encurta o timeout geral de execução da ferramenta, mas mantém o limite por requisição em 60 segundos. Servidores stdio e WebSocket não têm temporizador por requisição. Um campo `timeout` por servidor em `.mcp.json` sobrescreve este valor para esse servidor. Um `timeout` por servidor de pelo menos 1000 também define a janela mínima de inatividade para as chamadas de ferramenta desse servidor, para que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca as aborte antes; esse piso requer Claude Code v2.1.203 ou posterior. Para a variável de ambiente, valores abaixo de 1000 são arredondados para um segundo; para o campo por servidor, valores abaixo de 1000 são ignorados |487| `MCP_TOOL_TIMEOUT` | Timeout em milissegundos para a execução de ferramentas MCP (padrão: 100000000, cerca de 28 horas). Para um servidor HTTP, SSE ou de conector do claude.ai, cada requisição também atinge o timeout após 60 segundos por padrão; defina esta variável, ou o `timeout` por servidor, acima de 60000 para aumentar esse limite por requisição. Um valor menor ainda encurta o timeout geral de execução da ferramenta, mas mantém o limite por requisição em 60 segundos. Servidores stdio e WebSocket não têm temporizador por requisição. Um campo `timeout` por servidor em `.mcp.json` sobrescreve esta variável para aquele servidor. Um `timeout` por servidor de pelo menos 1000 também define a janela mínima de inatividade para as chamadas de ferramenta daquele servidor, de modo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca as aborte antes; esse piso requer Claude Code v2.1.203 ou posterior. Para a variável de ambiente, valores abaixo de 1000 são arredondados para um segundo; para o campo por servidor, valores abaixo de 1000 são ignorados |

486| `NO_PROXY` | Lista de domínios e IPs para os quais as requisições serão enviadas diretamente, ignorando o proxy |488| `NO_PROXY` | Lista de domínios e IPs para os quais as requisições serão enviadas diretamente, ignorando o proxy |

487| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Limite padrão do SDK do OpenTelemetry para o comprimento de valores de atributos. O Claude Code limita os atributos de telemetria com conteúdo ao menor valor entre este e `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, para que o marcador de truncamento fique dentro do limite do SDK. O Claude Code lê as variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` e `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` da mesma forma, e o menor valor definido se aplica a todos os sinais. Requer Claude Code v2.1.214 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage#common-configuration-variables) |489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Limite padrão do SDK do OpenTelemetry para o comprimento de valores de atributos. O Claude Code limita atributos de telemetria com conteúdo ao menor valor entre este e `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, para que o marcador de truncamento fique dentro do limite do SDK. O Claude Code lê as variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` e `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` da mesma forma, e o menor valor definido se aplica a todos os sinais. Requer Claude Code v2.1.214 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage#common-configuration-variables) |

488| `OTEL_LOG_ASSISTANT_RESPONSES` | Defina como `1` para incluir o texto de resposta do modelo nos eventos de log do OpenTelemetry `assistant_response`. Quando não definida, o Claude Code usa o valor de `OTEL_LOG_USER_PROMPTS`. Defina como `0` para manter as respostas ocultadas mesmo quando `OTEL_LOG_USER_PROMPTS` estiver definida. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Requer Claude Code v2.1.193 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage#assistant-response-event) |490| `OTEL_LOG_ASSISTANT_RESPONSES` | Defina como `1` para incluir o texto de resposta do modelo nos eventos de log `assistant_response` do OpenTelemetry. Quando não definida, o Claude Code usa o valor de `OTEL_LOG_USER_PROMPTS`. Defina como `0` para manter as respostas ocultadas mesmo quando `OTEL_LOG_USER_PROMPTS` está definida. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Requer Claude Code v2.1.193 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage#assistant-response-event) |

489| `OTEL_LOG_MANAGED_SETTINGS` | Defina como `1` para adicionar as configurações gerenciadas com dados ocultados, e um digest SHA-256 das configurações antes da ocultação, aos eventos de log do OpenTelemetry `managed_settings_resolved`. Desativada por padrão. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas; um valor nas configurações de projeto ou locais não a ativa. Requer Claude Code v2.1.274 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage#managed-settings-resolved-event) |491| `OTEL_LOG_MANAGED_SETTINGS` | Defina como `1` para adicionar as configurações gerenciadas ocultadas, e um digest SHA-256 das configurações antes da ocultação, aos eventos de log `managed_settings_resolved` do OpenTelemetry. Desativada por padrão. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas; um valor nas configurações de projeto ou locais não a ativa. Requer Claude Code v2.1.274 ou posterior. Consulte [Monitoramento](/docs/pt/monitoring-usage#managed-settings-resolved-event) |

490| `OTEL_LOG_RAW_API_BODIES` | Emite o JSON de requisição e resposta da Messages API da Anthropic como eventos de log `api_request_body` / `api_response_body`. Defina como `1` para corpos inline truncados no limite de conteúdo, ou `file:<dir>` para gravar corpos não truncados em disco e emitir um caminho `body_ref`. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura o limite de conteúdo, 60 KB por padrão. Desativada por padrão; os corpos incluem todo o histórico da conversa. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Consulte [Monitoramento](/docs/pt/monitoring-usage#api-request-body-event) |492| `OTEL_LOG_RAW_API_BODIES` | Emite o JSON de requisição e resposta da Messages API da Anthropic como eventos de log `api_request_body` / `api_response_body`. Defina como `1` para corpos inline truncados no limite de conteúdo, ou `file:<dir>` para gravar corpos não truncados em disco e emitir um caminho `body_ref` em vez disso. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura o limite de conteúdo, 60 KB por padrão. Desativada por padrão; os corpos incluem todo o histórico da conversa. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env). Consulte [Monitoramento](/docs/pt/monitoring-usage#api-request-body-event) |

491| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir o conteúdo da ferramenta no evento de span do OpenTelemetry `tool.output`. Os atributos de span carregam o conteúdo da ferramenta sob [suas próprias condições](/docs/pt/monitoring-usage#new-context-gates). Requer [tracing](/docs/pt/monitoring-usage#traces-beta). Desativada por padrão para proteger dados sensíveis. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação descritos nessa seção. Consulte [Monitoramento](/docs/pt/monitoring-usage#tool-output-span-event) |493| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir o conteúdo da ferramenta no evento de span `tool.output` do OpenTelemetry. Os atributos de span carregam o conteúdo da ferramenta sob [seus próprios controles](/docs/pt/monitoring-usage#new-context-gates). Requer [rastreamento](/docs/pt/monitoring-usage#traces-beta). Desativada por padrão para proteger dados sensíveis. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](/docs/pt/monitoring-usage#tool-output-span-event) |

492| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada de ferramentas; nomes de servidores MCP; nomes de workflows criados pelo usuário; strings de erro brutas em falhas de ferramentas; a `category` de recusa nos eventos `api_refusal`; nomes reais de agentes, skills, plugins e servidores MCP nas [métricas de custo e tokens](/docs/pt/monitoring-usage#cost-counter); e outros detalhes de ferramentas em métricas, traces e logs do OpenTelemetry. Desativada por padrão para proteger PII. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação descritos nessa seção. Consulte [Monitoramento](/docs/pt/monitoring-usage) |494| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada de ferramentas; nomes de servidores MCP; nomes de workflows criados pelo usuário; strings de erro brutas em falhas de ferramentas; a `category` de recusa em eventos `api_refusal`; nomes reais de agentes, skills, plugins e servidores MCP nas [métricas de custo e de tokens](/docs/pt/monitoring-usage#cost-counter); e outros detalhes de ferramentas em métricas, traces e logs do OpenTelemetry. Desativada por padrão para proteger PII. Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

493| `OTEL_LOG_USER_PROMPTS` | Defina como `1` para incluir o texto do prompt do usuário em traces e logs do OpenTelemetry. Desativada por padrão (os prompts são ocultados). Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação descritos nessa seção. Consulte [Monitoramento](/docs/pt/monitoring-usage) |495| `OTEL_LOG_USER_PROMPTS` | Defina como `1` para incluir o texto dos prompts do usuário em traces e logs do OpenTelemetry. Desativada por padrão (os prompts são ocultados). Defina-a no seu shell, nas configurações de usuário ou nas configurações gerenciadas. Ignorada nas [configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

494| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Defina como `false` para excluir o UUID da conta dos atributos de métricas (padrão: incluído). Consulte [Monitoramento](/docs/pt/monitoring-usage) |496| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Defina como `false` para excluir o UUID da conta dos atributos de métricas (padrão: incluído). Consulte [Monitoramento](/docs/pt/monitoring-usage) |

495| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Defina como `true` para incluir o ponto de entrada da sessão nos atributos de métricas (padrão: excluído). Adicionada na v2.1.152. Consulte [Monitoramento](/docs/pt/monitoring-usage) |497| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Defina como `true` para incluir o entrypoint da sessão nos atributos de métricas (padrão: excluído). Adicionada na v2.1.152. Consulte [Monitoramento](/docs/pt/monitoring-usage) |

496| `OTEL_METRICS_INCLUDE_REPOSITORY` | Defina como `true` para marcar as métricas e eventos do OpenTelemetry com atributos `vcs.*` que identificam o repositório da sessão (padrão: excluído). Requer Claude Code v2.1.269 ou posterior. Consulte [Atributos de repositório](/docs/pt/monitoring-usage#repository-attributes) |498| `OTEL_METRICS_INCLUDE_REPOSITORY` | Defina como `true` para marcar métricas e eventos do OpenTelemetry com atributos `vcs.*` que identificam o repositório da sessão (padrão: excluído). Requer Claude Code v2.1.269 ou posterior. Consulte [Atributos de repositório](/docs/pt/monitoring-usage#repository-attributes) |

497| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir da v2.1.161, o Claude Code anexa as chaves de `OTEL_RESOURCE_ATTRIBUTES` aos rótulos dos pontos de dados de métricas. Defina como `false` para excluí-las (padrão: incluídas). Consulte [Monitoramento](/docs/pt/monitoring-usage#multi-team-organization-support) |499| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir da v2.1.161, o Claude Code anexa as chaves de `OTEL_RESOURCE_ATTRIBUTES` aos rótulos dos pontos de dados de métricas. Defina como `false` para excluí-las (padrão: incluídas). Consulte [Monitoramento](/docs/pt/monitoring-usage#multi-team-organization-support) |

498| `OTEL_METRICS_INCLUDE_SESSION_ID` | Defina como `false` para excluir o ID da sessão dos atributos de métricas (padrão: incluído). Consulte [Monitoramento](/docs/pt/monitoring-usage) |500| `OTEL_METRICS_INCLUDE_SESSION_ID` | Defina como `false` para excluir o ID da sessão dos atributos de métricas (padrão: incluído). Consulte [Monitoramento](/docs/pt/monitoring-usage) |

499| `OTEL_METRICS_INCLUDE_VERSION` | Defina como `true` para incluir a versão do Claude Code nos atributos de métricas (padrão: excluída). Consulte [Monitoramento](/docs/pt/monitoring-usage) |501| `OTEL_METRICS_INCLUDE_VERSION` | Defina como `true` para incluir a versão do Claude Code nos atributos de métricas (padrão: excluído). Consulte [Monitoramento](/docs/pt/monitoring-usage) |

500| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescreve o orçamento de caracteres para os metadados de skills exibidos à [ferramenta Skill](/docs/pt/skills#control-who-invokes-a-skill). O orçamento escala dinamicamente em 1% da janela de contexto, com fallback de 8.000 caracteres. Nome legado mantido para compatibilidade com versões anteriores |502| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Sobrescreve o orçamento de caracteres para os metadados de skills mostrados à [ferramenta Skill](/docs/pt/skills#control-who-invokes-a-skill). O orçamento escala dinamicamente em 1% da janela de contexto, com um fallback de 8.000 caracteres. Nome legado mantido para compatibilidade com versões anteriores |

501| `TASK_MAX_OUTPUT_LENGTH` | Removida na v2.1.277 e agora sem efeito, junto com a ferramenta `TaskOutput` cujo tamanho ela definia. Anteriormente definia o número máximo de caracteres da saída de uma [tarefa em segundo plano](/docs/pt/tools-reference#background-commands) que a ferramenta `TaskOutput` mantinha. O Claude agora lê o arquivo de saída de uma tarefa em segundo plano com `Read` |503| `TASK_MAX_OUTPUT_LENGTH` | Removida na v2.1.277 e agora sem efeito, junto com a ferramenta `TaskOutput` que ela dimensionava. Anteriormente definia o número máximo de caracteres da saída de uma [tarefa em segundo plano](/docs/pt/tools-reference#background-commands) que a ferramenta `TaskOutput` mantinha. O Claude lê o arquivo de saída de uma tarefa em segundo plano com `Read` em vez disso |

502| `USE_BUILTIN_RIPGREP` | Defina como `0` para usar o `rg` instalado no sistema em vez do `rg` incluído no Claude Code |504| `USE_BUILTIN_RIPGREP` | Defina como `0` para usar o `rg` instalado no sistema em vez do `rg` incluído com o Claude Code |

503| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescreve a região do Claude 3.5 Haiku ao usar a Agent Platform do Google Cloud |505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Sobrescreve a região do Claude 3.5 Haiku ao usar a Agent Platform do Google Cloud |

504| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescreve a região do Claude 3.5 Sonnet ao usar a Agent Platform do Google Cloud |506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Sobrescreve a região do Claude 3.5 Sonnet ao usar a Agent Platform do Google Cloud |

505| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sobrescreve a região do Claude 3.7 Sonnet ao usar a Agent Platform do Google Cloud |507| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Sobrescreve a região do Claude 3.7 Sonnet ao usar a Agent Platform do Google Cloud |


522 524 

523As variáveis padrão de exportador do OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` e variantes específicas de sinal) também são suportadas. Consulte [Monitoramento](/docs/pt/monitoring-usage) para detalhes de configuração.525As variáveis padrão de exportador do OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES` e variantes específicas de sinal) também são suportadas. Consulte [Monitoramento](/docs/pt/monitoring-usage) para detalhes de configuração.

524 526 

525Defina `CLAUDE_CODE_ENABLE_TELEMETRY` e as variáveis do OpenTelemetry que ativam a exportação, escolhem seu destino ou capturam conteúdo no seu shell, nas configurações de usuário ou nas configurações gerenciadas. O Claude Code [as ignora nas configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação descritos nessa seção. `OTEL_RESOURCE_ATTRIBUTES` e as variáveis de intervalo de exportação, timeout e compressão, como `OTEL_METRIC_EXPORT_INTERVAL`, continuam se aplicando a partir das configurações de projeto e locais.527Defina `CLAUDE_CODE_ENABLE_TELEMETRY` e as variáveis do OpenTelemetry que ativam a exportação, escolhem seu destino ou capturam conteúdo no seu shell, nas configurações de usuário ou nas configurações gerenciadas. O Claude Code [as ignora nas configurações de projeto e locais](/docs/pt/settings-reference#variables-claude-code-ignores-in-env), exceto pelos valores de desativação que essa seção descreve. `OTEL_RESOURCE_ATTRIBUTES` e as variáveis de intervalo de exportação, timeout e compressão, como `OTEL_METRIC_EXPORT_INTERVAL`, ainda se aplicam a partir das configurações de projeto e locais.

526 528 

527<h2 id="features-that-need-feature-flag-fetching">529<h2 id="features-that-need-feature-flag-fetching">

528 Recursos que precisam de busca de feature-flag530 Recursos que precisam de busca de feature-flag


545* Usar [a ferramenta advisor](/docs/pt/advisor#requirements)547* Usar [a ferramenta advisor](/docs/pt/advisor#requirements)

546* Ler ou responder a [comentários em um artefato](/docs/pt/artifacts#collect-comments-on-an-artifact)548* Ler ou responder a [comentários em um artefato](/docs/pt/artifacts#collect-comments-on-an-artifact)

547* Ter Claude lendo [o artefato público de outra organização](/docs/pt/artifacts#read-an-artifact-shared-with-you)549* Ter Claude lendo [o artefato público de outra organização](/docs/pt/artifacts#read-an-artifact-shared-with-you)

548* Ter Claude Code sondar servidores de conector claude.ai para [revisão de protocolo MCP 2026-07-28](/docs/pt/mcp#mcp-client-runtimes) a menos que você defina `MCP_PROTOCOL_NEGOTIATION=auto`550* Ter Claude Code sondar servidores de conector claude.ai ou servidores stdio para [revisão de protocolo MCP 2026-07-28](/docs/pt/mcp#mcp-client-runtimes) a menos que você defina `MCP_PROTOCOL_NEGOTIATION=auto`

549* Obter a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) por padrão para contas claude.ai e Console no Windows com Git Bash instalado; Claude Code roteia comandos shell através do Git Bash a menos que você defina `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. No Windows sem Git Bash, a ferramenta permanece ativada551* Obter a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) por padrão para contas claude.ai e Console no Windows com Git Bash instalado; Claude Code roteia comandos shell através do Git Bash a menos que você defina `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. No Windows sem Git Bash, a ferramenta permanece ativada

550* Obter [feedback rascunhado por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), que Claude Code ativa através de uma flag buscada552* Obter [feedback rascunhado por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), que Claude Code ativa através de uma flag buscada

551* Ter Claude [tratar grandes colagens como texto colado em vez de texto digitado](/docs/pt/terminal-config#how-claude-treats-pasted-text); o conteúdo atrás de um espaço reservado `[Pasted text #N]` chega a Claude sem marcação553* Ter Claude [tratar grandes colagens como texto colado em vez de texto digitado](/docs/pt/terminal-config#how-claude-treats-pasted-text); o conteúdo atrás de um espaço reservado `[Pasted text #N]` chega a Claude sem marcação

errors.md +69 −49

Details

187| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |187| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

188| `<model>'s safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |188| `<model>'s safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

190| `API Error: Output blocked by content filtering policy` | [Request errors](#output-blocked-by-content-filtering-policy) |

190| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |191| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |

191| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |192| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |

192| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |193| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |


402* Uma [resposta de streaming do Amazon Bedrock com um tipo de conteúdo inesperado](#bedrock-streaming-response-has-an-unexpected-content-type), porque o gateway ou proxy que reescreve a resposta reescreveria a nova tentativa da mesma forma. Requer Claude Code v2.1.208 ou posterior.403* Uma [resposta de streaming do Amazon Bedrock com um tipo de conteúdo inesperado](#bedrock-streaming-response-has-an-unexpected-content-type), porque o gateway ou proxy que reescreve a resposta reescreveria a nova tentativa da mesma forma. Requer Claude Code v2.1.208 ou posterior.

403* Uma nova tentativa sem streaming de uma requisição de streaming com falha que recebe um status de sucesso mas [nenhuma mensagem da API Claude no corpo](#api-returned-an-empty-or-malformed-response). Claude Code encerra o turno com esse erro.404* Uma nova tentativa sem streaming de uma requisição de streaming com falha que recebe um status de sucesso mas [nenhuma mensagem da API Claude no corpo](#api-returned-an-empty-or-malformed-response). Claude Code encerra o turno com esse erro.

404* Uma requisição que a verificação de política da sua organização negou, que aparece como uma linha `API Error:` carregando a mensagem de negação. Os administradores da sua organização configuram a verificação com [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), um recurso do Claude Enterprise, e a mensagem termina com as instruções que eles configuraram, ou por padrão diz para você entrar em contato com eles. Claude Code não reenvia a requisição negada para o mesmo modelo ou para um [modelo de fallback](/docs/pt/model-config#fallback-model-chains), porque a negação é sobre o conteúdo da requisição e não sobre o modelo. Antes da v2.1.239, Claude Code poderia reenviar uma requisição negada, sem streaming ou em um modelo de fallback configurado, antes de mostrar a negação.405* Uma requisição que a verificação de política da sua organização negou, que aparece como uma linha `API Error:` carregando a mensagem de negação. Os administradores da sua organização configuram a verificação com [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), um recurso do Claude Enterprise, e a mensagem termina com as instruções que eles configuraram, ou por padrão diz para você entrar em contato com eles. Claude Code não reenvia a requisição negada para o mesmo modelo ou para um [modelo de fallback](/docs/pt/model-config#fallback-model-chains), porque a negação é sobre o conteúdo da requisição e não sobre o modelo. Antes da v2.1.239, Claude Code poderia reenviar uma requisição negada, sem streaming ou em um modelo de fallback configurado, antes de mostrar a negação.

406* Uma resposta que o filtro de conteúdo de saída da API bloqueou. Claude Code mostra [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) imediatamente e não tenta novamente nem reenvia essa requisição.

405 407 

406<h3 id="what-you-see-while-claude-code-retries-or-waits">408<h3 id="what-you-see-while-claude-code-retries-or-waits">

407 O que você vê enquanto Claude Code tenta novamente ou aguarda409 O que você vê enquanto Claude Code tenta novamente ou aguarda


432| [`CLAUDE_CODE_MAX_RETRIES`](/docs/pt/env-vars) | 10 | Número de novas tentativas. Limitado a 15 a partir da v2.1.186; a partir da v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Reduza-o para expor falhas mais rapidamente em scripts. |434| [`CLAUDE_CODE_MAX_RETRIES`](/docs/pt/env-vars) | 10 | Número de novas tentativas. Limitado a 15 a partir da v2.1.186; a partir da v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta o padrão e remove o limite. Reduza-o para expor falhas mais rapidamente em scripts. |

433| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/pt/env-vars) | não definido | Defina como `1` em sessões não supervisionadas, como jobs de CI, para tentar novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que relata um limite de gastos ou créditos de uso esgotados, mesmo um de um [limite de gastos de gateway](#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses erros indefinidamente. Para requisições no modo rápido, veja [Handle rate limits](/docs/pt/fast-mode#handle-rate-limits). Na v2.1.199 ou posterior, também aumenta a contagem padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões perdidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. |435| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/pt/env-vars) | não definido | Defina como `1` em sessões não supervisionadas, como jobs de CI, para tentar novamente erros de capacidade `429` e `529` indefinidamente em vez de falhar após `CLAUDE_CODE_MAX_RETRIES` tentativas. Claude Code falha imediatamente quando uma requisição de velocidade padrão recebe um `429` que relata um limite de gastos ou créditos de uso esgotados, mesmo um de um [limite de gastos de gateway](#spend-limit-reached) que é redefinido em um cronograma. Antes da v2.1.239, o watchdog tentava novamente esses erros indefinidamente. Para requisições no modo rápido, veja [Handle rate limits](/docs/pt/fast-mode#handle-rate-limits). Na v2.1.199 ou posterior, também aumenta a contagem padrão de novas tentativas para outros erros transitórios, como erros de servidor, timeouts e conexões perdidas, para 300, aproximadamente três horas de backoff, e remove o limite de 15 em `CLAUDE_CODE_MAX_RETRIES` se você definir essa variável explicitamente. |

434| [`API_TIMEOUT_MS`](/docs/pt/env-vars) | 600000 | Timeout por requisição em milissegundos. Aumente-o para redes lentas ou proxies. Também limita quanto tempo Claude Code aguarda os cabeçalhos de resposta, conforme descrito em [No response from API](#no-response-from-api). |436| [`API_TIMEOUT_MS`](/docs/pt/env-vars) | 600000 | Timeout por requisição em milissegundos. Aumente-o para redes lentas ou proxies. Também limita quanto tempo Claude Code aguarda os cabeçalhos de resposta, conforme descrito em [No response from API](#no-response-from-api). |

437| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/pt/env-vars) | não definido | Limite de reenvios de uma [requisição sem streaming](#streaming-response-ended-before-any-complete-data-was-received) que atinge o timeout. Ao atingir o limite, a requisição falha. Uma resposta do Claude que leva mais tempo que o timeout para ser gerada atinge o timeout novamente a cada reenvio, então defina um número baixo, como `0`, para falhar mais cedo. Cada tentativa sem streaming atinge o timeout após 300 segundos em uma sessão local, ou após `API_TIMEOUT_MS` quando você define um valor positivo. Requer Claude Code v2.1.285 ou posterior. |

435| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/pt/env-vars) | não definido | Prazo em milissegundos para o primeiro byte de resposta de uma requisição de streaming. Requer Claude Code v2.1.242 ou posterior. Para saber como Claude Code escolhe o prazo quando esta variável não está definida, veja [No response from API](#no-response-from-api). |438| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/pt/env-vars) | não definido | Prazo em milissegundos para o primeiro byte de resposta de uma requisição de streaming. Requer Claude Code v2.1.242 ou posterior. Para saber como Claude Code escolhe o prazo quando esta variável não está definida, veja [No response from API](#no-response-from-api). |

436 439 

437<h2 id="server-errors">440<h2 id="server-errors">


1836 Erros de rede e conexão1839 Erros de rede e conexão

1837</h2>1840</h2>

1838 1841 

1839A maioria desses erros significa que uma solicitação de rede do Claude Code falhou ao alcançar seu destino, ou algo entre Claude Code e a API alterou a resposta no caminho de volta; quando uma entrada também tem uma causa local, como uma falha na escrita de arquivo, seu corpo diz isso. Geralmente originam-se em sua rede local, proxy ou firewall, ou na política de rede do ambiente de nuvem.1842A maioria desses erros significa que uma requisição de rede do Claude Code falhou ao alcançar seu destino, ou algo entre Claude Code e a API alterou a resposta no caminho de volta; quando uma entrada também tem uma causa local, como uma falha na escrita de arquivo, seu corpo diz isso. Geralmente originam-se em sua rede local, proxy ou firewall, ou na política de rede do ambiente de nuvem.

1840 1843 

1841<h3 id="unable-to-connect-to-api">1844<h3 id="unable-to-connect-to-api">

1842 Unable to connect to API1845 Unable to connect to API

1843</h3>1846</h3>

1844 1847 

1845A conexão TCP com a API falhou ou nunca foi concluída. Para os códigos de erro de conexão comuns, o nome da mensagem indica o tipo de falha e mantém o código entre parênteses:1848A conexão TCP com a API falhou ou nunca foi concluída. Para os códigos de erro de conexão comuns, a mensagem indica o tipo de falha e mantém o código entre parênteses:

1846 1849 

1847```text theme={null}1850```text theme={null}

1848Unable to connect to API. Check your internet connection1851Unable to connect to API. Check your internet connection


1864 1867 

1865* Confirme que você pode alcançar o host da API a partir do mesmo shell executando `curl -I https://api.anthropic.com`. No Windows PowerShell use `curl.exe -I https://api.anthropic.com` para que o alias `Invoke-WebRequest` integrado não seja usado.1868* Confirme que você pode alcançar o host da API a partir do mesmo shell executando `curl -I https://api.anthropic.com`. No Windows PowerShell use `curl.exe -I https://api.anthropic.com` para que o alias `Invoke-WebRequest` integrado não seja usado.

1866* Se você estiver atrás de um proxy corporativo, defina `HTTPS_PROXY` antes de iniciar Claude Code e veja [Network configuration](/docs/pt/network-config)1869* Se você estiver atrás de um proxy corporativo, defina `HTTPS_PROXY` antes de iniciar Claude Code e veja [Network configuration](/docs/pt/network-config)

1867* Se você rotear através de um gateway LLM ou relay, defina [`ANTHROPIC_BASE_URL`](/docs/pt/env-vars) para seu endereço. Veja [Connect Claude Code to an LLM gateway](/docs/pt/llm-gateway-connect) para configuração.1870* Se você rotear através de um gateway de LLM ou relay, defina [`ANTHROPIC_BASE_URL`](/docs/pt/env-vars) para seu endereço. Veja [Connect Claude Code to an LLM gateway](/docs/pt/llm-gateway-connect) para configuração.

1868* Certifique-se de que seu firewall permite os hosts listados em [Network access requirements](/docs/pt/network-config#network-access-requirements)1871* Certifique-se de que seu firewall permite os hosts listados em [Network access requirements](/docs/pt/network-config#network-access-requirements)

1869* Falhas intermitentes são [retentadas automaticamente](#automatic-retries); falhas persistentes apontam para um problema de rede local1872* Falhas intermitentes são [tentadas novamente de forma automática](#automatic-retries); falhas persistentes apontam para um problema de rede local

1870 1873 

1871Se `curl` funcionar mas Claude Code ainda falhar, a causa geralmente é algo entre o runtime e a rede em vez da rede em si:1874Se `curl` funcionar mas Claude Code ainda falhar, a causa geralmente é algo entre o runtime e a rede em vez da rede em si:

1872 1875 

1873* Verifique se `ANTHROPIC_BASE_URL` está definido executando `echo $ANTHROPIC_BASE_URL`, ou `echo $env:ANTHROPIC_BASE_URL` no PowerShell, e procure por ele no bloco `env` de seus [settings files](/docs/pt/settings). Quando está definido, Claude Code envia solicitações de modelo para esse endereço em vez de `api.anthropic.com`, então um valor remanescente apontando para um proxy local ou gateway que não está mais em execução produz `Connection refused` mesmo que `curl` alcance a API. Remova-o do seu perfil de shell ou configurações e inicie Claude Code a partir de um novo terminal.1876* Verifique se `ANTHROPIC_BASE_URL` está definido executando `echo $ANTHROPIC_BASE_URL`, ou `echo $env:ANTHROPIC_BASE_URL` no PowerShell, e procure por ele no bloco `env` de seus [arquivos de configurações](/docs/pt/settings). Quando está definido, Claude Code envia requisições de modelo para esse endereço em vez de `api.anthropic.com`, então um valor remanescente apontando para um proxy local ou gateway que não está mais em execução produz `Connection refused` mesmo que `curl` alcance a API. Remova-o do seu perfil de shell ou configurações e inicie Claude Code a partir de um novo terminal.

1874* No Linux e WSL, verifique `/etc/resolv.conf` para um nameserver inacessível. WSL em particular pode herdar um resolver quebrado do host.1877* No Linux e WSL, verifique `/etc/resolv.conf` para um nameserver inacessível. WSL em particular pode herdar um resolver quebrado do host.

1875* No macOS, um cliente VPN que foi desconectado ou desinstalado pode deixar uma interface de túnel ou regra de roteamento para trás. Verifique `ifconfig` para interfaces `utun` obsoletas e remova a extensão de rede da VPN em Configurações do Sistema.1878* No macOS, um cliente VPN que foi desconectado ou desinstalado pode deixar uma interface de túnel ou regra de roteamento para trás. Verifique `ifconfig` para interfaces `utun` obsoletas e remova a extensão de rede da VPN em Configurações do Sistema.

1876* Docker Desktop e runtimes de contêiner similares podem interceptar tráfego de saída. Saia deles e tente novamente para descartar isso.1879* Docker Desktop e runtimes de contêiner similares podem interceptar tráfego de saída. Saia deles e tente novamente para descartar isso.


1888A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.1891A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.

1889```1892```

1890 1893 

1891Claude Code envia a verificação através da mesma [proxy configuration](/docs/pt/network-config) que as solicitações de API e dá a cada sonda 10 segundos. Quando a sonda com falha passou por um proxy, a mensagem nomeia a variável de ambiente que a configurou, como `HTTPS_PROXY`. Antes da v2.1.222, a verificação usava um transporte de proxy diferente sem timeout: atrás de uma URL de proxy com o esquema `https://`, ela poderia travar em `Checking connectivity...` indefinidamente e depois falhar mesmo que as solicitações de API através do mesmo proxy funcionem.1894Claude Code envia a verificação através da mesma [configuração de proxy](/docs/pt/network-config) que as requisições de API e dá a cada sonda 10 segundos. Quando a sonda com falha passou por um proxy, a mensagem nomeia a variável de ambiente que a configurou, como `HTTPS_PROXY`. Antes da v2.1.222, a verificação usava um transporte de proxy diferente sem timeout: atrás de uma URL de proxy com o esquema `https://`, ela poderia travar em `Checking connectivity...` indefinidamente e depois falhar mesmo que as requisições de API através do mesmo proxy funcionem.

1892 1895 

1893Claude Code pula essa verificação quando um [managed settings file, MDM policy, ou policy helper](/docs/pt/managed-settings) define [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod) como `"gateway"`, ou define [`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl) sem `forceLoginMethod`. Com qualquer uma das configurações, Claude Code abre a etapa de login na tela **Cloud gateway** em vez de um método de login Anthropic. Claude Code também pula a verificação quando uma fonte de configurações gerenciadas na máquina existe mas não pode ser lida, já que essa fonte pode conter a configuração do gateway. Antes da v2.1.247, Claude Code executava a verificação sob essa configuração também, e saía com esse erro quando os endpoints da Anthropic eram inacessíveis.1896Claude Code pula essa verificação quando um [arquivo de configurações gerenciadas, política MDM ou policy helper](/docs/pt/managed-settings) define [`forceLoginMethod`](/docs/pt/settings-reference#forceloginmethod) como `"gateway"`, ou define [`forceLoginGatewayUrl`](/docs/pt/settings-reference#forcelogingatewayurl) sem `forceLoginMethod`. Com qualquer uma das configurações, Claude Code abre a etapa de login na tela **Cloud gateway** em vez de um método de login Anthropic. Claude Code também pula a verificação quando uma fonte de configurações gerenciadas na máquina existe mas não pode ser lida, já que essa fonte pode conter a configuração do gateway. Antes da v2.1.247, Claude Code executava a verificação sob essa configuração também, e saía com esse erro quando os endpoints da Anthropic eram inacessíveis.

1894 1897 

1895**O que fazer:**1898**O que fazer:**

1896 1899 


1904 1907 

1905`Socket is closed` significa que a conexão que carregava uma resposta de streaming foi fechada enquanto a resposta ainda estava chegando. A causa mais comum é um proxy corporativo no Windows descartando um túnel estabelecido no meio da resposta.1908`Socket is closed` significa que a conexão que carregava uma resposta de streaming foi fechada enquanto a resposta ainda estava chegando. A causa mais comum é um proxy corporativo no Windows descartando um túnel estabelecido no meio da resposta.

1906 1909 

1907Dependendo de quão longe a resposta havia progredido, Claude Code retenta a solicitação, mantém o que Claude produziu, ou encerra o turno. Veja [Automatic retries](#automatic-retries).1910Dependendo de quão longe a resposta havia progredido, Claude Code tenta novamente a requisição, mantém o que Claude produziu, ou encerra o turno. Veja [Automatic retries](#automatic-retries).

1908 1911 

1909Antes da v2.1.214, Claude Code não retentava essa falha, e o turno parava com um erro contendo `Socket is closed`.1912Antes da v2.1.214, Claude Code não tentava novamente essa falha, e o turno parava com um erro contendo `Socket is closed`.

1910 1913 

1911**O que fazer:**1914**O que fazer:**

1912 1915 


1917 API returned an empty or malformed response1920 API returned an empty or malformed response

1918</h3>1921</h3>

1919 1922 

1920Claude Code mostra esse erro quando sua retentativa sem streaming de uma solicitação de streaming com falha obtém um status de sucesso HTTP mas o corpo não é uma mensagem de API Claude: comumente uma página de erro HTML ou login, um corpo vazio, ou JSON em outro formato. Um proxy, gateway, ou página de login de rede respondendo no lugar da API é a fonte usual. Claude Code não retenta a solicitação, e o turno termina com esse erro.1923Claude Code mostra esse erro quando sua nova tentativa sem streaming de uma requisição de streaming com falha obtém um status de sucesso HTTP mas o corpo não é uma mensagem de API Claude: comumente uma página de erro HTML ou login, um corpo vazio, ou JSON em outro formato. Um proxy, gateway, ou página de login de rede respondendo no lugar da API é a fonte usual. Claude Code não tenta novamente a requisição, e o turno termina com esse erro.

1921 1924 

1922```text theme={null}1925```text theme={null}

1923API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.1926API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.

1924```1927```

1925 1928 

1926Após essa abertura, a mensagem relata o que voltou e qual solicitação falhou:1929Após essa abertura, a mensagem relata o que voltou e qual requisição falhou:

1927 1930 

1928* Uma cláusula `Response:` com o tipo de conteúdo, o tipo de corpo, como `body is an HTML page` ou `empty body`, seu tamanho em bytes, e se a resposta carregava um id de solicitação Anthropic. Quando a resposta nomeia um servidor reconhecível, como `nginx` ou `cloudflare`, ou carrega headers intermediários, como `cf-ray` ou `via`, a cláusula lista esses também.1931* Uma cláusula `Response:` com o tipo de conteúdo, o tipo de corpo, como `body is an HTML page` ou `empty body`, seu tamanho em bytes, e se a resposta carregava um id de requisição Anthropic. Quando a resposta nomeia um servidor reconhecível, como `nginx` ou `cloudflare`, ou carrega headers intermediários, como `cf-ray` ou `via`, a cláusula lista esses também.

1929* Uma sentença nomeando o id da solicitação de streaming com falha e a falha que acionou a retentativa. Quando um stream havia aberto antes da falha, também relata quantos eventos de stream chegaram e, se algum chegou, quanto tempo o stream havia ficado silencioso quando a tentativa falhou.1932* Uma sentença nomeando o id da requisição de streaming com falha e a falha que acionou a nova tentativa. Quando um stream havia aberto antes da falha, também relata quantos eventos de stream chegaram e, se algum chegou, quanto tempo o stream havia ficado silencioso quando a tentativa falhou.

1930 1933 

1931Antes da v2.1.234, a mensagem terminava após `intercepting the request`.1934Antes da v2.1.234, a mensagem terminava após `intercepting the request`.

1932 1935 

1933Antes da v2.1.271, uma resposta que carregava uma mensagem de API válida sob um tipo de conteúdo não-JSON como `text/plain` também terminava o turno com esse erro. Alguns gateways LLM usam esse tipo de conteúdo para a resposta sem streaming.1936Antes da v2.1.271, uma resposta que carregava uma mensagem de API válida sob um tipo de conteúdo não-JSON como `text/plain` também terminava o turno com esse erro. Alguns gateways de LLM usam esse tipo de conteúdo para a resposta sem streaming.

1934 1937 

1935**O que fazer:**1938**O que fazer:**

1936 1939 

1937* Leia a cláusula `Response:` para ver qual sistema respondeu. Um corpo HTML, nenhum id de solicitação Anthropic, ou um servidor nomeado como `nginx` ou `cloudflare` significa que algo entre Claude Code e a API respondeu em seu lugar1940* Leia a cláusula `Response:` para ver qual sistema respondeu. Um corpo HTML, nenhum id de requisição Anthropic, ou um servidor nomeado como `nginx` ou `cloudflare` significa que algo entre Claude Code e a API respondeu em seu lugar

1938* Se você rotear através de um [LLM gateway](/docs/pt/llm-gateway-connect#troubleshoot-gateway-errors), teste a rota com uma solicitação direta e corrija o hop que retorna a resposta não-API1941* Se você rotear através de um [gateway de LLM](/docs/pt/llm-gateway-connect#troubleshoot-gateway-errors), teste a rota com uma requisição direta e corrija o hop que retorna a resposta não-API

1939* Em uma rede com uma página de login, como Wi-Fi de convidado, complete o login em um navegador, depois tente novamente1942* Em uma rede com uma página de login, como Wi-Fi de convidado, complete o login em um navegador, depois tente novamente

1940* Se apenas a rota sem streaming através de seu gateway está quebrada, defina [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/pt/env-vars#variables) para desativar esse fallback, exceto quando o endpoint de streaming em si retorna `404`, onde Claude Code ainda faz fallback1943* Se apenas a rota sem streaming através de seu gateway está quebrada, defina [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/pt/env-vars#variables) para desativar esse fallback, exceto quando o endpoint de streaming em si retorna `404`, onde Claude Code ainda recorre ao fallback

1941 1944 

1942<h3 id="streaming-response-ended-before-any-complete-data-was-received">1945<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1943 Streaming response ended before any complete data was received1946 Streaming response ended before any complete data was received

1944</h3>1947</h3>

1945 1948 

1946Uma resposta de streaming de seu provedor de modelo foi concluída sem entregar nenhum dado utilizável, então Claude Code reenviou a solicitação sem streaming para terminar o turno. Claude Code mostra o aviso uma vez por sessão, apenas em sessões interativas. Antes da v2.1.239, Claude Code retentava silenciosamente sem streaming.1949Uma resposta de streaming de seu provedor de modelo foi concluída sem entregar nenhum dado utilizável, então Claude Code reenviou a requisição sem streaming para terminar o turno. Claude Code mostra o aviso uma vez por sessão, apenas em sessões interativas. Antes da v2.1.239, Claude Code tentava novamente de forma silenciosa sem streaming.

1947 1950 

1948```text theme={null}1951```text theme={null}

1949Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.1952Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.

1950```1953```

1951 1954 

1952Claude Code envia cada solicitação afetada duas vezes: a tentativa de streaming vazia e a retentativa. A causa usual é um proxy ou gateway que consome ou transforma o corpo da resposta de streaming no caminho de volta.1955Claude Code envia cada requisição afetada duas vezes: a tentativa de streaming vazia e a nova tentativa. A causa usual é um proxy ou gateway que consome ou transforma o corpo da resposta de streaming no caminho de volta.

1953 1956 

1954**O que fazer:**1957**O que fazer:**

1955 1958 


1960 Bedrock streaming response has an unexpected content-type1963 Bedrock streaming response has an unexpected content-type

1961</h3>1964</h3>

1962 1965 

1963Um gateway ou proxy entre Claude Code e [Amazon Bedrock](/docs/pt/amazon-bedrock) está transformando o corpo da resposta de streaming ou seu header `Content-Type`. Amazon Bedrock transmite respostas como `application/vnd.amazon.eventstream`. Em vez de decodificar um corpo que não consegue ler, Claude Code rejeita uma resposta de streaming bem-sucedida que relata um content-type diferente. Claude Code não retenta a solicitação.1966Um gateway ou proxy entre Claude Code e [Amazon Bedrock](/docs/pt/amazon-bedrock) está transformando o corpo da resposta de streaming ou seu header `Content-Type`. Amazon Bedrock transmite respostas como `application/vnd.amazon.eventstream`. Em vez de decodificar um corpo que não consegue ler, Claude Code rejeita uma resposta de streaming bem-sucedida que relata um content-type diferente. Claude Code não tenta novamente a requisição.

1964 1967 

1965```text theme={null}1968```text theme={null}

1966Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.1969Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.

1967```1970```

1968 1971 

1969Antes da v2.1.208, a mesma configuração incorreta aparecia como `API Error: Truncated event message received` após todo o corpo ter sido armazenado em buffer.1972Antes da v2.1.208, a mesma configuração incorreta aparecia como `API Error: Truncated event message received` após toda a resposta ter sido armazenada em buffer.

1970 1973 

1971**O que fazer:**1974**O que fazer:**

1972 1975 

1973* Configure o gateway para passar o corpo da resposta `InvokeModelWithResponseStream` e seu header `Content-Type` através sem modificação. Um intermediário que re-emite o stream como server-sent events é uma causa comum.1976* Configure o gateway para passar o corpo da resposta `InvokeModelWithResponseStream` e seu header `Content-Type` através sem modificação. Um intermediário que re-emite o stream como server-sent events é uma causa comum.

1974* Definir [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/pt/env-vars) oculta esse erro, mas Claude Code não decodifica um corpo binário sob um header reescrito, então essas solicitações fazem fallback para um caminho sem streaming mais lento. Veja [Streaming errors behind a gateway or proxy](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).1977* Definir [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/pt/env-vars) oculta esse erro, mas Claude Code não decodifica um corpo binário sob um header reescrito, então essas requisições recorrem a um caminho sem streaming mais lento como fallback. Veja [Streaming errors behind a gateway or proxy](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

1975 1978 

1976<h3 id="ssl-certificate-errors">1979<h3 id="ssl-certificate-errors">

1977 SSL certificate errors1980 SSL certificate errors


1986 1989 

1987Antes da v2.1.273, ambas as mensagens terminavam em `Check your proxy or corporate SSL certificates`, sem o código OpenSSL ou a dica `NODE_EXTRA_CA_CERTS`.1990Antes da v2.1.273, ambas as mensagens terminavam em `Check your proxy or corporate SSL certificates`, sem o código OpenSSL ou a dica `NODE_EXTRA_CA_CERTS`.

1988 1991 

1989A partir da v2.1.199, uma falha de validação de certificado não é retentada, então esse erro aparece na primeira tentativa em vez de após o [retry budget](#automatic-retries) completo. Versões anteriores gastavam alguns minutos retentando antes de mostrá-lo. Condições TLS transitórias, como um timeout de handshake, ainda retentam.1992A partir da v2.1.199, uma falha de validação de certificado não é tentada novamente, então esse erro aparece na primeira tentativa em vez de após o [retry budget](#automatic-retries) completo. Versões anteriores gastavam alguns minutos tentando novamente antes de mostrá-lo. Condições TLS transitórias, como um timeout de handshake, ainda são tentadas novamente.

1990 1993 

1991Durante `/login` e a verificação de conectividade de inicialização, a mesma falha produz uma mensagem diferente:1994Durante `/login` e a verificação de conectividade de inicialização, a mesma falha produz uma mensagem diferente:

1992 1995 


1994SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.1997SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.

1995```1998```

1996 1999 

1997Em [Amazon Bedrock](/docs/pt/amazon-bedrock), as solicitações que Claude Code em si envia para AWS, como as chamadas de credencial de função STS e SSO, descoberta de modelo, e as verificações do assistente de configuração, dependem da mesma configuração de certificado. Veja [Certificate errors behind a TLS-inspecting proxy](/docs/pt/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).2000Em [Amazon Bedrock](/docs/pt/amazon-bedrock), as requisições que Claude Code em si envia para AWS, como as chamadas de credencial de função STS e SSO, descoberta de modelo, e as verificações do assistente de configuração, dependem da mesma configuração de certificado. Veja [Certificate errors behind a TLS-inspecting proxy](/docs/pt/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy).

1998 2001 

1999**O que fazer:**2002**O que fazer:**

2000 2003 


2006 Host not allowed in a cloud session2009 Host not allowed in a cloud session

2007</h3>2010</h3>

2008 2011 

2009Uma solicitação HTTP de saída de uma sessão de nuvem ou rotina foi bloqueada pela política de rede do ambiente.2012Uma requisição HTTP de saída de uma sessão na nuvem ou rotina foi bloqueada pela política de rede do ambiente.

2010 2013 

2011```text theme={null}2014```text theme={null}

2012HTTP 4032015HTTP 403

2013x-deny-reason: host_not_allowed2016x-deny-reason: host_not_allowed

2014```2017```

2015 2018 

2016Você também pode ver um certificado TLS que não corresponde ao certificado real do destino. Sessões de nuvem rotam tráfego de saída através de um proxy que aplica a política de rede, então um certificado incompatível significa que o proxy terminou a conexão, não o destino.2019Você também pode ver um certificado TLS que não corresponde ao certificado real do destino. Sessões na nuvem roteiam tráfego de saída através de um proxy que aplica a política de rede, então um certificado incompatível significa que o proxy terminou a conexão, não o destino.

2017 2020 

2018Isso não é um problema de rede do lado do cliente. Sessões de nuvem e [routines](/docs/pt/routines) executam dentro de uma VM em sandbox cuja tráfego de saída através da rede da sessão é filtrado para a [allowlist do ambiente de nuvem](/docs/pt/cloud-environments); [operações GitHub](/docs/pt/cloud-environments#github-proxy) e tráfego do conector MCP usam canais separados, é por isso que podem continuar funcionando enquanto outros hosts são bloqueados. O ambiente **Default** usa acesso **Trusted**, que permite a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) de registros de pacotes, APIs de provedores de nuvem, registros de contêiner, e domínios de desenvolvimento comuns e bloqueia outros domínios nesse caminho.2021Isso não é um problema de rede do lado do cliente. Sessões na nuvem e [rotinas](/docs/pt/routines) executam dentro de uma VM em sandbox cujo tráfego de saída através da rede da sessão é filtrado para a [allowlist do ambiente de nuvem](/docs/pt/cloud-environments); [operações GitHub](/docs/pt/cloud-environments#github-proxy) e tráfego do conector MCP usam canais separados, é por isso que podem continuar funcionando enquanto outros hosts são bloqueados. O ambiente **Default** usa acesso **Trusted**, que permite a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) de registros de pacotes, APIs de provedores de nuvem, registros de contêiner, e domínios de desenvolvimento comuns e bloqueia outros domínios nesse caminho.

2019 2022 

2020**O que fazer:**2023**O que fazer:**

2021 2024 

2022Essas etapas alteram um de seus próprios ambientes. Um [organization-shared environment](/docs/pt/cloud-environments#organization-shared-environments) abre como somente leitura no seletor, então peça a um Owner para alterar seu acesso de rede na página **Cloud environments** em [admin settings](https://claude.ai/admin-settings).2025Essas etapas alteram um de seus próprios ambientes. Um [ambiente compartilhado pela organização](/docs/pt/cloud-environments#organization-shared-environments) abre como somente leitura no seletor, então peça a um Owner para alterar seu acesso de rede na página **Cloud environments** em [admin settings](https://claude.ai/admin-settings).

2023 2026 

2024* Abra seu ambiente para edição, ou a partir do [formulário da rotina](/docs/pt/routines#environments-and-network-access) ou a partir do [seletor de ambiente](/docs/pt/cloud-environments#configure-your-environment) onde você inicia sessões de nuvem.2027* Abra seu ambiente para edição, ou a partir do [formulário da rotina](/docs/pt/routines#environments-and-network-access) ou a partir do [seletor de ambiente](/docs/pt/cloud-environments#configure-your-environment) onde você inicia sessões na nuvem.

2025* No diálogo **Edit cloud environment**, altere **Network access** de **Trusted** para **Custom**, depois adicione o domínio bloqueado a **Allowed domains**. Digite um domínio por linha. Marque **Also include default list of common package managers** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Full** em vez disso se você quiser acesso irrestrito.2028* No diálogo **Edit environment**, altere **Network access** de **Trusted** para **Custom**, depois adicione o domínio bloqueado a **Allowed domains**. Digite um domínio por linha. Marque **Also include default list of common package managers** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Full** em vez disso se você quiser acesso irrestrito.

2026* Clique em **Save changes**. A próxima execução usa a allowlist atualizada. Para uma sessão de nuvem que já está aberta, veja [quando uma mudança de acesso de rede alcança sessões existentes](/docs/pt/cloud-environments#network-access).2029* Clique em **Save changes**. A próxima execução usa a allowlist atualizada. Para uma sessão na nuvem que já está aberta, veja [quando uma mudança de acesso de rede alcança sessões existentes](/docs/pt/cloud-environments#network-access).

2027 2030 

2028Veja [Network access](/docs/pt/cloud-environments#network-access) para níveis de acesso e a allowlist padrão. Sessões de CLI local não são afetadas por essa política.2031Veja [Network access](/docs/pt/cloud-environments#network-access) para níveis de acesso e a allowlist padrão. Sessões locais da CLI não são afetadas por essa política.

2029 2032 

2030<h3 id="the-proxy-refused-the-connection">2033<h3 id="the-proxy-refused-the-connection">

2031 The proxy refused the connection2034 The proxy refused the connection

2032</h3>2035</h3>

2033 2036 

2034Você vê essa mensagem quando Claude lê um [artifact](/docs/pt/artifacts) através do proxy que você definiu em `HTTPS_PROXY` ou uma [proxy variable](/docs/pt/network-config#environment-variables) relacionada. O conteúdo do artifact vem de `*.frame.claudeusercontent.com`, então Claude Code primeiro envia ao proxy uma solicitação `CONNECT` pedindo para abrir um túnel para esse host. Quando o proxy recusa, nada alcança o host, e a mensagem carrega o status HTTP do proxy:2037Você vê essa mensagem quando Claude lê um [artefato](/docs/pt/artifacts) através do proxy que você definiu em `HTTPS_PROXY` ou uma [variável de proxy](/docs/pt/network-config#environment-variables) relacionada. O conteúdo do artefato vem de `*.frame.claudeusercontent.com`, então Claude Code primeiro envia ao proxy uma requisição `CONNECT` pedindo para abrir um túnel para esse host. Quando o proxy recusa, nada alcança o host, e a mensagem carrega o status HTTP do proxy:

2035 2038 

2036```text theme={null}2039```text theme={null}

2037artifact content fetch failed (proxy refused the connection: HTTP 407)2040artifact content fetch failed (proxy refused the connection: HTTP 407)


2039the proxy refused the connection to the artifact's content host (HTTP 502)2042the proxy refused the connection to the artifact's content host (HTTP 502)

2040```2043```

2041 2044 

2042O status é a resposta do proxy para o `CONNECT`. O host nunca respondeu, então cada status aponta para um fix diferente:2045O status é a resposta do proxy para o `CONNECT`. O host nunca respondeu, então cada status aponta para uma correção diferente:

2043 2046 

2044* `HTTP 407`: o proxy requer credenciais que não recebeu. Coloque-as na URL do proxy, como [Basic authentication](/docs/pt/network-config#basic-authentication) mostra.2047* `HTTP 407`: o proxy requer credenciais que não recebeu. Coloque-as na URL do proxy, como [Basic authentication](/docs/pt/network-config#basic-authentication) mostra.

2045* `HTTP 403`: o proxy recusa fazer túnel para `*.frame.claudeusercontent.com`. Peça a quem executa o proxy para permitir esse host, que [Network access requirements](/docs/pt/network-config#network-access-requirements) lista.2048* `HTTP 403`: o proxy recusa fazer túnel para `*.frame.claudeusercontent.com`. Peça a quem executa o proxy para permitir esse host, que [Network access requirements](/docs/pt/network-config#network-access-requirements) lista.


2048 2051 

2049**O que fazer:**2052**O que fazer:**

2050 2053 

2051* Verifique o endereço e credenciais na variável de proxy, como [Proxy configuration](/docs/pt/network-config#proxy-configuration) descreve, depois execute `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` a partir do shell em que você inicia Claude Code, usando sua própria URL de proxy. No Windows PowerShell, execute `curl.exe`. Se essa sonda falhar da mesma forma, corrija a configuração do proxy primeiro. Se funcionar, a recusa é específica para o host do artifact.2054* Verifique o endereço e credenciais na variável de proxy, como [Proxy configuration](/docs/pt/network-config#proxy-configuration) descreve, depois execute `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com` a partir do shell em que você inicia Claude Code, usando sua própria URL de proxy. No Windows PowerShell, execute `curl.exe`. Se essa sonda falhar da mesma forma, corrija a configuração do proxy primeiro. Se funcionar, a recusa é específica para o host do artefato.

2052* Se sua rede deixa Claude Code alcançar o host do artifact diretamente, adicione `.frame.claudeusercontent.com` a [`NO_PROXY`](/docs/pt/network-config#environment-variables). Mantenha a entrada estreita: uma entrada `.claudeusercontent.com` mais ampla também contorna o proxy para `bridge.claudeusercontent.com`, que organizações com [IP allowlisting](/docs/pt/network-config#organization-ip-allowlists-and-proxy-egress) precisam manter no proxy.2055* Se sua rede deixa Claude Code alcançar o host do artefato diretamente, adicione `.frame.claudeusercontent.com` a [`NO_PROXY`](/docs/pt/network-config#environment-variables). Mantenha a entrada estreita: uma entrada `.claudeusercontent.com` mais ampla também contorna o proxy para `bridge.claudeusercontent.com`, que organizações com [IP allowlisting](/docs/pt/network-config#organization-ip-allowlists-and-proxy-egress) precisam manter no proxy.

2053 2056 

2054Antes da v2.1.238, Claude Code relatava um túnel recusado como um erro de rede genérico.2057Antes da v2.1.238, Claude Code relatava um túnel recusado como um erro de rede genérico.

2055 2058 


2057 The cloud environments service returned an empty or unexpected response2060 The cloud environments service returned an empty or unexpected response

2058</h3>2061</h3>

2059 2062 

2060Claude Code solicita sua lista de [cloud environments](/docs/pt/cloud-environments) em vários pontos, como quando você cria uma sessão de nuvem a partir da CLI ou executa [`/remote-env`](/docs/pt/cloud-environments#select-an-environment-from-the-cli). Quando não consegue ler a resposta do servidor, mostra uma dessas mensagens:2063Claude Code solicita sua lista de [ambientes de nuvem](/docs/pt/cloud-environments) em vários pontos, como quando você cria uma sessão na nuvem a partir da CLI ou executa [`/remote-env`](/docs/pt/cloud-environments#select-an-environment-from-the-cli). Quando não consegue ler a resposta do servidor, mostra uma dessas mensagens:

2061 2064 

2062```text theme={null}2065```text theme={null}

2063The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.2066The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.


2065The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.2068The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.

2066```2069```

2067 2070 

2068O servidor aceitou a solicitação mas respondeu com um corpo que não é a lista de ambientes: vazio, não JSON, ou JSON sem a lista. Isso geralmente acompanha uma disrupção do lado do serviço e se limpa por conta própria. Dependendo da superfície que solicitou a lista, Claude Code pode adicionar um prefixo, como `couldn't list environments:` no diálogo `/remote-env`.2071O servidor aceitou a requisição mas respondeu com um corpo que não é a lista de ambientes: vazio, não JSON, ou JSON sem a lista. Isso geralmente acompanha uma disrupção do lado do serviço e se resolve por conta própria. Dependendo da superfície que solicitou a lista, Claude Code pode adicionar um prefixo, como `couldn't list environments:` no diálogo `/remote-env`.

2069 2072 

2070**O que fazer:**2073**O que fazer:**

2071 2074 


2104 2107 

2105**O que fazer:**2108**O que fazer:**

2106 2109 

2107* Quando Claude Code lista worktrees mantidas sob essa mensagem, pegue qualquer trabalho não commitado delas2110* Quando Claude Code lista worktrees mantidos sob essa mensagem, recupere qualquer trabalho não commitado deles

2108* Execute `claude remote-control` para iniciar um ambiente fresco2111* Execute `claude remote-control` para iniciar um ambiente novo

2109 2112 

2110<h3 id="couldnt-share-the-transcript">2113<h3 id="couldnt-share-the-transcript">

2111 Couldn't share the transcript2114 Couldn't share the transcript

2112</h3>2115</h3>

2113 2116 

2114Depois que você concorda em compartilhar sua transcrição de sessão de um prompt de pesquisa, como a [session quality survey](/docs/pt/data-usage#session-quality-surveys), Claude Code a carrega para Anthropic, ou salva um arquivo local em vez disso em provedores de terceiros, em sessões [Claude apps gateway](/docs/pt/claude-apps-gateway), e quando nenhuma credencial Anthropic está disponível. Essa mensagem significa que o compartilhamento não foi concluído.2117Depois que você concorda em compartilhar sua transcrição de sessão a partir de um prompt de pesquisa, como a [pesquisa de qualidade de sessão](/docs/pt/data-usage#session-quality-surveys), Claude Code a carrega para Anthropic, ou salva um arquivo local em vez disso em provedores de terceiros, em sessões [Claude apps gateway](/docs/pt/claude-apps-gateway), e quando nenhuma credencial Anthropic está disponível. Essa mensagem significa que o compartilhamento não foi concluído.

2115 2118 

2116```text theme={null}2119```text theme={null}

2117Couldn't share the transcript.2120Couldn't share the transcript.

2118```2121```

2119 2122 

2120O upload deve caber em um limite de 8 MiB. Em uma sessão longa, Claude Code progressivamente descarta partes do compartilhamento, as configurações de modelo da última solicitação primeiro, depois a conversa estruturada e transcrições de subagent, e mostra essa mensagem quando nenhuma versão reduzida pode ser enviada ou um erro de rede ou servidor para o upload. Quando Claude Code salva um arquivo local em vez disso, a mensagem significa que não conseguiu escrever o arquivo.2123O upload deve caber em um limite de 8 MiB. Em uma sessão longa, Claude Code progressivamente descarta partes do compartilhamento, as configurações de modelo da última requisição primeiro, depois a conversa estruturada e transcrições de subagentes, e mostra essa mensagem quando nenhuma versão reduzida pode ser enviada ou um erro de rede ou servidor interrompe o upload. Quando Claude Code salva um arquivo local em vez disso, a mensagem significa que não conseguiu escrever o arquivo.

2121 2124 

2122**O que fazer:**2125**O que fazer:**

2123 2126 

2124* Execute `/feedback` para enviar a transcrição com uma descrição do que aconteceu. Veja [Report an error](#report-an-error) se `/feedback` não estiver disponível em seu ambiente2127* Execute `/feedback` para enviar a transcrição com uma descrição do que aconteceu. Veja [Report an error](#report-an-error) se `/feedback` não estiver disponível em seu ambiente

2125* Se outras solicitações também estão falhando, verifique sua conexão de rede e veja [Unable to connect to API](#unable-to-connect-to-api)2128* Se outras requisições também estão falhando, verifique sua conexão de rede e veja [Unable to connect to API](#unable-to-connect-to-api)

2126 2129 

2127<h3 id="couldnt-send-feedback">2130<h3 id="couldnt-send-feedback">

2128 Couldn't send feedback2131 Couldn't send feedback


2136 2139 

2137O texto após o prefixo nomeia o que falhou:2140O texto após o prefixo nomeia o que falhou:

2138 2141 

2139* **`: not signed in. Run /login, then retry.`**: o diálogo carrega apenas quando Claude Code encontrou credenciais Anthropic conforme abriu, e nenhuma era utilizável no momento em que você enviou. Por exemplo, você se desconectou nesta máquina enquanto isso, ou seu login não pôde mais ser atualizado.2142* **`: not signed in. Run /login, then retry.`**: o diálogo carrega apenas quando Claude Code encontrou credenciais Anthropic ao abrir, e nenhuma era utilizável no momento em que você enviou. Por exemplo, você fez logout nesta máquina nesse meio-tempo, ou seu login não pôde mais ser atualizado.

2140* **Um parêntese**: `(server returned <status>)` é o código de resposta do serviço; `(request timed out)` e `(couldn't reach the service)` são falhas de rede. Quando Claude Code não consegue nomear um motivo, o parêntese está ausente.2143* **Um parêntese**: `(server returned <status>)` é o código de resposta do serviço; `(request timed out)` e `(couldn't reach the service)` são falhas de rede. Quando Claude Code não consegue nomear um motivo, o parêntese está ausente.

2141 2144 

2142Na [feedback drafts queue](/docs/pt/tools-reference#sendfeedback-tool-behavior), a mesma falha termina com `The draft is still queued. Try again later.` em vez disso, e o rascunho permanece na fila para outra tentativa.2145Na [fila de rascunhos de feedback](/docs/pt/tools-reference#sendfeedback-tool-behavior), a mesma falha termina com `The draft is still queued. Try again later.` em vez disso, e o rascunho permanece na fila para outra tentativa.

2143 2146 

2144**O que fazer:**2147**O que fazer:**

2145 2148 

2146* Para a redação não-assinada, execute `/login` e envie novamente2149* Para a redação de não autenticado, execute `/login` e envie novamente

2147* Caso contrário, envie novamente; se outras solicitações também estão falhando, verifique sua conexão de rede e veja [Unable to connect to API](#unable-to-connect-to-api)2150* Caso contrário, envie novamente; se outras requisições também estão falhando, verifique sua conexão de rede e veja [Unable to connect to API](#unable-to-connect-to-api)

2148* Se continuar falhando, registre o relatório em [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), como a mensagem diz2151* Se continuar falhando, registre o relatório em [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), como a mensagem diz

2149 2152 

2150Antes da v2.1.281, cada envio falhava com essa mensagem uma vez que um Remote Control **Stop** ou uma mensagem urgente entre sessões havia chegado enquanto o diálogo estava aberto. Nessas versões, feche o diálogo, reabra-o, e envie novamente.2153Antes da v2.1.281, cada envio falhava com essa mensagem uma vez que um Remote Control **Stop** ou uma mensagem urgente entre sessões havia chegado enquanto o diálogo estava aberto. Nessas versões, feche o diálogo, reabra-o, e envie novamente.


2865* Se sua requisição não era sobre um tópico de cibersegurança, execute `/feedback` para relatar o falso positivo2868* Se sua requisição não era sobre um tópico de cibersegurança, execute `/feedback` para relatar o falso positivo

2866* Para continuar trabalhando na mesma sessão, pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes do turno que acionou a sinalização, depois tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).2869* Para continuar trabalhando na mesma sessão, pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes do turno que acionou a sinalização, depois tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).

2867 2870 

2871<h3 id="output-blocked-by-content-filtering-policy">

2872 Output blocked by content filtering policy

2873</h3>

2874 

2875O filtro de conteúdo de saída da API interrompeu a resposta que Claude estava gerando. O texto da mensagem vem da API:

2876 

2877```text theme={null}

2878API Error: Output blocked by content filtering policy

2879```

2880 

2881Claude Code mostra o erro assim que o bloqueio chega e encerra a requisição ali. Ele não tenta novamente a requisição, não a reenvia sem streaming nem muda para um [modelo de fallback](/docs/pt/model-config#fallback-model-chains). Antes da v2.1.285, Claude Code podia reenviar e tentar novamente uma requisição bloqueada, às vezes por minutos, antes de mostrar o erro a você.

2882 

2883**O que fazer:**

2884 

2885* Reformule sua última mensagem ou tome uma abordagem diferente

2886* Para voltar a um checkpoint antes do turno que acionou o bloqueio, pressione Esc duas vezes ou execute `/rewind`. Veja [Checkpointing](/docs/pt/checkpointing)

2887 

2868<h2 id="installation-errors">2888<h2 id="installation-errors">

2869 Erros de instalação2889 Erros de instalação

2870</h2>2890</h2>


4416 Definição de agente do colega não foi restaurada4436 Definição de agente do colega não foi restaurada

4417</h3>4437</h3>

4418 4438 

4419Claude enviou uma mensagem a um colega de [equipe de agentes](/docs/pt/agent-teams) parado, e Claude Code o trouxe de volta sem reaplicar a [definição de subagente](/docs/pt/agent-teams#use-subagent-definitions-for-teammates) de que foi gerado, porque seu arquivo de definição veio de uma pasta sem confiança salva. O aviso segue o relatório de retomada no resultado da ferramenta do agente remetente:4439Claude enviou uma mensagem a um colega de [equipe de agentes](/docs/pt/agent-teams) parado, e Claude Code o trouxe de volta sem reaplicar a [definição de subagente](/docs/pt/agent-teams#use-subagent-definitions-for-teammates) de que foi gerado. O aviso segue o relatório de retomada no resultado da ferramenta do agente remetente e nomeia a razão. Quando o arquivo de definição veio de uma pasta sem confiança salva, ele diz:

4420 4440 

4421```text wrap theme={null}4441```text wrap theme={null}

4422Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4442Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.


4469 Mensagem entre sessões foi descartada na caixa de entrada da sessão receptora4489 Mensagem entre sessões foi descartada na caixa de entrada da sessão receptora

4470</h3>4490</h3>

4471 4491 

4472Claude enviou uma [mensagem entre sessões](/docs/pt/cross-session-messaging) para outra de suas sessões nesta máquina, e a caixa de entrada dessa sessão a descartou antes de Claude nessa sessão lê-la. A linha nomeia o endereço do destinatário e, quando o destinatário deu uma razão, adiciona a razão após um travessão:4492Claude enviou uma [mensagem entre sessões](/docs/pt/cross-session-messaging) para outra de suas sessões nesta máquina, e a caixa de entrada dessa sessão a descartou antes de Claude nessa sessão lê-la. A linha nomeia o destinatário e, quando o destinatário deu uma razão, adiciona a razão após um travessão:

4473 4493 

4474```text wrap theme={null}4494```text wrap theme={null}

4475Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.4495Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

hooks.md +607 −596

Details

18| :- | :- |18| :- | :- |

19| `SessionStart` | Quando uma sessão começa ou é retomada |19| `SessionStart` | Quando uma sessão começa ou é retomada |

20| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |20| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |

21| `UserPromptSubmit` | Quando você envia um prompt, antes de Claude processá-lo |21| `UserPromptSubmit` | Quando um prompt é enviado, antes de Claude processá-lo. Também dispara em [turnos que Claude Code inicia por conta própria](/docs/pt/hooks#userpromptsubmit) |

22| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |22| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |

23| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |23| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |

24| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |24| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |


76| :- | :- |76| :- | :- |

77| `SessionStart` | Quando uma sessão começa ou é retomada |77| `SessionStart` | Quando uma sessão começa ou é retomada |

78| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |78| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |

79| `UserPromptSubmit` | Quando você envia um prompt, antes de Claude processá-lo |79| `UserPromptSubmit` | Quando um prompt é enviado, antes de Claude processá-lo. Também dispara em [turnos que Claude Code inicia por conta própria](/docs/pt/hooks#userpromptsubmit) |

80| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |80| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |

81| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |81| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |

82| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |82| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |


1195 Eventos de hook1195 Eventos de hook

1196</h2>1196</h2>

1197 1197 

1198Cada evento corresponde a um ponto no ciclo de vida do Claude Code onde hooks podem ser executados. As seções abaixo estão ordenadas para corresponder ao ciclo de vida: desde a configuração da sessão através do loop agentico até o final da sessão. Cada seção descreve quando o evento é disparado, quais matchers ele suporta, a entrada JSON que recebe e como controlar o comportamento através da saída.1198Cada evento corresponde a um ponto no ciclo de vida do Claude Code em que os hooks podem ser executados. As seções abaixo estão ordenadas de acordo com o ciclo de vida: da configuração da sessão, passando pelo loop agêntico, até o fim da sessão. Cada seção descreve quando o evento é disparado, quais matchers ele suporta, a entrada JSON que ele recebe e como controlar o comportamento por meio da saída.

1199 1199 

1200<h3 id="sessionstart">1200<h3 id="sessionstart">

1201 SessionStart1201 SessionStart

1202</h3>1202</h3>

1203 1203 

1204Executa quando Claude Code inicia uma nova sessão ou retoma uma sessão existente. Útil para carregar contexto de desenvolvimento como problemas existentes ou mudanças recentes no seu código, ou configurar variáveis de ambiente. Para contexto estático que não requer um script, use [CLAUDE.md](/docs/pt/memory) em vez disso.1204É executado quando o Claude Code inicia uma nova sessão ou retoma uma sessão existente. Útil para carregar contexto de desenvolvimento, como issues existentes ou alterações recentes na sua base de código, ou para configurar variáveis de ambiente. Para contexto estático que não exige um script, use o [CLAUDE.md](/docs/pt/memory).

1205 1205 

1206SessionStart é executado em cada sessão, então mantenha esses hooks rápidos. Apenas hooks `type: "command"` e `type: "mcp_tool"` são suportados. Veja [campos de hook de ferramenta MCP](#mcp-tool-hook-fields) para quando hooks `mcp_tool` são executados.1206O SessionStart é executado em todas as sessões, então mantenha esses hooks rápidos. Somente hooks `type: "command"` e `type: "mcp_tool"` são suportados. Consulte [Campos de hook de ferramenta MCP](#mcp-tool-hook-fields) para saber quando os hooks `mcp_tool` são executados.

1207 1207 

1208O valor do matcher corresponde a como a sessão foi iniciada:1208O valor do matcher corresponde à forma como a sessão foi iniciada:

1209 1209 

1210| Matcher | Quando é disparado |1210| Matcher | Quando é disparado |

1211| :- | :- |1211| :- | :- |

1212| `startup` | Nova sessão |1212| `startup` | Nova sessão |

1213| `resume` | `--resume`, `--continue`, ou `/resume` |1213| `resume` | `--resume`, `--continue` ou `/resume` |

1214| `clear` | `/clear` |1214| `clear` | `/clear` |

1215| `compact` | Compactação automática ou manual |1215| `compact` | Compactação automática ou manual |

1216| `fork` | Uma nova sessão bifurcada de uma existente: `--fork-session` com `--resume` ou `--continue`, a cópia de fundo `/fork`, `/branch` ou uma conversa que você [move para o fundo](/docs/pt/agent-view#from-inside-a-session) |1216| `fork` | Uma nova sessão bifurcada de uma existente: `--fork-session` com `--resume` ou `--continue`, a cópia em segundo plano de `/fork`, `/branch` ou uma conversa que você [move para o segundo plano](/docs/pt/agent-view#from-inside-a-session) |

1217 1217 

1218Antes da v2.1.214, sessões bifurcadas relatavam fonte `"resume"`.1218Antes da v2.1.214, sessões bifurcadas informavam a origem `"resume"`.

1219 1219 

1220Quando você inicia uma sessão interativa, retoma uma conversa no lançamento com `--continue` ou `--resume`, ou executa `/clear`, hooks SessionStart são executados em segundo plano. Você pode digitar imediatamente, e uma conversa que você retomou aparece sem esperar pelos hooks. A primeira resposta do Claude ainda espera os hooks terminarem, então seu contexto chega ao Claude.1220Quando você inicia uma sessão interativa, retoma uma conversa na inicialização com `--continue` ou `--resume`, ou executa `/clear`, os hooks SessionStart são executados em segundo plano. Você pode digitar imediatamente, e uma conversa retomada aparece sem esperar pelos hooks. A primeira resposta do Claude ainda espera os hooks terminarem, para que o contexto deles chegue ao Claude.

1221 1221 

1222Quando você muda de conversas com `/resume` dentro de uma sessão, a mudança espera os hooks terminarem. Se você executar `/clear` ou mudar para outra conversa enquanto hooks de fundo ainda estão em execução, nada que eles retornem se aplica à sessão.1222Quando você alterna entre conversas com `/resume` dentro de uma sessão, a troca espera os hooks terminarem. Se você executar `/clear` ou alternar para outra conversa enquanto hooks em segundo plano ainda estiverem em execução, nada do que eles retornarem se aplica à sessão.

1223 1223 

1224A mesma espera se aplica no lançamento, incluindo uma sessão retomada: um prompt que você envia enquanto hooks SessionStart ainda estão em execução não chega ao Claude até que terminem.1224A mesma espera se aplica na inicialização, incluindo uma sessão retomada: um prompt que você envia enquanto os hooks SessionStart ainda estão em execução não chega ao Claude até que eles terminem.

1225 1225 

1226Durante qualquer espera, pressione `Esc` para levar o prompt de volta para a entrada sem enviá-lo. Os hooks continuam em execução.1226Durante qualquer uma dessas esperas, pressione `Esc` para trazer o prompt de volta à entrada sem enviá-lo. Os hooks continuam em execução.

1227 1227 

1228<h4 id="sessionstart-input">1228<h4 id="sessionstart-input">

1229 Entrada SessionStart1229 Entrada do SessionStart

1230</h4>1230</h4>

1231 1231 

1232Além dos [campos de entrada comuns](#common-input-fields), hooks SessionStart recebem `source` e opcionalmente `model`, `agent_type` e `session_title`:1232Além dos [campos de entrada comuns](#common-input-fields), os hooks SessionStart recebem `source` e, opcionalmente, `model`, `agent_type` e `session_title`:

1233 1233 

1234| Campo | Descrição |1234| Campo | Descrição |

1235| :- | :- |1235| :- | :- |

1236| `source` | Como a sessão começou: `"startup"` para novas sessões, `"resume"` para sessões retomadas, `"clear"` após `/clear`, `"compact"` após compactação, ou `"fork"` para uma nova sessão bifurcada de uma existente |1236| `source` | Como a sessão começou: `"startup"` para novas sessões, `"resume"` para sessões retomadas, `"clear"` após `/clear`, `"compact"` após a compactação ou `"fork"` para uma nova sessão bifurcada de uma existente |

1237| `model` | O identificador do modelo ativo. Pode ser omitido, por exemplo após `/clear` ou quando uma sessão é restaurada através de recuperação de conversa, então verifique o campo antes de lê-lo |1237| `model` | O identificador do modelo ativo. Ele pode ser omitido, por exemplo após `/clear` ou quando uma sessão é restaurada pela recuperação de conversa, então verifique a existência do campo antes de lê-lo |

1238| `agent_type` | O nome do agente, presente quando você inicia Claude Code com `claude --agent <name>` |1238| `agent_type` | O nome do agente, presente quando você inicia o Claude Code com `claude --agent <name>` |

1239| `session_title` | O título da sessão atual se um já estiver definido, por exemplo via `--name` ou `/rename`. Um hook que emite `sessionTitle` pode verificar `session_title` primeiro para evitar sobrescrever um título que o usuário definiu explicitamente |1239| `session_title` | O título personalizado da sessão, presente quando um está definido, por exemplo com `--name`, `/rename`, a saída `sessionTitle` de um hook ou `renameSession()` do Agent SDK. Um hook que emite `sessionTitle` pode verificar esse campo primeiro para evitar sobrescrever um título personalizado existente |

1240 1240 

1241A sessão que você não nomeou ainda pode ter um [título gerado](/docs/pt/sessions#name-your-sessions). Esse título não é um título personalizado e não aparece em `session_title`.1241Uma sessão que você não nomeou ainda pode ter um [título gerado](/docs/pt/sessions#name-your-sessions). Esse título não é um título personalizado e não aparece em `session_title`.

1242 1242 

1243Quando `source` é `"resume"` ou `"fork"` e a transcrição contém pelo menos uma resposta do Claude, hooks SessionStart também recebem os quatro campos abaixo. Seu hook pode usá-los para relatar qual é o custo de retomar uma conversa obsoleta antes da primeira solicitação, por exemplo em um [`systemMessage`](#json-output). Esses campos requerem Claude Code v2.1.251 ou posterior.1243Quando `source` é `"resume"` ou `"fork"` e a transcrição contém pelo menos uma resposta do Claude, os hooks SessionStart também recebem os quatro campos abaixo. Seu hook pode usá-los para informar quanto custa retomar uma conversa antiga antes da primeira requisição, por exemplo em um [`systemMessage`](#json-output). Esses campos exigem o Claude Code v2.1.251 ou posterior.

1244 1244 

1245| Campo | Descrição |1245| Campo | Descrição |

1246| :- | :- |1246| :- | :- |

1247| `seconds_since_last_response` | Segundos de tempo real desde a última resposta na transcrição retomada |1247| `seconds_since_last_response` | Segundos de tempo real desde a última resposta na transcrição retomada |

1248| `context_tokens` | Tokens que a primeira solicitação da sessão retomada reenvia como seu prompt |1248| `context_tokens` | Tokens que a primeira requisição da sessão retomada reenvia como seu prompt |

1249| `prompt_cache_likely_expired` | `true` quando a última resposta é mais antiga que o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) da sessão ou uma compactação posterior substituiu a conversa em cache |1249| `prompt_cache_likely_expired` | `true` quando a última resposta é mais antiga que o [tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) da sessão ou quando uma compactação posterior substituiu a conversa em cache |

1250| `estimated_cache_write_usd` | Custo estimado em dólares americanos de escrever `context_tokens` no cache de prompt no modelo da sessão, excluindo a resposta |1250| `estimated_cache_write_usd` | Custo estimado em dólares americanos de gravar `context_tokens` no cache de prompt no modelo da sessão, excluindo a resposta |

1251 1251 

1252Este exemplo mostra a entrada para uma sessão retomada 90 minutos após sua última resposta:1252Este exemplo mostra a entrada para uma sessão retomada 90 minutos após sua última resposta:

1253 1253 


1267```1267```

1268 1268 

1269<h4 id="sessionstart-decision-control">1269<h4 id="sessionstart-decision-control">

1270 Controle de decisão SessionStart1270 Controle de decisão do SessionStart

1271</h4>1271</h4>

1272 1272 

1273Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto do Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar esses campos específicos do evento:1273O Claude Code adiciona ao contexto do Claude o stdout que ele [trata como texto simples](#exit-code-0). Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar estes campos específicos do evento:

1274 1274 

1275| Campo | Descrição |1275| Campo | Descrição |

1276| :- | :- |1276| :- | :- |

1277| `additionalContext` | String adicionada ao contexto do Claude no início da conversa, antes do primeiro prompt. Veja [Adicionar contexto para Claude](#add-context-for-claude) para como o texto é entregue e o que colocar nele |1277| `additionalContext` | String adicionada ao contexto do Claude no início da conversa, antes do primeiro prompt. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) para saber como o texto é entregue e o que colocar nele |

1278| `initialUserMessage` | String usada como a primeira mensagem do usuário da sessão. Aplica-se em [modo não interativo](/docs/pt/headless) com a flag `-p`, onde se torna o primeiro turno mesmo que nenhum prompt seja fornecido. Se um prompt for fornecido, ele segue como o próximo turno. Ao contrário de `additionalContext`, que se anexa a um turno existente, isso cria o turno |1278| `initialUserMessage` | String usada como a primeira mensagem do usuário da sessão. Aplica-se no [modo não interativo](/docs/pt/headless) com a flag `-p`, onde se torna o primeiro turno mesmo que nenhum prompt seja fornecido. Se um prompt for fornecido, ele vem em seguida como o próximo turno. Diferentemente de `additionalContext`, que se anexa a um turno existente, isso cria o turno |

1279| `sessionTitle` | Define o título da sessão, com o mesmo efeito de `/rename`. Use para nomear sessões automaticamente a partir da pasta de lançamento, branch git ou nome de worktree. Aplica-se quando `source` é `"startup"`, `"resume"` ou `"fork"`; ignorado em `"clear"` e `"compact"` |1279| `sessionTitle` | Define o título da sessão, com o mesmo efeito de `/rename`. Use para nomear sessões automaticamente a partir da pasta de inicialização, do branch do git ou do nome do worktree. Aplica-se quando `source` é `"startup"`, `"resume"` ou `"fork"`; ignorado em `"clear"` e `"compact"` |

1280| `watchPaths` | Array de caminhos absolutos para observar eventos [FileChanged](#filechanged) durante esta sessão |1280| `watchPaths` | Array de caminhos absolutos a observar para eventos [FileChanged](#filechanged) durante esta sessão |

1281| `reloadSkills` | Booleano. Quando `true`, Claude Code verifica novamente os diretórios de [skill](/docs/pt/skills) e comando após os hooks SessionStart serem concluídos, para que skills que o hook instalou estejam disponíveis na mesma sessão, começando com o primeiro prompt |1281| `reloadSkills` | Booleano. Quando `true`, o Claude Code examina novamente os diretórios de [skills](/docs/pt/skills) e comandos após a conclusão dos hooks SessionStart, para que as skills instaladas pelo hook estejam disponíveis na mesma sessão, a partir do primeiro prompt |

1282 1282 

1283```json theme={null}1283```json theme={null}

1284{1284{


1290}1290}

1291```1291```

1292 1292 

1293Como stdout simples já chega ao Claude para este evento, um hook que apenas carrega contexto pode imprimir para stdout diretamente sem construir JSON. Use a forma JSON quando você precisa combinar contexto com outros campos como `sessionTitle`.1293Como o stdout simples já chega ao Claude para este evento, um hook que apenas carrega contexto pode imprimir diretamente no stdout sem montar JSON. Use o formato JSON quando precisar combinar contexto com outros campos, como `sessionTitle`.

1294 1294 

1295Use `reloadSkills` quando um hook SessionStart instala ou atualiza skills. A descoberta de skills normalmente é executada antes dos hooks SessionStart terminarem, então arquivos que o hook escreve em `~/.claude/skills/` ou `.claude/skills/` caso contrário só apareceriam na próxima sessão. Este exemplo sincroniza um repositório de skills compartilhado e solicita a nova verificação:1295Use `reloadSkills` quando um hook SessionStart instala ou atualiza skills. A descoberta de skills normalmente é executada antes de os hooks SessionStart terminarem, então os arquivos que o hook grava em `~/.claude/skills/` ou `.claude/skills/` só apareceriam, de outra forma, na próxima sessão. Este exemplo sincroniza um repositório de skills compartilhado e solicita a nova varredura:

1296 1296 

1297```bash theme={null}1297```bash theme={null}

1298#!/bin/bash1298#!/bin/bash


1303echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1303echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1304```1304```

1305 1305 

1306A URL do repositório é um espaço reservado; substitua-a pelo seu próprio repositório de skills. Com o espaço reservado, o clone falha e imprime uma mensagem `fatal:` para stderr. Stderr de um hook SessionStart que sai com 0 é apenas informativo, então a solicitação `reloadSkills` ainda se aplica.1306A URL do repositório é um placeholder; substitua-a pelo seu próprio repositório de skills. Com o placeholder, o clone falha e imprime uma mensagem `fatal:` no stderr. O stderr de um hook SessionStart que sai com 0 é apenas informativo, então a solicitação `reloadSkills` ainda se aplica.

1307 1307 

1308<h4 id="persist-environment-variables">1308<h4 id="persist-environment-variables">

1309 Persistir variáveis de ambiente1309 Persistir variáveis de ambiente

1310</h4>1310</h4>

1311 1311 

1312Hooks SessionStart têm acesso à variável de ambiente `CLAUDE_ENV_FILE`, que fornece um caminho de arquivo onde você pode persistir variáveis de ambiente para comandos Bash subsequentes.1312Os hooks SessionStart têm acesso à variável de ambiente `CLAUDE_ENV_FILE`, que fornece um caminho de arquivo onde você pode persistir variáveis de ambiente para comandos Bash subsequentes.

1313 1313 

1314Para definir variáveis de ambiente individuais, escreva instruções `export` para `CLAUDE_ENV_FILE`. Use append (`>>`) para preservar variáveis definidas por outros hooks:1314Para definir variáveis de ambiente individuais, grave instruções `export` em `CLAUDE_ENV_FILE`. Use anexação (`>>`) para preservar variáveis definidas por outros hooks:

1315 1315 

1316```bash theme={null}1316```bash theme={null}

1317#!/bin/bash1317#!/bin/bash


1325exit 01325exit 0

1326```1326```

1327 1327 

1328Para capturar todas as mudanças de ambiente de comandos de configuração, compare as variáveis exportadas antes e depois:1328Para capturar todas as alterações de ambiente feitas por comandos de configuração, compare as variáveis exportadas antes e depois:

1329 1329 

1330```bash theme={null}1330```bash theme={null}

1331#!/bin/bash1331#!/bin/bash


1345```1345```

1346 1346 

1347<Note>1347<Note>

1348 `CLAUDE_ENV_FILE` está disponível para hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Outros tipos de hook não têm acesso a esta variável.1348 `CLAUDE_ENV_FILE` está disponível para hooks SessionStart, [Setup](#setup), [CwdChanged](#cwdchanged) e [FileChanged](#filechanged). Outros tipos de hook não têm acesso a essa variável.

1349</Note>1349</Note>

1350 1350 

1351<h3 id="setup">1351<h3 id="setup">

1352 Setup1352 Setup

1353</h3>1353</h3>

1354 1354 

1355Dispara apenas quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` em [modo não interativo](/docs/pt/headless) com a flag `-p`. Não dispara no startup normal. Use-o para instalação de dependência única ou limpeza agendada que você dispara explicitamente de CI ou scripts, separado do startup normal da sessão. Para inicialização por sessão, use [SessionStart](#sessionstart) em vez disso.1355É disparado somente quando você inicia o Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no [modo não interativo](/docs/pt/headless) com a flag `-p`. Ele não é disparado na inicialização normal. Use-o para instalação única de dependências ou limpeza agendada que você aciona explicitamente a partir de CI ou scripts, separadamente da inicialização normal da sessão. Para inicialização por sessão, use o [SessionStart](#sessionstart).

1356 1356 

1357O valor do matcher corresponde à flag CLI que disparou o hook:1357O valor do matcher corresponde à flag da CLI que acionou o hook:

1358 1358 

1359| Matcher | Quando é disparado |1359| Matcher | Quando é disparado |

1360| :- | :- |1360| :- | :- |

1361| `init` | `claude --init-only` ou `claude -p --init` |1361| `init` | `claude --init-only` ou `claude -p --init` |

1362| `maintenance` | `claude -p --maintenance` |1362| `maintenance` | `claude -p --maintenance` |

1363 1363 

1364Quando você executa `claude --init-only`, Claude Code executa hooks Setup e hooks `SessionStart` com o matcher `startup`, depois sai sem iniciar uma conversa.1364Quando você executa `claude --init-only`, o Claude Code executa os hooks Setup e os hooks `SessionStart` com o matcher `startup` e, em seguida, sai sem iniciar uma conversa.

1365 1365 

1366Quando você inicia ou continua uma conversa com `-p`, você também precisa fornecer um prompt, como um argumento ou canalizado em stdin. Você pode pular o prompt quando um hook `SessionStart` fornece [`initialUserMessage`](#sessionstart-decision-control) ou quando você retoma uma sessão com uma [chamada de ferramenta adiada](#defer-a-tool-call-for-later).1366Quando você inicia ou continua uma conversa com `-p`, também precisa fornecer um prompt, como argumento ou via pipe no stdin. Você pode omitir o prompt quando um hook `SessionStart` fornece [`initialUserMessage`](#sessionstart-decision-control) ou quando você retoma uma sessão com uma [chamada de ferramenta adiada](#defer-a-tool-call-for-later).

1367 1367 

1368No sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, comece com `claude --debug-file <path> --init-only`, substituindo `<path>` por um local de arquivo de log, e verifique o log para as entradas de hook Setup e SessionStart.1368Em caso de sucesso, `--init-only` não imprime nada no terminal. Para confirmar que os hooks foram executados, inicie com `claude --debug-file <path> --init-only`, substituindo `<path>` por um local de arquivo de log, e verifique no log as entradas dos hooks Setup e SessionStart.

1369 1369 

1370Como Setup não dispara em cada lançamento, um plugin que precisa de uma dependência instalada não pode contar apenas com Setup. O padrão prático é verificar a dependência no primeiro uso e instalar se ausente, por exemplo um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se ausente. Veja o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) para onde armazenar dependências instaladas. Se você distribuir seu plugin através de um marketplace, você pode não precisar deste padrão: Claude Code [instala automaticamente dependências de pacote Node.js elegíveis](/docs/pt/plugins/loading#node-js-package-dependencies) quando armazena em cache o plugin.1370Como o Setup não é disparado a cada inicialização, um plugin que precisa de uma dependência instalada não pode depender apenas do Setup. O padrão prático é verificar a dependência no primeiro uso e instalá-la se estiver ausente, por exemplo um hook ou skill que testa `${CLAUDE_PLUGIN_DATA}/node_modules` e executa `npm install` se não existir. Consulte o [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) para saber onde armazenar dependências instaladas. Se você distribui seu plugin por meio de um marketplace, talvez não precise desse padrão: o Claude Code [instala automaticamente as dependências de pacotes Node.js elegíveis](/docs/pt/plugins/loading#node-js-package-dependencies) ao armazenar o plugin em cache.

1371 1371 

1372<h4 id="setup-input">1372<h4 id="setup-input">

1373 Entrada Setup1373 Entrada do Setup

1374</h4>1374</h4>

1375 1375 

1376Além dos [campos de entrada comuns](#common-input-fields), hooks Setup recebem um campo `trigger` definido como `"init"` ou `"maintenance"`:1376Além dos [campos de entrada comuns](#common-input-fields), os hooks Setup recebem um campo `trigger` definido como `"init"` ou `"maintenance"`:

1377 1377 

1378```json theme={null}1378```json theme={null}

1379{1379{


1386```1386```

1387 1387 

1388<h4 id="setup-decision-control">1388<h4 id="setup-decision-control">

1389 Controle de decisão Setup1389 Controle de decisão do Setup

1390</h4>1390</h4>

1391 1391 

1392Hooks Setup não podem bloquear; a execução continua em qualquer código de saída. Em cada código de saída, Claude Code descarta [campos de saída JSON](#json-output) de um hook Setup, como `systemMessage`, `continue` e `hookSpecificOutput.additionalContext`. Com `-p`, stdout, stderr e código de saída de um hook Setup aparecem na saída da execução apenas como [eventos `hook_response`](/docs/pt/headless#read-session-metadata) quando você inicia com `--output-format stream-json --verbose`.1392Os hooks Setup não podem bloquear; a execução continua com qualquer código de saída. Em todo código de saída, o Claude Code descarta os [campos de saída JSON](#json-output) de um hook Setup, como `systemMessage`, `continue` e `hookSpecificOutput.additionalContext`. Com `-p`, o stdout, o stderr e o código de saída de um hook Setup aparecem na saída da execução somente como [eventos `hook_response`](/docs/pt/headless#read-session-metadata) quando você inicia com `--output-format stream-json --verbose`.

1393 1393 

1394Hooks Setup têm acesso a `CLAUDE_ENV_FILE`. Variáveis escritas nesse arquivo persistem em comandos Bash subsequentes para a sessão, assim como em [hooks SessionStart](#persist-environment-variables). Apenas hooks `type: "command"` são executados em `Setup`. Um hook `type: "mcp_tool"` em `Setup` é sempre ignorado, conforme descrito em [campos de hook de ferramenta MCP](#mcp-tool-hook-fields).1394Os hooks Setup têm acesso a `CLAUDE_ENV_FILE`. As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes da sessão, assim como nos [hooks SessionStart](#persist-environment-variables). Somente hooks `type: "command"` são executados em `Setup`. Um hook `type: "mcp_tool"` em `Setup` é sempre ignorado, conforme descrito em [Campos de hook de ferramenta MCP](#mcp-tool-hook-fields).

1395 1395 

1396<h3 id="instructionsloaded">1396<h3 id="instructionsloaded">

1397 InstructionsLoaded1397 InstructionsLoaded

1398</h3>1398</h3>

1399 1399 

1400Dispara quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado no contexto. Este evento dispara no início da sessão para arquivos carregados com entusiasmo e novamente mais tarde quando arquivos são carregados preguiçosamente, por exemplo quando Claude acessa um subdiretório que contém um `CLAUDE.md` aninhado ou quando regras condicionais com frontmatter `paths:` correspondem. O hook não suporta bloqueio ou controle de decisão. Ele é executado de forma assíncrona para fins de observabilidade.1400É disparado quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado no contexto. Este evento é disparado no início da sessão para arquivos carregados de forma antecipada e novamente mais tarde quando arquivos são carregados de forma tardia, por exemplo quando o Claude acessa um subdiretório que contém um `CLAUDE.md` aninhado ou quando regras condicionais com frontmatter `paths:` correspondem. O hook não suporta bloqueio nem controle de decisão. Ele é executado de forma assíncrona para fins de observabilidade.

1401 1401 

1402Este evento não dispara quando Claude [lê `AGENTS.md` diretamente](/docs/pt/memory#agents-md) através da configuração **Project instructions**. Ele dispara quando um `CLAUDE.md` importa seu `AGENTS.md`, com `load_reason` definido como `include` como para qualquer outro arquivo importado, e quando `CLAUDE.md` é um symlink para ele, como um carregamento normal de `CLAUDE.md`.1402Este evento não é disparado quando o Claude [lê `AGENTS.md` diretamente](/docs/pt/memory#agents-md) por meio da configuração **Project instructions**. Ele é disparado quando um `CLAUDE.md` importa seu `AGENTS.md`, com `load_reason` definido como `include`, como para qualquer outro arquivo importado, e quando `CLAUDE.md` é um link simbólico para ele, como um carregamento normal de `CLAUDE.md`.

1403 1403 

1404O matcher é executado contra `load_reason`. Por exemplo, use `"matcher": "session_start"` para disparar apenas para arquivos carregados no início da sessão, ou `"matcher": "path_glob_match|nested_traversal"` para disparar apenas para carregamentos preguiçosos.1404O matcher é avaliado contra `load_reason`. Por exemplo, use `"matcher": "session_start"` para disparar somente para arquivos carregados no início da sessão, ou `"matcher": "path_glob_match|nested_traversal"` para disparar somente para carregamentos tardios.

1405 1405 

1406<h4 id="instructionsloaded-input">1406<h4 id="instructionsloaded-input">

1407 Entrada InstructionsLoaded1407 Entrada do InstructionsLoaded

1408</h4>1408</h4>

1409 1409 

1410Além dos [campos de entrada comuns](#common-input-fields), hooks InstructionsLoaded recebem esses campos:1410Além dos [campos de entrada comuns](#common-input-fields), os hooks InstructionsLoaded recebem estes campos:

1411 1411 

1412| Campo | Descrição |1412| Campo | Descrição |

1413| :- | :- |1413| :- | :- |

1414| `file_path` | Caminho absoluto para o arquivo de instrução que foi carregado |1414| `file_path` | Caminho absoluto para o arquivo de instruções que foi carregado |

1415| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |1415| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |

1416| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` dispara quando arquivos de instrução são recarregados após um evento de compactação |1416| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` é disparado quando os arquivos de instruções são recarregados após um evento de compactação |

1417| `globs` | Padrões de glob de caminho do frontmatter `paths:` do arquivo, se houver. Presente apenas para carregamentos `path_glob_match` |1417| `globs` | Padrões glob de caminho do frontmatter `paths:` do arquivo, se houver. Presente somente para carregamentos `path_glob_match` |

1418| `trigger_file_path` | Caminho para o arquivo cujo acesso disparou este carregamento, para carregamentos preguiçosos |1418| `trigger_file_path` | Caminho para o arquivo cujo acesso acionou este carregamento, para carregamentos tardios |

1419| `parent_file_path` | Caminho para o arquivo de instrução pai que incluiu este, para carregamentos `include` |1419| `parent_file_path` | Caminho para o arquivo de instruções pai que incluiu este, para carregamentos `include` |

1420 1420 

1421```json theme={null}1421```json theme={null}

1422{1422{


1431```1431```

1432 1432 

1433<h4 id="instructionsloaded-decision-control">1433<h4 id="instructionsloaded-decision-control">

1434 Controle de decisão InstructionsLoaded1434 Controle de decisão do InstructionsLoaded

1435</h4>1435</h4>

1436 1436 

1437Hooks InstructionsLoaded não têm controle de decisão. Eles não podem bloquear ou modificar o carregamento de instruções. Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage` e `continue`. Use este evento para auditoria de log, rastreamento de conformidade ou observabilidade.1437Os hooks InstructionsLoaded não têm controle de decisão. Eles não podem bloquear nem modificar o carregamento de instruções. O Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage` e `continue`. Use este evento para log de auditoria, rastreamento de conformidade ou observabilidade.

1438 1438 

1439<h3 id="userpromptsubmit">1439<h3 id="userpromptsubmit">

1440 UserPromptSubmit1440 UserPromptSubmit

1441</h3>1441</h3>

1442 1442 

1443Executa quando o usuário envia um prompt, antes de Claude processá-lo. Isso permite que você adicione contexto adicional com base no prompt/conversa, valide prompts ou bloqueie certos tipos de prompts.1443É executado quando um prompt é enviado, antes que o Claude o processe. Isso permite

1444que você adicione contexto adicional com base no prompt/conversa, valide prompts ou

1445bloqueie certos tipos de prompts.

1444 1446 

1445Hooks `UserPromptSubmit` têm um tempo limite padrão de 30 segundos para tipos `command`, `http` e `mcp_tool`, mais curto que o padrão de 600 segundos para esses tipos na maioria dos outros eventos. Como este hook é executado antes de cada prompt e bloqueia o processamento do modelo até ser concluído, um hook travado paralisa a sessão. Se seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.1447Os hooks `UserPromptSubmit` não são disparados apenas em prompts que você digita. O Claude Code também os executa quando:

1446 1448 

1447Além de um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background), um hook `UserPromptSubmit` command, HTTP ou MCP tool que atinge seu tempo limite é cancelado e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. A transcrição mostra um aviso nomeando o hook, o tempo limite que disparou e que a saída foi descartada.1449* Uma [tarefa agendada](/docs/pt/scheduled-tasks) é disparada, incluindo uma iteração de `/loop`

1450* Um [subagente em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) reporta de volta à sessão que o iniciou

1451* Uma [mensagem que outra sessão envia](/docs/pt/cross-session-messaging) chega à sua conversa principal

1448 1452 

1449Um hook de callback [Agent SDK](/docs/pt/agent-sdk/hooks) em `UserPromptSubmit` que atinge seu tempo limite bloqueia o prompt com uma mensagem nomeando o hook e o tempo limite, porque um callback lá pode estar agindo como uma porta de política que não deve falhar aberta. A sessão continua. Antes da v2.1.208, um tempo limite de callback naquele evento terminava o turno com um erro de execução.1453Os hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para os tipos `command`, `http` e `mcp_tool`, menor que o padrão de 600 segundos desses tipos na maioria dos outros eventos. Como este hook é executado antes de cada prompt e bloqueia o processamento do modelo até ser concluído, um hook travado paralisa a sessão. Se o seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.

1454 

1455Exceto por um hook de comando que você executa com [`async: true`](#run-hooks-in-the-background), um hook `UserPromptSubmit` de comando, HTTP ou ferramenta MCP que atinge seu timeout é cancelado e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. A transcrição mostra um aviso nomeando o hook, o timeout que foi atingido e que a saída foi descartada.

1456 

1457Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `UserPromptSubmit` que atinge seu timeout bloqueia o prompt com uma mensagem nomeando o hook e o timeout, porque um callback nesse ponto pode estar atuando como uma barreira de política que não deve falhar de forma aberta. A sessão continua. Antes da v2.1.208, um timeout de callback nesse evento encerrava o turno com um erro de execução.

1450 1458 

1451<h4 id="userpromptsubmit-input">1459<h4 id="userpromptsubmit-input">

1452 Entrada UserPromptSubmit1460 Entrada do UserPromptSubmit

1453</h4>1461</h4>

1454 1462 

1455Além dos [campos de entrada comuns](#common-input-fields), hooks UserPromptSubmit recebem o campo `prompt` contendo o texto que o usuário enviou. Conteúdo colado que colapsou para um espaço reservado `[Pasted text #N]` chega expandido no lugar. Em sessões onde Claude Code [marca texto colado para Claude](/docs/pt/terminal-config#how-claude-treats-pasted-text), esse conteúdo expandido fica entre uma linha `<pasted_content id="…">` e uma linha `</pasted_content id="…">`, então leve em conta essas linhas se seu hook analisa o prompt.1463Além dos [campos de entrada comuns](#common-input-fields), os hooks UserPromptSubmit recebem o campo `prompt` contendo o texto enviado. Conteúdo colado que foi recolhido em um espaço reservado `[Pasted text #N]` chega expandido no lugar. Em sessões em que o Claude Code [marca o texto colado para o Claude](/docs/pt/terminal-config#how-claude-treats-pasted-text), esse conteúdo expandido fica entre uma linha `<pasted_content id="…">` e uma linha `</pasted_content id="…">`, então leve essas linhas em conta se o seu hook analisar o prompt.

1456 1464 

1457Hooks UserPromptSubmit também recebem `session_title` quando a sessão tem um título personalizado, com o mesmo significado que o [campo `session_title` de SessionStart](#sessionstart-input).1465Os hooks UserPromptSubmit também recebem `session_title` quando a sessão tem um título personalizado, com o mesmo significado do [campo `session_title` do SessionStart](#sessionstart-input).

1458 1466 

1459```json theme={null}1467```json theme={null}

1460{1468{


1468```1476```

1469 1477 

1470<h4 id="userpromptsubmit-decision-control">1478<h4 id="userpromptsubmit-decision-control">

1471 Controle de decisão UserPromptSubmit1479 Controle de decisão do UserPromptSubmit

1472</h4>1480</h4>

1473 1481 

1474Hooks `UserPromptSubmit` podem controlar se um prompt do usuário é processado e adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.1482Os hooks `UserPromptSubmit` podem controlar se um prompt enviado é processado e adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.

1475 1483 

1476Existem duas maneiras de adicionar contexto à conversa no código de saída 0:1484Há duas formas de adicionar contexto à conversa com código de saída 0:

1477 1485 

1478* **Stdout de texto simples**: Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto do Claude1486* **Stdout de texto simples**: o Claude Code adiciona ao contexto do Claude o stdout que ele [trata como texto simples](#exit-code-0)

1479* **JSON com `additionalContext`**: use o formato JSON abaixo para mais controle. O campo `additionalContext` é adicionado como contexto1487* **JSON com `additionalContext`**: use o formato JSON abaixo para ter mais controle. O campo `additionalContext` é adicionado como contexto

1480 1488 

1481Nenhum canal produz uma entrada de transcrição visível. Stdout simples e o valor `additionalContext` são cada um injetados como um lembrete do sistema que começa com o nome do hook; Claude lê ambos. Para confirmar a entrega, verifique o [log de depuração](#debug-hooks).1489Nenhum dos canais produz uma entrada visível na transcrição. O stdout simples e o valor de `additionalContext` são, cada um, injetados como um lembrete do sistema que começa com o nome do hook; o Claude lê ambos. Para confirmar a entrega, verifique o [log de depuração](#debug-hooks).

1482 1490 

1483Para bloquear um prompt, retorne um objeto JSON com `decision` definido como `"block"`:1491Para bloquear um prompt, retorne um objeto JSON com `decision` definido como `"block"`:

1484 1492 

1485| Campo | Descrição |1493| Campo | Descrição |

1486| :- | :- |1494| :- | :- |

1487| `decision` | `"block"` impede que o prompt seja processado. Omita para permitir que o prompt prossiga |1495| `decision` | `"block"` interrompe o prompt antes que ele chegue ao Claude. Omita para permitir que o prompt prossiga |

1488| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não adicionado ao contexto |1496| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não é adicionado ao contexto |

1489| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt enviado. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1497| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt enviado. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

1490| `sessionTitle` | Define o título da sessão. Use para nomear sessões automaticamente com base no conteúdo do prompt |1498| `sessionTitle` | Define o título da sessão. Use para nomear sessões automaticamente com base no conteúdo do prompt |

1491| `suppressOriginalPrompt` | Se `true` quando o hook bloqueia o prompt, deixa o texto do prompt original fora da mensagem de bloqueio. Veja [O que um prompt bloqueado deixa para trás](#what-a-blocked-prompt-leaves-behind) |1499| `suppressOriginalPrompt` | Se `true` quando o hook bloqueia o prompt, deixa o texto do prompt fora da mensagem de bloqueio. Consulte [O que um prompt bloqueado deixa para trás](#what-a-blocked-prompt-leaves-behind) |

1492 1500 

1493Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: a mensagem de bloqueio mostra o texto stderr ao usuário, e não é adicionada ao contexto.1501Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário, e ele não é adicionado ao contexto.

1494 1502 

1495```json theme={null}1503```json theme={null}

1496{1504{


1509 O que um prompt bloqueado deixa para trás1517 O que um prompt bloqueado deixa para trás

1510</h4>1518</h4>

1511 1519 

1512Um prompt bloqueado nunca chega ao Claude, mas seu texto não é removido em todos os lugares. Por padrão, a mensagem de bloqueio mostrada ao usuário termina com `Original prompt:` seguido pelo texto enviado, e Claude Code escreve essa mensagem no arquivo de transcrição da sessão no disco. Para deixar o texto fora da mensagem, imprima JSON com `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Isso funciona se o hook bloqueia com `decision: "block"` ou ao sair com 2. Um hook de saída 2 que não imprime JSON sempre obtém o texto do prompt em sua mensagem de bloqueio.1520Um prompt bloqueado nunca chega ao Claude, mas seu texto não é removido de todos os lugares. Por padrão, a mensagem de bloqueio mostrada ao usuário termina com `Original prompt:` seguido do texto enviado, e o Claude Code grava essa mensagem no arquivo de transcrição da sessão no disco. Para deixar o texto fora da mensagem, imprima JSON com `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Isso funciona tanto se o hook bloquear com `decision: "block"` quanto saindo com 2. Um hook com saída 2 que não imprime JSON sempre recebe o texto do prompt em sua mensagem de bloqueio.

1513 1521 

1514`suppressOriginalPrompt` muda apenas a mensagem de bloqueio. O texto enviado ainda pode aparecer em arquivos locais como a transcrição da sessão e seu histórico de prompts, então um hook de bloqueio não é uma maneira de manter um segredo fora do disco. Para limitar ou remover esses arquivos, veja [Armazenamento em texto simples](/docs/pt/claude-directory#plaintext-storage) e [Limpar dados locais](/docs/pt/claude-directory#clear-local-data).1522`suppressOriginalPrompt` altera apenas a mensagem de bloqueio. O texto enviado ainda pode aparecer em arquivos locais, como a transcrição da sessão e seu histórico de prompts, então um hook de bloqueio não é uma forma de manter um segredo fora do disco. Para limitar ou remover esses arquivos, consulte [Armazenamento em texto simples](/docs/pt/claude-directory#plaintext-storage) e [Limpar dados locais](/docs/pt/claude-directory#clear-local-data).

1515 1523 

1516<h3 id="userpromptexpansion">1524<h3 id="userpromptexpansion">

1517 UserPromptExpansion1525 UserPromptExpansion

1518</h3>1526</h3>

1519 1527 

1520Executa quando um comando digitado pelo usuário se expande em um prompt antes de chegar ao Claude. Use isso para bloquear comandos específicos de invocação direta, injetar contexto para uma skill particular ou registrar quais comandos os usuários invocam. Por exemplo, um hook correspondente a `deploy` pode bloquear `/deploy` a menos que um arquivo de aprovação esteja presente, ou um hook correspondente a uma skill de revisão pode anexar a lista de verificação de revisão da equipe como `additionalContext`.1528É executado quando um comando digitado pelo usuário se expande em um prompt antes de chegar ao Claude. Use isso para impedir que comandos específicos sejam invocados diretamente, injetar contexto para uma skill específica ou registrar em log quais comandos os usuários invocam. Por exemplo, um hook que corresponde a `deploy` pode bloquear `/deploy` a menos que um arquivo de aprovação esteja presente, ou um hook que corresponde a uma skill de revisão pode anexar a checklist de revisão da equipe como `additionalContext`.

1521 1529 

1522Este evento cobre o caminho que `PreToolUse` não cobre: um hook `PreToolUse` correspondente à ferramenta `Skill` dispara apenas quando Claude chama a ferramenta, mas digitar `/skillname` diretamente ignora `PreToolUse`. `UserPromptExpansion` dispara naquele caminho direto.1530Este evento cobre o caminho que o `PreToolUse` não cobre: um hook `PreToolUse` que corresponde à ferramenta `Skill` é disparado somente quando o Claude chama a ferramenta, mas digitar `/skillname` diretamente contorna o `PreToolUse`. O `UserPromptExpansion` é disparado nesse caminho direto.

1523 1531 

1524Corresponde a `command_name`. Deixe o matcher vazio para disparar em cada comando do tipo prompt.1532Faz a correspondência em `command_name`. Deixe o matcher vazio para disparar em todo comando do tipo prompt.

1525 1533 

1526<h4 id="userpromptexpansion-input">1534<h4 id="userpromptexpansion-input">

1527 Entrada UserPromptExpansion1535 Entrada do UserPromptExpansion

1528</h4>1536</h4>

1529 1537 

1530Além dos [campos de entrada comuns](#common-input-fields), hooks UserPromptExpansion recebem `expansion_type`, `command_name`, `command_args`, `command_source` e a string `prompt` original. O campo `expansion_type` é `slash_command` para skills e comandos personalizados, ou `mcp_prompt` para prompts do servidor MCP.1538Além dos [campos de entrada comuns](#common-input-fields), os hooks UserPromptExpansion recebem `expansion_type`, `command_name`, `command_args`, `command_source` e a string `prompt` original. O campo `expansion_type` é `slash_command` para skills e comandos personalizados, ou `mcp_prompt` para prompts de servidor MCP.

1531 1539 

1532```json theme={null}1540```json theme={null}

1533{1541{


1545```1553```

1546 1554 

1547<h4 id="userpromptexpansion-decision-control">1555<h4 id="userpromptexpansion-decision-control">

1548 Controle de decisão UserPromptExpansion1556 Controle de decisão do UserPromptExpansion

1549</h4>1557</h4>

1550 1558 

1551Hooks `UserPromptExpansion` podem bloquear a expansão ou adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.1559Os hooks `UserPromptExpansion` podem bloquear a expansão ou adicionar contexto. Todos os [campos de saída JSON](#json-output) estão disponíveis.

1552 1560 

1553| Campo | Descrição |1561| Campo | Descrição |

1554| :- | :- |1562| :- | :- |

1555| `decision` | `"block"` impede que o comando se expanda. Omita para permitir que prossiga |1563| `decision` | `"block"` impede que o comando se expanda. Omita para permitir que ele prossiga |

1556| `reason` | Mostrado ao usuário quando `decision` é `"block"` |1564| `reason` | Mostrado ao usuário quando `decision` é `"block"` |

1557| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt expandido. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1565| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt expandido. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

1558 1566 

1559Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: a mensagem de bloqueio mostra o texto stderr ao usuário.1567Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `reason`: a mensagem de bloqueio mostra o texto do stderr ao usuário.

1560 1568 

1561```json theme={null}1569```json theme={null}

1562{1570{


1573 MessageDisplay1581 MessageDisplay

1574</h3>1582</h3>

1575 1583 

1576Executa enquanto uma mensagem do assistente é transmitida para a tela. Claude Code exibe a mensagem em incrementos: cada vez que um lote de linhas recém-concluídas está pronto para renderizar, o hook é executado uma vez com essas linhas e Claude Code renderiza o texto de substituição do hook em seu lugar. Uma mensagem longa produz várias chamadas; uma mensagem curta pode produzir apenas uma.1584É executado enquanto uma mensagem do assistente é transmitida para a tela. O Claude Code exibe a mensagem em incrementos: cada vez que um lote de linhas recém-concluídas está pronto para renderização, o hook é executado uma vez com essas linhas e o Claude Code renderiza o texto de substituição do hook no lugar delas. Uma mensagem longa produz várias chamadas; uma mensagem curta pode produzir apenas uma.

1577 1585 

1578Use MessageDisplay para:1586Use o MessageDisplay para:

1579 1587 

1580* remover markdown para uma exibição mínima1588* remover markdown para uma exibição mínima

1581* transformar o texto que um aplicativo Agent SDK mostra aos seus usuários1589* transformar o texto que uma aplicação do Agent SDK mostra aos seus usuários

1582* redactar chaves de API ou nomes de host internos das respostas do Claude1590* ocultar chaves de API ou hostnames internos das respostas do Claude

1583 1591 

1584Claude Code mantém cada lote até que seu hook retorne, então mantenha o hook rápido. Se o hook falhar ou atingir o tempo limite, Claude Code exibe o texto original. O tempo limite padrão para este evento é 10 segundos; se seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.1592O Claude Code retém cada lote até que seu hook retorne, então mantenha o hook rápido. Se o hook falhar ou atingir o timeout, o Claude Code exibe o texto original. O timeout padrão para este evento é de 10 segundos; se o seu hook precisar de mais tempo, defina o campo `timeout` na entrada do hook.

1585 1593 

1586MessageDisplay é apenas para exibição: o texto de substituição muda apenas o que é renderizado na tela. A transcrição e o que Claude vê mantêm o texto original, então Claude nunca vê a substituição, e o modo detalhado mostra o original. O hook recebe apenas texto de mensagem do assistente, então resultados de ferramentas e o texto que você digita são renderizados inalterados.1594O MessageDisplay serve apenas para exibição: o texto de substituição altera somente o que é renderizado na tela. A transcrição e o que o Claude vê mantêm o texto original, então o Claude nunca vê a substituição, e o modo verbose mostra o original. O hook recebe apenas o texto das mensagens do assistente, então os resultados de ferramentas e o texto que você digita são renderizados sem alteração.

1587 1595 

1588MessageDisplay não suporta matchers e dispara para cada mensagem do assistente que transmite texto; mensagens sem texto, como respostas apenas de chamada de ferramenta, não o disparam.1596O MessageDisplay não suporta matchers e é disparado para toda mensagem do assistente que transmite texto; mensagens sem texto, como respostas que contêm apenas chamadas de ferramenta, não o acionam.

1589 1597 

1590Em execuções não interativas, incluindo consultas Agent SDK e `claude -p`, MessageDisplay é executado uma vez por mensagem do assistente em vez de uma vez por lote de linhas. A chamada única chega após a mensagem ser concluída e carrega o texto completo da mensagem: `index` é `0`, `final` é `true` e `delta` contém a mensagem inteira. Um hook que coleta o texto `delta` para cada mensagem recebe o mesmo texto total em ambos os modos.1598Em execuções não interativas, incluindo consultas do Agent SDK e `claude -p`, o MessageDisplay é executado uma vez por mensagem do assistente em vez de uma vez por lote de linhas. A chamada única chega depois que a mensagem é concluída e carrega o texto completo da mensagem: `index` é `0`, `final` é `true` e `delta` contém a mensagem inteira. Um hook que coleta o texto de `delta` de cada mensagem recebe o mesmo texto total em ambos os modos.

1591 1599 

1592<h4 id="messagedisplay-input">1600<h4 id="messagedisplay-input">

1593 Entrada MessageDisplay1601 Entrada do MessageDisplay

1594</h4>1602</h4>

1595 1603 

1596Além dos [campos de entrada comuns](#common-input-fields), hooks MessageDisplay recebem identificadores para o turno e mensagem, a posição desta chamada dentro da mensagem e o novo texto em `delta`. Os limites de lote dependem de como o texto é transmitido, então use `index` e `final` para rastrear o progresso através de uma mensagem em vez de esperar que as linhas sejam agrupadas de uma forma particular.1604Além dos [campos de entrada comuns](#common-input-fields), os hooks MessageDisplay recebem identificadores do turno e da mensagem, a posição desta chamada dentro da mensagem e o novo texto em `delta`. Os limites dos lotes dependem de como o texto é transmitido, então use `index` e `final` para acompanhar o progresso de uma mensagem em vez de esperar que as linhas sejam agrupadas de uma forma específica.

1597 1605 

1598| Campo | Descrição |1606| Campo | Descrição |

1599| :- | :- |1607| :- | :- |

1600| `turn_id` | UUID do turno atual |1608| `turn_id` | UUID do turno atual |

1601| `message_id` | UUID da mensagem do assistente sendo exibida. Estável em cada lote da mesma mensagem. Este não é o ID `msg_…` da API, então não pode ser correlacionado com IDs de mensagem de transcrição |1609| `message_id` | UUID da mensagem do assistente sendo exibida. Estável em todos os lotes da mesma mensagem. Este não é o id `msg_…` da API, então não pode ser correlacionado com os ids de mensagens da transcrição |

1602| `index` | Índice baseado em zero deste lote dentro da mensagem |1610| `index` | Índice, começando em zero, deste lote dentro da mensagem |

1603| `final` | `true` no último lote da mensagem. Cada mensagem tem exatamente um lote final |1611| `final` | `true` no último lote da mensagem. Cada mensagem tem exatamente um lote final |

1604| `delta` | As linhas recém-concluídas desde o lote anterior, incluindo quebras de linha finais. Sempre linhas inteiras, exceto o lote final que pode terminar no meio da linha. Em execuções interativas, o delta do lote final está vazio quando a mensagem termina em uma quebra de linha, então trate `final`, não um delta não vazio, como o sinal de fim de mensagem. Em execuções Agent SDK e `claude -p`, a chamada única carrega a mensagem inteira |1612| `delta` | As linhas recém-concluídas desde o lote anterior, incluindo as quebras de linha finais. Sempre linhas inteiras, exceto o lote final, que pode terminar no meio de uma linha. Em execuções interativas, o delta do lote final fica vazio quando a mensagem termina com uma quebra de linha, então trate `final`, e não um delta não vazio, como o sinal de fim da mensagem. Em execuções do Agent SDK e de `claude -p`, a chamada única carrega a mensagem inteira |

1605 1613 

1606```json theme={null}1614```json theme={null}

1607{1615{


1618```1626```

1619 1627 

1620<h4 id="messagedisplay-output">1628<h4 id="messagedisplay-output">

1621 Saída MessageDisplay1629 Saída do MessageDisplay

1622</h4>1630</h4>

1623 1631 

1624Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, hooks MessageDisplay podem retornar `displayContent` para substituir o delta na tela:1632Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks MessageDisplay podem retornar `displayContent` para substituir o delta na tela:

1625 1633 

1626| Campo | Descrição |1634| Campo | Descrição |

1627| :- | :- |1635| :- | :- |

1628| `displayContent` | Texto exibido no lugar do delta. Omita para exibir o original |1636| `displayContent` | Texto exibido no lugar do delta. Omita-o para exibir o original |

1629 1637 

1630Hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem ou mudar o que é armazenado na transcrição ou enviado ao Claude. Claude Code age em `displayContent` de sua saída JSON e descarta `systemMessage` e `continue`.1638Os hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem nem alterar o que é armazenado na transcrição ou enviado ao Claude. O Claude Code age com base em `displayContent` da saída JSON deles e descarta `systemMessage` e `continue`.

1631 1639 

1632Este exemplo remove formatação markdown das respostas do Claude para uma exibição de texto simples. O script lê cada lote de stdin, remove marcadores em negrito e backticks de código inline de `delta` e retorna o resultado como `displayContent`.1640Este exemplo remove a formatação markdown das respostas do Claude para uma exibição em texto simples. O script lê cada lote do stdin, remove os marcadores de negrito e os acentos graves de código inline de `delta` e retorna o resultado como `displayContent`.

1633 1641 

1634<Tabs>1642<Tabs>

1635 <Tab title="macOS/Linux">1643 <Tab title="macOS/Linux">

1636 Registre um hook de comando para o evento em seu arquivo de configurações:1644 Registre um hook de comando para o evento no seu arquivo de configurações:

1637 1645 

1638 ```json theme={null}1646 ```json theme={null}

1639 {1647 {


1653 }1661 }

1654 ```1662 ```

1655 1663 

1656 Salve este script em `.claude/hooks/plain-display.sh` em seu projeto e torne-o executável com `chmod +x`:1664 Salve este script em `.claude/hooks/plain-display.sh` no seu projeto e torne-o executável com `chmod +x`:

1657 1665 

1658 ```bash theme={null}1666 ```bash theme={null}

1659 #!/bin/bash1667 #!/bin/bash


1662 </Tab>1670 </Tab>

1663 1671 

1664 <Tab title="Windows (PowerShell)">1672 <Tab title="Windows (PowerShell)">

1665 Registre um hook de comando que executa o script através do PowerShell:1673 Registre um hook de comando que executa o script por meio do PowerShell:

1666 1674 

1667 ```json theme={null}1675 ```json theme={null}

1668 {1676 {


1688 }1696 }

1689 ```1697 ```

1690 1698 

1691 A flag `-NoProfile` pula o carregamento de seu perfil do PowerShell para que o hook comece rápido, e `-ExecutionPolicy Bypass` permite que o PowerShell execute o arquivo de script local.1699 A flag `-NoProfile` pula o carregamento do seu perfil do PowerShell para que o hook inicie rapidamente, e `-ExecutionPolicy Bypass` permite que o PowerShell execute o arquivo de script local.

1692 1700 

1693 Salve este script em `.claude/hooks/plain-display.ps1` em seu projeto:1701 Salve este script em `.claude/hooks/plain-display.ps1` no seu projeto:

1694 1702 

1695 ```powershell theme={null}1703 ```powershell theme={null}

1696 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1704 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1705 </Tab>1713 </Tab>

1706</Tabs>1714</Tabs>

1707 1715 

1708Lotes sem markdown passam inalterados. Se o script falhar, por exemplo porque `jq` está faltando, Claude Code exibe o texto original e nota a falha apenas em [saída de depuração](#debug-hooks), não na sessão.1716Lotes sem markdown passam sem alteração. Se o script falhar, por exemplo porque o `jq` não está instalado, o Claude Code exibe o texto original e registra a falha somente na [saída de depuração](#debug-hooks), não na sessão.

1709 1717 

1710<h3 id="pretooluse">1718<h3 id="pretooluse">

1711 PreToolUse1719 PreToolUse

1712</h3>1720</h3>

1713 1721 

1714Executa após Claude criar parâmetros de ferramenta e antes de processar a chamada de ferramenta. Corresponde a qualquer nome de ferramenta exceto `EndConversation`: ferramentas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e qualquer [nome de ferramenta MCP](#match-mcp-tools).1722É executado depois que o Claude cria os parâmetros da ferramenta e antes de processar a chamada de ferramenta. Faz a correspondência com qualquer nome de ferramenta exceto `EndConversation`: ferramentas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` e `ExitPlanMode`, e quaisquer [nomes de ferramentas MCP](#match-mcp-tools).

1715 1723 

1716Para executar um hook quando um arquivo específico muda no disco, seja qual for o que o escreveu, use [FileChanged](#filechanged) em vez de corresponder a ferramentas de edição de arquivo por nome. Ao contrário de PreToolUse, Claude Code executa hooks FileChanged após a mudança, e eles não têm controle de decisão, então não podem bloquear a escrita.1724Para executar um hook quando um arquivo específico muda no disco, independentemente de quem o gravou, use o [FileChanged](#filechanged) em vez de fazer a correspondência de ferramentas de edição de arquivos pelo nome. Diferentemente do PreToolUse, o Claude Code executa os hooks FileChanged após a alteração, e eles não têm controle de decisão, então não podem bloquear a gravação.

1717 1725 

1718<Warning>1726<Warning>

1719 PreToolUse é executado apenas quando Claude chama uma ferramenta. Arquivos que você [referencia com `@` em seu prompt](/docs/pt/common-workflows#reference-files-and-directories) são adicionados sem nenhuma chamada de ferramenta: Claude Code insere seu conteúdo ao construir o prompt, então nenhum hook PreToolUse dispara para eles, incluindo hooks correspondentes a `Read`. Para bloquear caminhos específicos de referências `@`, use uma [regra de negação `Read`](/docs/pt/permissions#read-and-edit) em vez disso.1727 O PreToolUse é executado somente quando o Claude chama uma ferramenta. Os arquivos que você [referencia com `@` no seu prompt](/docs/pt/common-workflows#reference-files-and-directories) são adicionados sem nenhuma chamada de ferramenta: o Claude Code insere o conteúdo deles ao montar o prompt, então nenhum hook PreToolUse é disparado para eles, incluindo hooks que correspondem a `Read`. Para impedir caminhos específicos em referências `@`, use uma [regra de negação de `Read`](/docs/pt/permissions#read-and-edit).

1720 1728 

1721 PreToolUse também não dispara para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).1729 O PreToolUse também não é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).

1722</Warning>1730</Warning>

1723 1731 

1724Use [controle de decisão PreToolUse](#pretooluse-decision-control) para permitir, negar, perguntar ou adiar a chamada de ferramenta.1732Use o [controle de decisão do PreToolUse](#pretooluse-decision-control) para permitir, negar, perguntar ou adiar a chamada de ferramenta.

1725 1733 

1726Um hook de callback [Agent SDK](/docs/pt/agent-sdk/hooks) em `PreToolUse` que excede seu tempo limite bloqueia a chamada de ferramenta, e Claude recebe um resultado de erro nomeando o tempo limite. Uma negação explícita retornada por outro hook ainda tem precedência.1734Um [hook de callback do Agent SDK](/docs/pt/agent-sdk/hooks) em `PreToolUse` que excede seu timeout bloqueia a chamada de ferramenta, e o Claude recebe um resultado de erro nomeando o timeout. Uma negação explícita retornada por outro hook ainda tem precedência.

1727 1735 

1728<h4 id="pretooluse-input">1736<h4 id="pretooluse-input">

1729 Entrada PreToolUse1737 Entrada do PreToolUse

1730</h4>1738</h4>

1731 1739 

1732Além dos [campos de entrada comuns](#common-input-fields), hooks PreToolUse recebem `tool_name`, `tool_input` e `tool_use_id`.1740Além dos [campos de entrada comuns](#common-input-fields), os hooks PreToolUse recebem `tool_name`, `tool_input` e `tool_use_id`.

1733 1741 

1734Para uma [ferramenta MCP](#match-mcp-tools), a entrada também carrega `mcp_server`, um objeto com o `name` do servidor e uma `source` que diz de onde veio a definição do servidor. Os valores `source` incluem `plugin`, `sdk` e escopos de configuração como `user` e `project`. [`McpServerProvenance`](/docs/pt/agent-sdk/typescript#mcpserverprovenance) na referência Agent SDK lista todos eles e diz como tratar um que você não reconhece. Baseie decisões de confiança em `source` em vez de em `name` ou no prefixo de nome de ferramenta `mcp__<server>__`. O campo `mcp_server` requer Claude Code v2.1.274 ou posterior.1742Para uma [ferramenta MCP](#match-mcp-tools), a entrada também carrega `mcp_server`, um objeto com o `name` do servidor e um `source` que informa de onde veio a definição do servidor. Os valores de `source` incluem `plugin`, `sdk` e escopos de configuração como `user` e `project`. [`McpServerProvenance`](/docs/pt/agent-sdk/typescript#mcpserverprovenance) na referência do Agent SDK lista todos eles e explica como tratar um que você não reconhece. Baseie as decisões de confiança em `source`, e não em `name` ou no prefixo de nome de ferramenta `mcp__<server>__`. O campo `mcp_server` exige o Claude Code v2.1.274 ou posterior.

1735 1743 

1736Para as ferramentas de arquivo `Write`, `Edit` e `Read`, `tool_input.file_path` é sempre absoluto:1744Para as ferramentas de arquivo `Write`, `Edit` e `Read`, `tool_input.file_path` é sempre absoluto:

1737 1745 

1738* Claude Code expande `~` e caminhos relativos antes dos hooks serem executados, então um hook que corresponde a caminhos não pode ser contornado via `~` ou uma ortografia relativa do mesmo caminho1746* O Claude Code expande `~` e caminhos relativos antes de os hooks serem executados, então um hook que faz correspondência em caminhos não pode ser contornado via `~` ou uma forma relativa de escrever o mesmo caminho

1739* No Windows, o caminho chega com separadores de barra invertida, mesmo quando seu hook é executado sob Git Bash onde `$PWD` parece `/c/project`1747* No Windows, o caminho chega com separadores de barra invertida, mesmo quando seu hook é executado no Git Bash, onde `$PWD` se parece com `/c/project`

1740* Uma comparação escrita com barras para frente, como uma verificação `/src/`, nunca corresponde a um caminho de barra invertida, e a chamada de ferramenta prossegue como se o hook não tivesse nada a bloquear1748* Uma comparação escrita com barras normais, como uma verificação de `/src/`, nunca corresponde a um caminho com barras invertidas, e a chamada de ferramenta prossegue como se o hook não tivesse nada a bloquear

1741* Normalize separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` em Bash, ou `file_path.replace("\\", "/")` em Python, depois corresponda a um segmento de caminho como `/src/` em vez de ancorar com `^`, já que o caminho é absoluto1749* Normalize os separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` no Bash, ou `file_path.replace("\\", "/")` no Python, e então faça a correspondência de um segmento de caminho como `/src/` em vez de ancorar com `^`, já que o caminho é absoluto

1742 1750 

1743Uma chamada `Write` no Windows entrega:1751Uma chamada `Write` no Windows entrega:

1744 1752 


1754}1762}

1755```1763```

1756 1764 

1757Os campos `tool_input` dependem da ferramenta:1765Os campos de `tool_input` dependem da ferramenta:

1758 1766 

1759<a id="bash" />1767<a id="bash" />

1760 1768 


1766 1774 

1767| Campo | Tipo | Exemplo | Descrição |1775| Campo | Tipo | Exemplo | Descrição |

1768| :- | :- | :- | :- |1776| :- | :- | :- | :- |

1769| `command` | string | `"npm test"` | O comando de shell a executar |1777| `command` | string | `"npm test"` | O comando de shell a ser executado |

1770| `description` | string | `"Run test suite"` | Descrição opcional do que o comando faz |1778| `description` | string | `"Run test suite"` | Descrição opcional do que o comando faz |

1771| `timeout` | number | `120000` | Tempo limite opcional em milissegundos. Valores acima do [máximo](/docs/pt/tools-reference#bash-tool-behavior) são reduzidos ao máximo em vez de rejeitados |1779| `timeout` | number | `120000` | Timeout opcional em milissegundos. Valores acima do [máximo](/docs/pt/tools-reference#bash-tool-behavior) são reduzidos ao máximo em vez de rejeitados |

1772| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |1780| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1773 1781 

1774Quando um comando Bash muda arquivos em um repositório Git, Claude Code pode registrar o que mudou. Ele registra as mudanças em cada modo de permissão quando a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled) ativa o registro; a entrada dessa configuração diz quais arquivos podem defini-la. Caso contrário, ele as registra apenas em modo automático e modo `bypassPermissions`, e apenas quando Claude Code direciona Claude a editar arquivos através de Bash. Defina `bashEditDiffEnabled` como `false` para desativar o registro. Comandos de fundo e comandos somente leitura não carregam diff.1782Quando um comando Bash altera arquivos em um repositório Git, o Claude Code pode registrar o que mudou. Ele registra as alterações em todos os modos de permissão quando a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled) ativa o registro; a entrada dessa configuração informa quais arquivos podem defini-la. Caso contrário, ele as registra somente no modo auto e no modo `bypassPermissions`, e somente quando o Claude Code orienta o Claude a editar arquivos por meio do Bash. Defina `bashEditDiffEnabled` como `false` para desativar o registro. Comandos em segundo plano e comandos somente leitura não carregam diff.

1775 1783 

1776Seu hook [PostToolUse](#posttooluse) então recebe os arquivos alterados em `tool_response.bashEditDiff`. A lista cobre o que mudou sob o repositório enquanto o comando era executado. Arquivos que Git ignora e arquivos em submódulos não são listados. Requer Claude Code v2.1.269 ou posterior.1784Seu [hook PostToolUse](#posttooluse) então recebe os arquivos alterados em `tool_response.bashEditDiff`. A lista cobre o que mudou no repositório enquanto o comando era executado. Arquivos que o Git ignora e arquivos em submódulos não são listados. Exige o Claude Code v2.1.269 ou posterior.

1777 1785 

1778<Note>1786<Note>

1779 A lista é melhor esforço e em beta público. Claude Code pode perder uma mudança, incluir um arquivo que outro processo mudou ao mesmo tempo, ou parar em seus limites de tamanho. A forma do campo pode mudar. Use a lista para encontrar o que revisar, não para impor uma política.1787 A lista é de melhor esforço e está em beta público. O Claude Code pode deixar de detectar uma alteração, incluir um arquivo que outro processo alterou ao mesmo tempo ou parar em seus limites de tamanho. O formato do campo pode mudar. Use a lista para encontrar o que revisar, não para impor uma política.

1780</Note>1788</Note>

1781 1789 

1782`changedFiles` e `files` listam o que o comando mudou; os campos restantes dizem como completo e confiável é essa lista.1790`changedFiles` e `files` listam o que o comando alterou; os campos restantes informam quão completa e quão confiável é essa lista.

1783 1791 

1784| Campo | Tipo | Exemplo | Descrição |1792| Campo | Tipo | Exemplo | Descrição |

1785| :- | :- | :- | :- |1793| :- | :- | :- | :- |

1786| `changedFiles` | array | `["/path/to/src/app.ts"]` | Caminhos absolutos dos arquivos que o comando mudou, no máximo 200. Presente sempre que `files` contém um diff ou `moreFiles` está acima de zero |1794| `changedFiles` | array | `["/path/to/src/app.ts"]` | Caminhos absolutos dos arquivos que o comando alterou, no máximo 200. Presente sempre que `files` contém um diff ou `moreFiles` é maior que zero |

1787| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de até 5 arquivos alterados, para exibição. `created` ou `deleted` é `true` para um arquivo que o comando adicionou ou removeu |1795| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de até 5 arquivos alterados, para exibição. `created` ou `deleted` é `true` para um arquivo que o comando adicionou ou removeu |

1788| `moreFiles` | number | `2` | Contagem de arquivos alterados sem diff em `files` |1796| `moreFiles` | number | `2` | Contagem de arquivos alterados sem diff em `files` |

1789| `unavailable` | boolean | `true` | Definido quando o diff está incompleto ou não pôde ser obtido |1797| `unavailable` | boolean | `true` | Definido quando o diff está incompleto ou não pôde ser obtido |

1790| `skipped` | boolean | `true` | Definido para um comando Git que move a árvore de trabalho, como `git checkout` ou `git stash`, então Claude Code não obtém diff |1798| `skipped` | boolean | `true` | Definido para um comando Git que move a árvore de trabalho, como `git checkout` ou `git stash`, de modo que o Claude Code não obtém diff |

1791| `shared` | boolean | `true` | Definido quando outra chamada de ferramenta Bash, como a de um subagente, foi executada no mesmo repositório ao mesmo tempo, então algumas mudanças listadas podem ser daquele comando |1799| `shared` | boolean | `true` | Definido quando outra chamada da ferramenta Bash, como a de um subagente, foi executada no mesmo repositório ao mesmo tempo, de modo que algumas alterações listadas podem ser desse comando |

1792 1800 

1793<a id="powershell" />1801<a id="powershell" />

1794 1802 


1796 PowerShell1804 PowerShell

1797</h5>1805</h5>

1798 1806 

1799Executa comandos do PowerShell. Veja a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) para disponibilidade por plataforma.1807Executa comandos do PowerShell. Consulte a [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool) para ver a disponibilidade por plataforma.

1800 1808 

1801Os campos correspondem à ferramenta Bash, com a string de comando em `command`:1809Os campos correspondem aos da ferramenta Bash, com a string do comando em `command`:

1802 1810 

1803| Campo | Tipo | Exemplo | Descrição |1811| Campo | Tipo | Exemplo | Descrição |

1804| :- | :- | :- | :- |1812| :- | :- | :- | :- |

1805| `command` | string | `"Get-ChildItem -Recurse"` | O comando do PowerShell a executar |1813| `command` | string | `"Get-ChildItem -Recurse"` | O comando do PowerShell a ser executado |

1806| `description` | string | `"List files recursively"` | Descrição opcional do que o comando faz |1814| `description` | string | `"List files recursively"` | Descrição opcional do que o comando faz |

1807| `timeout` | number | `120000` | Tempo limite opcional em milissegundos |1815| `timeout` | number | `120000` | Timeout opcional em milissegundos |

1808| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |1816| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1809 1817 

1810Corresponda a `Bash|PowerShell` em hooks que inspecionam comandos de shell, para que cubram ambas as ferramentas:1818Use `Bash|PowerShell` como matcher em hooks que inspecionam comandos de shell, para que cubram ambas as ferramentas:

1811 1819 

1812* No Windows, onde quer que a ferramenta PowerShell esteja habilitada, Claude trata PowerShell como o shell primário e roteia comandos de shell através dele.1820* No Windows, onde quer que a ferramenta PowerShell esteja habilitada, o Claude trata o PowerShell como o shell principal e encaminha os comandos de shell por meio dele.

1813* No Windows sem Git Bash, a ferramenta é habilitada automaticamente e Claude Code não registra a ferramenta Bash.1821* No Windows sem Git Bash, a ferramenta é habilitada automaticamente e o Claude Code não registra a ferramenta Bash.

1814* Um hook que corresponde apenas a `Bash` nunca dispara lá.1822* Um hook que corresponde apenas a `Bash` nunca é disparado nesse caso.

1815 1823 

1816<h5 id="write">1824<h5 id="write">

1817 Write1825 Write


1821 1829 

1822| Campo | Tipo | Exemplo | Descrição |1830| Campo | Tipo | Exemplo | Descrição |

1823| :- | :- | :- | :- |1831| :- | :- | :- | :- |

1824| `file_path` | string | `"/path/to/file.txt"` | Caminho absoluto para o arquivo a escrever |1832| `file_path` | string | `"/path/to/file.txt"` | Caminho absoluto para o arquivo a ser gravado |

1825| `content` | string | `"file content"` | Conteúdo a escrever no arquivo |1833| `content` | string | `"file content"` | Conteúdo a ser gravado no arquivo |

1826 1834 

1827<h5 id="edit">1835<h5 id="edit">

1828 Edit1836 Edit


1832 1840 

1833| Campo | Tipo | Exemplo | Descrição |1841| Campo | Tipo | Exemplo | Descrição |

1834| :- | :- | :- | :- |1842| :- | :- | :- | :- |

1835| `file_path` | string | `"/path/to/file.txt"` | Caminho absoluto para o arquivo a editar |1843| `file_path` | string | `"/path/to/file.txt"` | Caminho absoluto para o arquivo a ser editado |

1836| `old_string` | string | `"original text"` | Texto a encontrar e substituir |1844| `old_string` | string | `"original text"` | Texto a ser encontrado e substituído |

1837| `new_string` | string | `"replacement text"` | Texto de substituição |1845| `new_string` | string | `"replacement text"` | Texto de substituição |

1838| `replace_all` | boolean | `false` | Se deve substituir todas as ocorrências |1846| `replace_all` | boolean | `false` | Se todas as ocorrências devem ser substituídas |

1839 1847 

1840<h5 id="read">1848<h5 id="read">

1841 Read1849 Read

1842</h5>1850</h5>

1843 1851 

1844Lê conteúdo de arquivo.1852Lê o conteúdo de arquivos.

1845 1853 

1846| Campo | Tipo | Exemplo | Descrição |1854| Campo | Tipo | Exemplo | Descrição |

1847| :- | :- | :- | :- |1855| :- | :- | :- | :- |

1848| `file_path` | string | `"/path/to/file.txt"` | Caminho absoluto para o arquivo a ler |1856| `file_path` | string | `"/path/to/file.txt"` | Caminho absoluto para o arquivo a ser lido |

1849| `offset` | number | `10` | Número de linha opcional para começar a ler |1857| `offset` | number | `10` | Número de linha opcional a partir do qual começar a leitura |

1850| `limit` | number | `50` | Número opcional de linhas a ler |1858| `limit` | number | `50` | Número opcional de linhas a serem lidas |

1851 1859 

1852<h5 id="glob">1860<h5 id="glob">

1853 Glob1861 Glob

1854</h5>1862</h5>

1855 1863 

1856Encontra arquivos correspondentes a um padrão glob.1864Encontra arquivos que correspondem a um padrão glob.

1857 1865 

1858| Campo | Tipo | Exemplo | Descrição |1866| Campo | Tipo | Exemplo | Descrição |

1859| :- | :- | :- | :- |1867| :- | :- | :- | :- |

1860| `pattern` | string | `"**/*.ts"` | Padrão glob para corresponder arquivos |1868| `pattern` | string | `"**/*.ts"` | Padrão glob com o qual os arquivos serão comparados |

1861| `path` | string | `"/path/to/dir"` | Diretório opcional para pesquisar. Padrão é diretório de trabalho atual |1869| `path` | string | `"/path/to/dir"` | Diretório opcional no qual pesquisar. O padrão é o diretório de trabalho atual |

1862 1870 

1863<h5 id="grep">1871<h5 id="grep">

1864 Grep1872 Grep

1865</h5>1873</h5>

1866 1874 

1867Pesquisa conteúdo de arquivo com expressões regulares.1875Pesquisa o conteúdo de arquivos com expressões regulares.

1868 1876 

1869| Campo | Tipo | Exemplo | Descrição |1877| Campo | Tipo | Exemplo | Descrição |

1870| :- | :- | :- | :- |1878| :- | :- | :- | :- |

1871| `pattern` | string | `"TODO.*fix"` | Padrão de expressão regular para pesquisar |1879| `pattern` | string | `"TODO.*fix"` | Padrão de expressão regular a ser pesquisado |

1872| `path` | string | `"/path/to/dir"` | Arquivo ou diretório opcional para pesquisar |1880| `path` | string | `"/path/to/dir"` | Arquivo ou diretório opcional no qual pesquisar |

1873| `glob` | string | `"*.ts"` | Padrão glob opcional para filtrar arquivos |1881| `glob` | string | `"*.ts"` | Padrão glob opcional para filtrar arquivos |

1874| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. Padrão é `"files_with_matches"` |1882| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` ou `"count"`. O padrão é `"files_with_matches"` |

1875| `-i` | boolean | `true` | Pesquisa insensível a maiúsculas e minúsculas |1883| `-i` | boolean | `true` | Pesquisa sem diferenciar maiúsculas de minúsculas |

1876| `multiline` | boolean | `false` | Habilitar correspondência multilinha |1884| `multiline` | boolean | `false` | Habilita a correspondência em várias linhas |

1877 1885 

1878<h5 id="webfetch">1886<h5 id="webfetch">

1879 WebFetch1887 WebFetch


1883 1891 

1884| Campo | Tipo | Exemplo | Descrição |1892| Campo | Tipo | Exemplo | Descrição |

1885| :- | :- | :- | :- |1893| :- | :- | :- | :- |

1886| `url` | string | `"https://example.com/api"` | URL para buscar conteúdo |1894| `url` | string | `"https://example.com/api"` | URL da qual buscar o conteúdo |

1887| `prompt` | string | `"Extract the API endpoints"` | Prompt para executar no conteúdo buscado |1895| `prompt` | string | `"Extract the API endpoints"` | Prompt a ser executado sobre o conteúdo buscado |

1888 1896 

1889<h5 id="websearch">1897<h5 id="websearch">

1890 WebSearch1898 WebSearch

1891</h5>1899</h5>

1892 1900 

1893Pesquisa a web.1901Pesquisa na web.

1894 1902 

1895| Campo | Tipo | Exemplo | Descrição |1903| Campo | Tipo | Exemplo | Descrição |

1896| :- | :- | :- | :- |1904| :- | :- | :- | :- |

1897| `query` | string | `"react hooks best practices"` | Consulta de pesquisa |1905| `query` | string | `"react hooks best practices"` | Consulta de pesquisa |

1898| `allowed_domains` | array | `["docs.example.com"]` | Opcional: incluir apenas resultados desses domínios |1906| `allowed_domains` | array | `["docs.example.com"]` | Opcional: incluir somente resultados destes domínios |

1899| `blocked_domains` | array | `["spam.example.com"]` | Opcional: excluir resultados desses domínios |1907| `blocked_domains` | array | `["spam.example.com"]` | Opcional: excluir resultados destes domínios |

1900 1908 

1901<h5 id="agent">1909<h5 id="agent">

1902 Agent1910 Agent

1903</h5>1911</h5>

1904 1912 

1905Gera um [subagente](/docs/pt/sub-agents).1913Inicia um [subagente](/docs/pt/sub-agents).

1906 1914 

1907| Campo | Tipo | Exemplo | Descrição |1915| Campo | Tipo | Exemplo | Descrição |

1908| :- | :- | :- | :- |1916| :- | :- | :- | :- |

1909| `prompt` | string | `"Find all API endpoints"` | A tarefa para o agente executar |1917| `prompt` | string | `"Find all API endpoints"` | A tarefa que o agente deve executar |

1910| `description` | string | `"Find API endpoints"` | Descrição curta da tarefa |1918| `description` | string | `"Find API endpoints"` | Descrição curta da tarefa |

1911| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |1919| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a ser usado |

1912| `model` | string | `"sonnet"` | Alias de modelo opcional para sobrescrever o padrão |1920| `model` | string | `"sonnet"` | Alias de modelo opcional para sobrescrever o padrão |

1913 1921 

1914Quando uma chamada Agent em primeiro plano é concluída, seu hook [PostToolUse](#posttooluse) recebe o resultado do subagente e telemetria de execução em `tool_response`. Leia esses campos para inspecionar a execução; para rollups de token e custo entre subagentes, use os [contadores de token e custo](/docs/pt/monitoring-usage#token-counter) filtrados para `query_source` `"subagent"`, já que `totalTokens` e `usage` cobrem apenas a solicitação final:1922Quando uma chamada Agent em primeiro plano é concluída, seu [hook PostToolUse](#posttooluse) recebe o resultado do subagente e a telemetria da execução em `tool_response`. Leia esses campos para inspecionar a execução; para totais de tokens e custos entre subagentes, use os [contadores de tokens e custos](/docs/pt/monitoring-usage#token-counter) filtrados por `query_source` `"subagent"`, já que `totalTokens` e `usage` cobrem apenas a requisição final:

1915 1923 

1916| Campo | Tipo | Exemplo | Descrição |1924| Campo | Tipo | Exemplo | Descrição |

1917| :- | :- | :- | :- |1925| :- | :- | :- | :- |

1918| `status` | string | `"completed"` | `"completed"` para subagentes em primeiro plano, `"async_launched"` para subagentes em segundo plano. Os subagentes são executados em segundo plano por padrão, então uma chamada Agent que omite `run_in_background` também produz `"async_launched"` |1926| `status` | string | `"completed"` | `"completed"` para subagentes em primeiro plano, `"async_launched"` para subagentes em segundo plano. Os subagentes são executados em segundo plano por padrão, então uma chamada Agent que omite `run_in_background` também produz `"async_launched"` |

1919| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para a execução do subagente |1927| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador da execução do subagente |

1920| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Os blocos de texto final do subagente, ou, para um subagente cujo relatório passa por `SubagentHandback`, uma nota breve sobre esse handback em seu lugar |1928| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Os blocos de texto finais do subagente ou, para um subagente cujo relatório passa por `SubagentHandback`, uma nota curta sobre essa entrega no lugar deles |

1921| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo em que o subagente começou, que pode diferir do modelo solicitado |1929| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo com o qual o subagente começou, que pode ser diferente do modelo solicitado |

1922| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados em ordem, com repetições consecutivas colapsadas; definido apenas quando o modelo foi trocado durante a execução. Requer Claude Code v2.1.212 ou posterior |1930| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados em ordem, com repetições consecutivas recolhidas; definido somente quando o modelo foi trocado no meio da execução. Exige o Claude Code v2.1.212 ou posterior |

1923| `totalTokens` | number | `12450` | Contagem de tokens da solicitação final da API do subagente: tokens de entrada, saída e cache combinados. Isso não é um total em toda a execução |1931| `totalTokens` | number | `12450` | Contagem de tokens da requisição final de API do subagente: tokens de entrada, de saída e de cache combinados. Não é um total de toda a execução |

1924| `totalDurationMs` | number | `48211` | Duração de tempo real da execução do subagente |1932| `totalDurationMs` | number | `48211` | Duração em tempo real da execução do subagente |

1925| `totalToolUseCount` | number | `7` | Contagem de chamadas de ferramenta que o subagente fez |1933| `totalToolUseCount` | number | `7` | Contagem de chamadas de ferramenta feitas pelo subagente |

1926| `usage` | object | `{"input_tokens": 8320, ...}` | Divisão de tokens por tipo da solicitação final da API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1934| `usage` | object | `{"input_tokens": 8320, ...}` | Detalhamento de tokens por tipo da requisição final de API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1927 1935 

1928No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference), que Claude Code fornece em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), entrega seu relatório através dessa ferramenta em vez de retorná-lo como texto. O campo `content` de seu resultado `completed` então carrega uma nota breve sobre esse handback em vez do relatório em si. Para ler o relatório, corresponda um hook `PreToolUse` ou `PostToolUse` em `SubagentHandback` e leia `tool_input.message`.1936No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference), que o Claude Code fornece no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), entrega seu relatório por meio dessa ferramenta em vez de retorná-lo como texto. O campo `content` do seu resultado `completed` então carrega uma nota curta sobre essa entrega em vez do próprio relatório. Para ler o relatório, faça a correspondência de um hook `PreToolUse` ou `PostToolUse` em `SubagentHandback` e leia `tool_input.message`.

1929 1937 

1930Para subagentes em segundo plano, a ferramenta retorna quando a tarefa se move para o segundo plano, então `tool_response` não carrega campos de uso: um lançamento em segundo plano retorna imediatamente, e uma tarefa em primeiro plano que Claude Code coloca em segundo plano durante a execução retorna nessa transição. Ele tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.1938Para subagentes em segundo plano, a ferramenta retorna quando a tarefa passa para o segundo plano, então `tool_response` não carrega campos de uso: uma inicialização em segundo plano retorna imediatamente, e uma tarefa em primeiro plano que o Claude Code move para o segundo plano no meio da execução retorna nessa transição. Ela tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.

1931 1939 

1932Em uma resposta `completed`, `resolvedModel` nomeia o modelo em que o subagente começou, que pode diferir do valor `model` em `tool_input`, como quando `availableModels` ou outra sobrescrita se aplica. Em uma resposta `async_launched`, `resolvedModel` nomeia o modelo em uso quando o agente se moveu para o segundo plano, então uma troca que aconteceu antes de colocar em segundo plano é refletida lá. `modelsUsed` e o comportamento de `resolvedModel` no tempo de colocação em segundo plano requerem Claude Code v2.1.212 ou posterior.1940Em uma resposta `completed`, `resolvedModel` nomeia o modelo com o qual o subagente começou, que pode ser diferente do valor de `model` em `tool_input`, como quando `availableModels` ou outra substituição se aplica. Em uma resposta `async_launched`, `resolvedModel` nomeia o modelo em uso quando o agente passou para o segundo plano, de modo que uma troca que ocorreu antes disso é refletida ali. `modelsUsed` e o comportamento de `resolvedModel` no momento da passagem para o segundo plano exigem o Claude Code v2.1.212 ou posterior.

1933 1941 

1934<a id="askuserquestion" />1942<a id="askuserquestion" />

1935 1943 


1937 AskUserQuestion1945 AskUserQuestion

1938</h5>1946</h5>

1939 1947 

1940Faz ao usuário uma a quatro perguntas de múltipla escolha.1948Faz ao usuário de uma a quatro perguntas de múltipla escolha.

1941 1949 

1942| Campo | Tipo | Exemplo | Descrição |1950| Campo | Tipo | Exemplo | Descrição |

1943| :- | :- | :- | :- |1951| :- | :- | :- | :- |

1944| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Perguntas a apresentar, cada uma com uma string `question`, `header` curto, array `options` e flag `multiSelect` opcional |1952| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Perguntas a apresentar, cada uma com uma string `question`, um `header` curto, um array `options` e uma flag `multiSelect` opcional |

1945| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia texto de pergunta para rótulo de opção selecionada. Respostas de seleção múltipla unem rótulos com vírgulas. Claude não define este campo; forneça-o via `updatedInput` para responder programaticamente |1953| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia o texto da pergunta para o rótulo da opção selecionada. Respostas de seleção múltipla unem os rótulos com vírgulas. O Claude não define este campo; forneça-o via `updatedInput` para responder programaticamente |

1946 1954 

1947<h5 id="exitplanmode">1955<h5 id="exitplanmode">

1948 ExitPlanMode1956 ExitPlanMode

1949</h5>1957</h5>

1950 1958 

1951Apresenta um plano e pede ao usuário para aprová-lo antes de Claude sair do [modo de plano](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escreve o plano em um arquivo no disco antes de chamar a ferramenta, então o `tool_input` literal do modelo é tipicamente vazio. Claude Code injeta o conteúdo do plano e o caminho do arquivo antes de passar a entrada para hooks.1959Apresenta um plano e pede ao usuário que o aprove antes que o Claude saia do [modo de planejamento](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode). O Claude grava o plano em um arquivo no disco antes de chamar a ferramenta, então o `tool_input` literal vindo do modelo normalmente está vazio. O Claude Code injeta o conteúdo do plano e o caminho do arquivo antes de passar a entrada aos hooks.

1952 1960 

1953| Campo | Tipo | Exemplo | Descrição |1961| Campo | Tipo | Exemplo | Descrição |

1954| :- | :- | :- | :- |1962| :- | :- | :- | :- |

1955| `plan` | string | `"## Refactor auth\n1. Extract..."` | Conteúdo do plano em Markdown. Injetado do arquivo de plano no disco |1963| `plan` | string | `"## Refactor auth\n1. Extract..."` | Conteúdo do plano em Markdown. Injetado a partir do arquivo do plano no disco |

1956| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Caminho para o arquivo de plano. Injetado |1964| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Caminho para o arquivo do plano. Injetado |

1957| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Descontinuado. Claude Code aceita o campo mas o ignora. Antes da v2.1.205, ele carregava permissões baseadas em prompt que Claude solicitou para implementar o plano |1965| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Descontinuado. O Claude Code aceita o campo, mas o ignora. Antes da v2.1.205, ele carregava permissões baseadas em prompt que o Claude solicitava para implementar o plano |

1958 1966 

1959Em `PostToolUse`, `tool_response` é um objeto com campos `plan` e `filePath` contendo o plano aprovado, mais flags de status interno. Leia `tool_response.plan` para o conteúdo do plano em vez de reler o arquivo do disco.1967No `PostToolUse`, `tool_response` é um objeto com os campos `plan` e `filePath` contendo o plano aprovado, além de flags de status internas. Leia `tool_response.plan` para obter o conteúdo do plano em vez de ler o arquivo novamente do disco.

1960 1968 

1961<h4 id="pretooluse-decision-control">1969<h4 id="pretooluse-decision-control">

1962 Controle de decisão PreToolUse1970 Controle de decisão do PreToolUse

1963</h4>1971</h4>

1964 1972 

1965Hooks `PreToolUse` podem controlar se uma chamada de ferramenta prossegue. Ao contrário de outros hooks que usam um campo `decision` de nível superior, PreToolUse retorna sua decisão dentro de um objeto `hookSpecificOutput`. Isso lhe dá controle mais rico: quatro resultados (permitir, negar, perguntar ou adiar) mais a capacidade de modificar a entrada da ferramenta antes da execução.1973Os hooks `PreToolUse` podem controlar se uma chamada de ferramenta prossegue. Diferentemente de outros hooks que usam um campo `decision` de nível superior, o PreToolUse retorna sua decisão dentro de um objeto `hookSpecificOutput`. Isso lhe dá um controle mais rico: quatro resultados (allow, deny, ask ou defer), além da capacidade de modificar a entrada da ferramenta antes da execução.

1966 1974 

1967| Campo | Descrição |1975| Campo | Descrição |

1968| :- | :- |1976| :- | :- |

1969| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para as [ações que nenhum modo auto-aprova](/docs/pt/permission-modes#actions-no-mode-auto-approves) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` emparelhado com ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` solicita ao usuário para confirmar. `"defer"` sai graciosamente para que a ferramenta possa ser retomada mais tarde. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retorna |1977| `permissionDecision` | `"allow"` pula o prompt de permissão, exceto para as [ações que nenhum modo aprova automaticamente](/docs/pt/permission-modes#actions-no-mode-auto-approves) e para `AskUserQuestion` e `ExitPlanMode`, que precisam de [`updatedInput` combinado a ele](#allow-with-updatedinput). `"deny"` impede a chamada de ferramenta. `"ask"` solicita a confirmação do usuário. `"defer"` sai de forma controlada para que a ferramenta possa ser retomada depois. As [regras deny e ask](/docs/pt/permissions#manage-permissions) ainda são avaliadas independentemente do que o hook retornar |

1970| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário mas não ao Claude. Para `"deny"`, mostrado ao Claude. Para `"allow"` e `"defer"`, escrito apenas no [log de depuração](#debug-hooks) |1978| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário no prompt de permissão. Quando o Claude Code [nega a chamada](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) em uma execução `-p` na qual ninguém pode responder a esse prompt, o Claude lê o motivo no resultado da ferramenta. Para `"deny"`, mostrado ao Claude. Para `"allow"` e `"defer"`, gravado somente no [log de depuração](#debug-hooks) |

1971| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua campos inalterados junto com os modificados. Claude Code avalia regras de permissão e a elegibilidade de [colocação em segundo plano automático](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) de um comando Bash contra a entrada que seu hook retorna, não a entrada que Claude enviou. Combine com `"allow"` para auto-aprovar, ou `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, ignorado |1979| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua os campos inalterados junto com os modificados. O Claude Code avalia as regras de permissão e a [elegibilidade para segundo plano automático](/docs/pt/tools-reference#foreground-commands-that-move-to-the-background) de um comando Bash com base na entrada que seu hook retorna, e não na entrada que o Claude enviou. Combine com `"allow"` para aprovar automaticamente, ou com `"ask"` para mostrar a entrada modificada ao usuário. Para `"defer"`, ignorado |

1972| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1980| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

1973 1981 

1974Quando vários hooks PreToolUse retornam decisões diferentes, a precedência é `deny` > `defer` > `ask` > `allow`.1982Quando vários hooks PreToolUse retornam decisões diferentes, a precedência é `deny` > `defer` > `ask` > `allow`.

1975 1983 

1976Um hook que bloqueia ao sair com 2 roteia da mesma forma que `"deny"`: Claude vê a mensagem stderr como o motivo da negação.1984Um hook que bloqueia saindo com 2 é encaminhado da mesma forma que `"deny"`: o Claude vê a mensagem do stderr como o motivo da negação.

1977 1985 

1978Quando um hook retorna `"ask"`, o prompt de permissão exibido ao usuário inclui um rótulo identificando de onde o hook veio: `[settings]` para um hook de qualquer arquivo de configurações ou de frontmatter de agente, `[plugin:<name>]` para um hook de plugin, ou `[skill]` para um hook de frontmatter de skill. Isso ajuda os usuários a entender qual fonte de configuração está solicitando confirmação.1986Quando um hook retorna `"ask"`, o prompt de permissão exibido ao usuário inclui um rótulo que identifica a origem do hook: `[settings]` para um hook de qualquer arquivo de configurações ou do frontmatter de um agente, `[plugin:<name>]` para o hook de um plugin ou `[skill]` para um hook do frontmatter de uma skill. Isso ajuda os usuários a entender qual fonte de configuração está solicitando a confirmação.

1979 1987 

1980Um `"ask"` de um hook também força um prompt de permissão em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): o classificador ainda pode negar a chamada de ferramenta, mas não pode aprovar a chamada silenciosamente. Antes da v2.1.211, o classificador poderia aprovar um comando Bash executado fora do [sandbox](/docs/pt/sandboxing) sem mostrar o prompt que o hook solicitou; o classificador ainda aplicava suas próprias regras de segurança a esse comando, e uma negação de hook `"deny"` era sempre honrada.1988O `"ask"` de um hook também força um prompt de permissão no [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode): o classificador ainda pode negar a chamada de ferramenta, mas não pode aprová-la silenciosamente. Antes da v2.1.211, o classificador podia aprovar um comando Bash executado fora do [sandbox](/docs/pt/sandboxing) sem mostrar o prompt solicitado pelo hook; o classificador ainda aplicava suas próprias regras de segurança a esse comando, e um `"deny"` de hook era sempre respeitado.

1981 1989 

1982```json theme={null}1990```json theme={null}

1983{1991{


1995 2003 

1996<span id="allow-with-updatedinput" />2004<span id="allow-with-updatedinput" />

1997 2005 

1998Em [modo não interativo](/docs/pt/headless) com a flag `-p`, Claude Code oferece `AskUserQuestion` e `ExitPlanMode` apenas quando a execução tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) para receber o prompt, como um callback `canUseTool` do Agent SDK. Essas ferramentas requerem interação do usuário. Retornar `permissionDecision: "allow"` junto com `updatedInput` satisfaz esse requisito: o hook lê a entrada da ferramenta de stdin, coleta a resposta através de sua própria UI e a retorna em `updatedInput` para que a ferramenta seja executada sem solicitar. Retornar `"allow"` sozinho não é suficiente para essas ferramentas. Para `AskUserQuestion`, ecoar de volta o array `questions` original e adicionar um objeto [`answers`](#askuserquestion) mapeando o texto de cada pergunta para a resposta escolhida.2006No [modo não interativo](/docs/pt/headless) com a flag `-p`, o Claude Code oferece `AskUserQuestion` e `ExitPlanMode` somente quando a execução tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs) para receber o prompt, como um callback `canUseTool` do Agent SDK. Essas ferramentas exigem interação do usuário. Retornar `permissionDecision: "allow"` junto com `updatedInput` satisfaz esse requisito: o hook lê a entrada da ferramenta do stdin, coleta a resposta por meio da sua própria UI e a retorna em `updatedInput` para que a ferramenta seja executada sem solicitar confirmação. Retornar apenas `"allow"` não é suficiente para essas ferramentas. Para `AskUserQuestion`, devolva o array `questions` original e adicione um objeto [`answers`](#askuserquestion) que mapeia o texto de cada pergunta para a resposta escolhida.

1999 2007 

2000A partir da v2.1.199, uma ferramenta MCP cujo servidor a marca com [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) é mais rigorosa: um hook não pode pular seu prompt de aprovação com `"allow"`, com ou sem `updatedInput`, porque Claude Code não pode confirmar que o hook coletou a interação que a ferramenta precisa.2008Uma ferramenta MCP cujo servidor a marca com [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) é mais restrita: um hook não pode pular seu prompt de aprovação com `"allow"`, com ou sem `updatedInput`, porque o Claude Code não consegue confirmar que o hook coletou a interação de que a ferramenta precisa.

2001 2009 

2002<Note>2010<Note>

2003 PreToolUse anteriormente usava campos `decision` e `reason` de nível superior, mas estes estão descontinuados para este evento. Use `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason` em vez disso. Os valores descontinuados `"approve"` e `"block"` mapeiam para `"allow"` e `"deny"` respectivamente. Outros eventos como PostToolUse e Stop continuam usando `decision` e `reason` de nível superior como seu formato atual.2011 O PreToolUse usava anteriormente os campos de nível superior `decision` e `reason`, mas eles estão descontinuados para este evento. Use `hookSpecificOutput.permissionDecision` e `hookSpecificOutput.permissionDecisionReason`. Os valores descontinuados `"approve"` e `"block"` correspondem a `"allow"` e `"deny"`, respectivamente. Outros eventos, como PostToolUse e Stop, continuam usando `decision` e `reason` de nível superior como seu formato atual.

2004</Note>2012</Note>

2005 2013 

2006<h4 id="defer-a-tool-call-for-later">2014<h4 id="defer-a-tool-call-for-later">

2007 Adiar uma chamada de ferramenta para mais tarde2015 Adiar uma chamada de ferramenta para mais tarde

2008</h4>2016</h4>

2009 2017 

2010`"defer"` é para integrações que executam `claude -p` como um subprocesso e leem sua saída JSON, como um aplicativo Agent SDK ou uma UI personalizada construída sobre Claude Code. Permite que esse processo de chamada pause Claude em uma chamada de ferramenta, colete entrada através de sua própria interface e retome onde parou. Claude Code honra este valor apenas em [modo não interativo](/docs/pt/headless) com a flag `-p`. Em sessões interativas, ele registra um aviso e ignora o resultado do hook.2018`"defer"` é para integrações que executam `claude -p` como subprocesso e leem sua saída JSON, como um app do Agent SDK ou uma UI personalizada construída sobre o Claude Code. Ele permite que esse processo chamador pause o Claude em uma chamada de ferramenta, colete a entrada por meio da sua própria interface e retome de onde parou. O Claude Code respeita este valor somente no [modo não interativo](/docs/pt/headless) com a flag `-p`. Em sessões interativas, ele registra um aviso em log e ignora o resultado do hook.

2011 2019 

2012A ferramenta `AskUserQuestion` é o caso típico: Claude quer fazer uma pergunta ao usuário, mas não há terminal para responder. Uma execução `-p` oferece `AskUserQuestion` apenas quando tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs), como uma ferramenta MCP que você passa com `--permission-prompt-tool`, então comece a execução com um. A viagem de ida e volta funciona assim:2020A ferramenta `AskUserQuestion` é o caso típico: o Claude quer perguntar algo ao usuário, mas não há terminal para responder. Uma execução `-p` oferece `AskUserQuestion` somente quando tem um [host de permissão](/docs/pt/headless#turn-off-permission-prompts-in-unattended-runs), como uma ferramenta MCP que você passa com `--permission-prompt-tool`, então inicie a execução com um. O ciclo funciona assim:

2013 2021 

20141. Claude chama `AskUserQuestion`. O hook `PreToolUse` dispara.20221. O Claude chama `AskUserQuestion`. O hook `PreToolUse` é disparado.

20152. O hook retorna `permissionDecision: "defer"`. A ferramenta não é executada. O processo sai com `stop_reason: "tool_deferred"` e a chamada de ferramenta pendente preservada na transcrição.20232. O hook retorna `permissionDecision: "defer"`. A ferramenta não é executada. O processo sai com `stop_reason: "tool_deferred"` e a chamada de ferramenta pendente preservada na transcrição.

20163. O processo de chamada lê `deferred_tool_use` do resultado do SDK, exibe a pergunta em sua própria UI e espera por uma resposta.20243. O processo chamador lê `deferred_tool_use` do resultado do SDK, apresenta a pergunta na sua própria UI e aguarda uma resposta.

20174. O processo de chamada executa `claude -p --resume <session-id>` com o mesmo host de permissão. A mesma chamada de ferramenta dispara `PreToolUse` novamente.20254. O processo chamador executa `claude -p --resume <session-id>` com o mesmo host de permissão. A mesma chamada de ferramenta dispara o `PreToolUse` novamente.

20185. O hook retorna `permissionDecision: "allow"` com a resposta em `updatedInput`. A ferramenta é executada e Claude continua.20265. O hook retorna `permissionDecision: "allow"` com a resposta em `updatedInput`. A ferramenta é executada e o Claude continua.

2019 2027 

2020O campo `deferred_tool_use` carrega o `id`, `name` e `input` da ferramenta. O `input` são os parâmetros que Claude gerou para a chamada de ferramenta, capturados antes da execução:2028O campo `deferred_tool_use` carrega o `id`, o `name` e o `input` da ferramenta. O `input` são os parâmetros que o Claude gerou para a chamada de ferramenta, capturados antes da execução:

2021 2029 

2022```json theme={null}2030```json theme={null}

2023{2031{


2033}2041}

2034```2042```

2035 2043 

2036Não há tempo limite ou limite de tentativas. A sessão permanece no disco até que você a retome, sujeita à varredura de retenção [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays), que exclui arquivos de sessão após 30 dias por padrão, seguindo as [regras de varredura de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Se a resposta não estiver pronta quando você retomar, o hook pode retornar `"defer"` novamente e o processo sai da mesma forma. O processo de chamada controla quando quebrar o loop eventualmente retornando `"allow"` ou `"deny"` do hook.2044Não há timeout nem limite de novas tentativas. A sessão permanece no disco até que você a retome, sujeita à limpeza de retenção [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays), que exclui os arquivos de sessão após 30 dias por padrão, seguindo as [regras de limpeza de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Se a resposta não estiver pronta quando você retomar, o hook pode retornar `"defer"` novamente e o processo sai da mesma forma. O processo chamador controla quando interromper o loop, retornando eventualmente `"allow"` ou `"deny"` do hook.

2037 2045 

2038`"defer"` funciona apenas quando Claude faz uma única chamada de ferramenta no turno. Se Claude faz várias chamadas de ferramenta de uma vez, `"defer"` é ignorado com um aviso e a ferramenta prossegue através do fluxo de permissão normal. A restrição existe porque retomar pode apenas re-executar uma ferramenta: não há maneira de adiar uma chamada de um lote sem deixar as outras não resolvidas.2046`"defer"` só funciona quando o Claude faz uma única chamada de ferramenta no turno. Se o Claude fizer várias chamadas de ferramenta de uma vez, `"defer"` é ignorado com um aviso e a ferramenta prossegue pelo fluxo normal de permissões. A restrição existe porque a retomada só pode executar novamente uma ferramenta: não há como adiar uma chamada de um lote sem deixar as outras sem resolução.

2039 2047 

2040Se a ferramenta adiada não estiver mais disponível quando você retomar, o processo sai com `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes do hook disparar. Isso acontece quando um servidor MCP que forneceu a ferramenta não está conectado para a sessão retomada. O payload `deferred_tool_use` ainda é incluído para que você possa identificar qual ferramenta desapareceu.2048Se a ferramenta adiada não estiver mais disponível quando você retomar, o processo sai com `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes que o hook seja disparado. Isso acontece quando um servidor MCP que fornecia a ferramenta não está conectado na sessão retomada. O payload `deferred_tool_use` ainda é incluído para que você possa identificar qual ferramenta ficou ausente.

2041 2049 

2042<Note>2050<Note>

2043 Para retomar uma sessão adiada em modo de plano, passe [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) junto com `--resume` para que Claude Code possa apresentar o plano para aprovação. Se você passar certas outras flags de lançamento, a execução retomada não retorna ao modo de plano; veja [Retomar em modo de plano com `-p`](/docs/pt/sessions#resume-in-plan-mode-with-p). Requer Claude Code v2.1.246 ou posterior.2051 Para retomar uma sessão adiada no modo de planejamento, passe [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) junto com `--resume` para que o Claude Code possa apresentar o plano para aprovação. Se você passar certas outras flags de inicialização, a execução retomada não volta ao modo de planejamento; consulte [Retomar no modo de planejamento com `-p`](/docs/pt/sessions#resume-in-plan-mode-with-p). Exige o Claude Code v2.1.246 ou posterior.

2044 2052 

2045 Quando você retoma com `-p`, Claude Code não restaura nenhum outro modo de permissão armazenado. Ele inicia a execução no modo de permissão que uma nova execução `claude -p` iniciaria, então passe `--permission-mode` ou `--dangerously-skip-permissions` novamente se a sessão adiada usou um. Quando você retoma com `claude --resume <session-id>` sem `-p`, Claude Code restaura o modo de permissão armazenado, com as exceções listadas em [modo de permissão ao retomar](/docs/pt/sessions#permission-mode-on-resume).2053 Quando você retoma com `-p`, o Claude Code não restaura nenhum outro modo de permissão armazenado. Ele inicia a execução no modo de permissão em que uma nova execução `claude -p` iniciaria, então passe `--permission-mode` ou `--dangerously-skip-permissions` novamente se a sessão adiada usava um deles. Quando você retoma com `claude --resume <session-id>` sem `-p`, o Claude Code restaura o modo de permissão armazenado, com as exceções listadas em [modo de permissão na retomada](/docs/pt/sessions#permission-mode-on-resume).

2046</Note>2054</Note>

2047 2055 

2048<h3 id="permissionrequest">2056<h3 id="permissionrequest">

2049 PermissionRequest2057 PermissionRequest

2050</h3>2058</h3>

2051 2059 

2052É executado quando o Claude Code está prestes a pedir a você permissão para usar uma ferramenta. Em sessões que não podem mostrar um prompt, como subagentes em segundo plano no [modo não interativo](/docs/pt/headless), o Claude Code ainda executa esses hooks e, se nenhum hook retornar uma decisão, nega a chamada de ferramenta. Para uma chamada que chega a um `--permission-prompt-tool` ou ao [callback `canUseTool`](/docs/pt/agent-sdk/permissions) do Agent SDK, os hooks são executados junto com o seu host, e o que decidir primeiro é aplicado.2060É executado quando o Claude Code está prestes a pedir sua permissão para usar uma ferramenta. Em sessões que não podem mostrar um prompt, como subagentes em segundo plano no [modo não interativo](/docs/pt/headless), o Claude Code ainda executa esses hooks e, se nenhum hook retornar uma decisão, ele nega a chamada de ferramenta. Para uma chamada que chega a um `--permission-prompt-tool` ou ao [callback `canUseTool`](/docs/pt/agent-sdk/permissions) do Agent SDK, os hooks são executados junto com o seu host, e o que decidir primeiro se aplica.

2053Use o [controle de decisão do PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.2061Use o [controle de decisão do PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.

2054 2062 

2055Use este evento quando você precisa de um sinal no momento em que Claude pede permissão para usar uma ferramenta. Claude Code executa um hook [Notification](#notification) com o tipo `permission_prompt` apenas após o prompt ter esperado cerca de seis segundos.2063Use este evento quando precisar de um sinal no momento em que o Claude pede permissão para usar uma ferramenta. O Claude Code executa um hook [Notification](#notification) com o tipo `permission_prompt` somente depois que o prompt esperou cerca de seis segundos.

2056 2064 

2057Claude Code não executa hooks PermissionRequest para a [solicitação de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox. Para obter um sinal para esse prompt, use o tipo de notificação `permission_prompt`.2065O Claude Code não executa hooks PermissionRequest para a [requisição de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox. Para obter um sinal para esse prompt, use o tipo de notificação `permission_prompt`.

2058 2066 

2059Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2067Faz a correspondência com o nome da ferramenta, com os mesmos valores do PreToolUse.

2060 2068 

2061<h4 id="permissionrequest-input">2069<h4 id="permissionrequest-input">

2062 Entrada PermissionRequest2070 Entrada do PermissionRequest

2063</h4>2071</h4>

2064 2072 

2065Hooks PermissionRequest recebem campos `tool_name` e `tool_input` como hooks PreToolUse, mas sem `tool_use_id`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Um array `permission_suggestions` opcional contém as [atualizações de permissão](#permission-update-entries) que Claude Code sugere para esta solicitação, como adicionar uma regra de permissão ou mudar o modo de permissão.2073Os hooks PermissionRequest recebem os campos `tool_name` e `tool_input` como os hooks PreToolUse, mas sem `tool_use_id`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Um array opcional `permission_suggestions` contém as [atualizações de permissão](#permission-update-entries) que o Claude Code sugere para esta solicitação, como adicionar uma regra allow ou alterar o modo de permissão.

2066 2074 

2067O array `permission_suggestions` não é uma lista exata das opções que você vê, porque cada diálogo de permissão constrói suas próprias opções. Alguns diálogos, como o para edições de arquivo, não leem o array e derivam suas opções da solicitação em si. Um diálogo que o lê pode ainda reter uma opção cuja sugestão fica no array, por exemplo quando [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) oculta opções de salvamento de regra. Ele também pode oferecer opções que não têm entrada de sugestão, como [**Sim, e mude para modo automático**](/docs/pt/permission-modes#switch-permission-modes), que muda o modo de permissão diretamente em vez de através de uma atualização de permissão.2075O array `permission_suggestions` não é uma lista exata das opções que você vê, porque cada diálogo de permissão monta suas próprias opções. Alguns diálogos, como o de edições de arquivos, não leem o array de forma alguma e derivam suas opções da própria solicitação. Um diálogo que o lê ainda pode omitir uma opção cuja sugestão permanece no array, por exemplo quando [`allowManagedPermissionRulesOnly`](/docs/pt/settings-reference#allowmanagedpermissionrulesonly) oculta as opções de salvar regras. Ele também pode oferecer opções que não têm entrada de sugestão, como [**Yes, and switch to auto mode**](/docs/pt/permission-modes#switch-permission-modes), que altera o modo de permissão diretamente em vez de por meio de uma atualização de permissão.

2068 2076 

2069Hooks PreToolUse são executados antes de cada chamada de ferramenta, independentemente de precisar de permissão. Hooks PermissionRequest são executados apenas quando Claude Code está prestes a pedir permissão, ou quando caso contrário auto-negaria uma chamada que não pode solicitar. Nenhum evento dispara para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).2077Os hooks PreToolUse são executados antes de cada chamada de ferramenta, precise ela de permissão ou não. Os hooks PermissionRequest são executados somente quando o Claude Code está prestes a pedir sua permissão, ou quando, de outra forma, ele negaria automaticamente uma chamada que não pode exibir um prompt. Nenhum dos dois eventos é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).

2070 2078 

2071```json theme={null}2079```json theme={null}

2072{2080{


2092```2100```

2093 2101 

2094<h4 id="permissionrequest-decision-control">2102<h4 id="permissionrequest-decision-control">

2095 Controle de decisão PermissionRequest2103 Controle de decisão do PermissionRequest

2096</h4>2104</h4>

2097 2105 

2098Hooks `PermissionRequest` podem permitir ou negar solicitações de permissão. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar um objeto `decision` com esses campos específicos do evento:2106Os hooks `PermissionRequest` podem permitir ou negar solicitações de permissão. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar um objeto `decision` com estes campos específicos do evento:

2099 2107 

2100| Campo | Descrição |2108| Campo | Descrição |

2101| :- | :- |2109| :- | :- |

2102| `behavior` | `"allow"` concede a permissão, `"deny"` a nega. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas, então um hook retornando `"allow"` não sobrescreve uma regra de negação correspondente |2110| `behavior` | `"allow"` concede a permissão, `"deny"` a nega. As [regras deny e ask](/docs/pt/permissions#manage-permissions) ainda são avaliadas, então um hook que retorna `"allow"` não sobrescreve uma regra deny correspondente |

2103| `updatedInput` | Para `"allow"` apenas: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua campos inalterados junto com os modificados. A entrada modificada é re-avaliada contra regras de negação e pergunta |2111| `updatedInput` | Somente para `"allow"`: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, então inclua os campos inalterados junto com os modificados. A entrada modificada é reavaliada com base nas regras deny e ask |

2104| `updatedPermissions` | Para `"allow"` apenas: array de [entradas de atualização de permissão](#permission-update-entries) a aplicar, como adicionar uma regra de permissão ou mudar o modo de permissão da sessão |2112| `updatedPermissions` | Somente para `"allow"`: array de [entradas de atualização de permissão](#permission-update-entries) a serem aplicadas, como adicionar uma regra allow ou alterar o modo de permissão da sessão |

2105| `message` | Para `"deny"` apenas: diz ao Claude por que a permissão foi negada |2113| `message` | Somente para `"deny"`: informa ao Claude por que a permissão foi negada |

2106| `interrupt` | Para `"deny"` apenas: se `true`, para Claude |2114| `interrupt` | Somente para `"deny"`: se `true`, interrompe o Claude |

2107 2115 

2108Um hook que sai com 2 sem um objeto `decision` deixa o fluxo de permissão inalterado, e seu stderr é descartado. Apenas o objeto `decision` pode conceder ou negar a solicitação.2116Um hook que sai com 2 sem um objeto `decision` deixa o fluxo de permissões inalterado, e seu stderr é descartado. Somente o objeto `decision` pode conceder ou negar a solicitação.

2109 2117 

2110```json theme={null}2118```json theme={null}

2111{2119{


2125 Entradas de atualização de permissão2133 Entradas de atualização de permissão

2126</h4>2134</h4>

2127 2135 

2128O campo de saída `updatedPermissions` e o campo de entrada [`permission_suggestions`](#permissionrequest-input) ambos usam o mesmo array de objetos de entrada. Cada entrada tem um `type` que determina seus outros campos, e um `destination` que controla onde a mudança é escrita.2136O campo de saída `updatedPermissions` e o [campo de entrada `permission_suggestions`](#permissionrequest-input) usam o mesmo array de objetos de entrada. Cada entrada tem um `type` que determina seus outros campos e um `destination` que controla onde a alteração é gravada.

2129 2137 

2130| `type` | Campos | Efeito |2138| `type` | Campos | Efeito |

2131| :- | :- | :- |2139| :- | :- | :- |

2132| `addRules` | `rules`, `behavior`, `destination` | Adiciona regras de permissão. `rules` é um array de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para corresponder a toda a ferramenta. `behavior` é `"allow"`, `"deny"` ou `"ask"` |2140| `addRules` | `rules`, `behavior`, `destination` | Adiciona regras de permissão. `rules` é um array de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para corresponder à ferramenta inteira. `behavior` é `"allow"`, `"deny"` ou `"ask"` |

2133| `replaceRules` | `rules`, `behavior`, `destination` | Substitui todas as regras do `behavior` dado no `destination` pelas `rules` fornecidas |2141| `replaceRules` | `rules`, `behavior`, `destination` | Substitui todas as regras do `behavior` informado no `destination` pelas `rules` fornecidas |

2134| `removeRules` | `rules`, `behavior`, `destination` | Remove regras correspondentes do `behavior` dado |2142| `removeRules` | `rules`, `behavior`, `destination` | Remove as regras correspondentes do `behavior` informado |

2135| `setMode` | `mode`, `destination` | Muda o modo de permissão. Modos válidos são `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` como um alias para `default`. O alias `manual` requer Claude Code v2.1.200 ou posterior |2143| `setMode` | `mode`, `destination` | Altera o modo de permissão. Os modos válidos são `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` e `manual` como alias de `default`. O alias `manual` exige o Claude Code v2.1.200 ou posterior |

2136| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |2144| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |

2137| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |2145| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |

2138 2146 

2139<Note>2147<Note>

2140 `setMode` com `bypassPermissions` só tem efeito se você iniciou a sessão com modo bypass já disponível: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` ou `permissions.defaultMode: "bypassPermissions"` em [configurações de usuário, `--settings` ou gerenciadas](/docs/pt/settings-reference#permissions-defaultmode). Caso contrário, a atualização é uma não-operação. A atualização também é uma não-operação quando [`permissions.disableBypassPermissionsMode`](/docs/pt/permissions#managed-settings) desabilita o modo, ou quando a sessão começa em [modo restrito](/docs/pt/cli-reference#cli-flags).2148 `setMode` com `bypassPermissions` só tem efeito se você iniciou a sessão com o modo bypass já disponível: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` ou `permissions.defaultMode: "bypassPermissions"` nas [configurações de usuário, de `--settings` ou gerenciadas](/docs/pt/settings-reference#permissions-defaultmode). Caso contrário, a atualização não tem efeito. A atualização também não tem efeito quando [`permissions.disableBypassPermissionsMode`](/docs/pt/permissions#managed-settings) desativa o modo, ou quando a sessão inicia em [modo restrito](/docs/pt/cli-reference#cli-flags).

2141 2149 

2142 `bypassPermissions` nunca é persistido como `defaultMode` independentemente de `destination`.2150 `bypassPermissions` nunca é persistido como `defaultMode`, independentemente de `destination`.

2143</Note>2151</Note>

2144 2152 

2145O campo `destination` em cada entrada determina se a mudança fica na memória ou persiste em um arquivo de configurações.2153O campo `destination` em cada entrada determina se a alteração permanece na memória ou é persistida em um arquivo de configurações.

2146 2154 

2147| `destination` | Escreve para |2155| `destination` | Grava em |

2148| :- | :- |2156| :- | :- |

2149| `session` | apenas na memória, descartado quando a sessão termina |2157| `session` | somente na memória, descartado quando a sessão termina |

2150| `localSettings` | `.claude/settings.local.json` |2158| `localSettings` | `.claude/settings.local.json` |

2151| `projectSettings` | `.claude/settings.json` |2159| `projectSettings` | `.claude/settings.json` |

2152| `userSettings` | `~/.claude/settings.json` |2160| `userSettings` | `~/.claude/settings.json` |


2157 PostToolUse2165 PostToolUse

2158</h3>2166</h3>

2159 2167 

2160Executa imediatamente após uma ferramenta ser concluída com sucesso.2168É executado imediatamente após uma ferramenta ser concluída com sucesso.

2161 2169 

2162Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2170Faz correspondência pelo nome da ferramenta, com os mesmos valores de PreToolUse.

2163 2171 

2164Corresponda mais amplamente quando o nome da ferramenta não é o filtro certo:2172Faça uma correspondência mais ampla quando o nome da ferramenta não for o filtro adequado:

2165 2173 

2166* Para executar um hook após qualquer ferramenta ser concluída com sucesso, omita o `matcher` ou defina-o como `"*"`. Seu hook pode então descobrir o que mudou por si mesmo, por exemplo executando `git status --porcelain`, que também lista arquivos não rastreados que `git diff` perde. Para chamadas de ferramenta que falham, adicione o mesmo hook em [PostToolUseFailure](#posttoolusefailure).2174* Para executar um hook após qualquer ferramenta ser concluída com sucesso, omita o `matcher` ou defina-o como `"*"`. Seu hook pode então descobrir por conta própria o que mudou, por exemplo executando `git status --porcelain`, que também lista arquivos não rastreados que o `git diff` não mostra. Para chamadas de ferramenta que falham, adicione o mesmo hook em [PostToolUseFailure](#posttoolusefailure).

2167* Para executar um hook quando um arquivo específico muda no disco, seja qual for o que o escreveu, use [FileChanged](#filechanged). Claude Code não executa um hook `PostToolUse` correspondente a `Edit|Write` quando um comando `Bash` ou um processo fora de Claude Code reescreve o mesmo arquivo.2175* Para executar um hook quando um arquivo específico muda no disco, independentemente de quem o gravou, use [FileChanged](#filechanged). O Claude Code não executa um hook `PostToolUse` que corresponde a `Edit|Write` quando um comando `Bash` ou um processo fora do Claude Code reescreve o mesmo arquivo.

2168 2176 

2169<h4 id="posttooluse-input">2177<h4 id="posttooluse-input">

2170 Entrada PostToolUse2178 Entrada do PostToolUse

2171</h4>2179</h4>

2172 2180 

2173Hooks `PostToolUse` disparam após uma ferramenta já ter sido executada com sucesso. A entrada inclui tanto `tool_input`, os argumentos enviados para a ferramenta, quanto `tool_response`, o resultado que ela retornou. O esquema exato para ambos depende da ferramenta. Caminhos `tool_input` de ferramentas de arquivo chegam no mesmo formato que para [PreToolUse](#pretooluse-input): sempre absoluto, com os separadores nativos da plataforma, então barras invertidas no Windows. Para uma ferramenta MCP, a entrada também carrega o objeto [`mcp_server`](#pretooluse-input).2181Os hooks `PostToolUse` são disparados depois que uma ferramenta já foi executada com sucesso. A entrada inclui tanto `tool_input`, os argumentos enviados à ferramenta, quanto `tool_response`, o resultado que ela retornou. O esquema exato de ambos depende da ferramenta. Os caminhos em `tool_input` de ferramentas de arquivo chegam no mesmo formato que em [PreToolUse](#pretooluse-input): sempre absolutos, com os separadores nativos da plataforma, portanto barras invertidas no Windows. Para uma ferramenta MCP, a entrada também inclui o objeto [`mcp_server`](#pretooluse-input).

2174 2182 

2175```json theme={null}2183```json theme={null}

2176{2184{


2195 2203 

2196| Campo | Descrição |2204| Campo | Descrição |

2197| :- | :- |2205| :- | :- |

2198| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui tempo gasto em prompts de permissão e hooks PreToolUse |2206| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui o tempo gasto em prompts de permissão e em hooks PreToolUse |

2199 2207 

2200<h4 id="posttooluse-decision-control">2208<h4 id="posttooluse-decision-control">

2201 Controle de decisão PostToolUse2209 Controle de decisão do PostToolUse

2202</h4>2210</h4>

2203 2211 

2204Hooks `PostToolUse` podem fornecer feedback ao Claude após a execução da ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2212Os hooks `PostToolUse` podem fornecer feedback ao Claude após a execução da ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:

2205 2213 

2206| Campo | Descrição |2214| Campo | Descrição |

2207| :- | :- |2215| :- | :- |

2208| `decision` | `"block"` adiciona o `reason` ao lado do resultado da ferramenta. Claude ainda vê a saída original; para substituí-la, use `updatedToolOutput` |2216| `decision` | `"block"` adiciona o `reason` ao lado do resultado da ferramenta. O Claude ainda vê a saída original; para substituí-la, use `updatedToolOutput` |

2209| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |2217| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |

2210| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Veja [Adicionar contexto para Claude](#add-context-for-claude) |2218| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

2211| `classifierContext` | Nota breve sobre o resultado desta chamada para o classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) em vez de para Claude. Veja [Anotar um resultado para o classificador de modo automático](#annotate-a-result-for-the-auto-mode-classifier). Requer Claude Code v2.1.236 ou posterior |2219| `classifierContext` | Nota curta sobre o resultado desta chamada destinada ao classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e não ao Claude. Consulte [Anotar um resultado para o classificador do modo auto](#annotate-a-result-for-the-auto-mode-classifier). Requer Claude Code v2.1.236 ou posterior |

2212| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes de ser enviado ao Claude. O valor deve corresponder à forma de saída da ferramenta |2220| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes de ela ser enviada ao Claude. O valor deve corresponder ao formato de saída da ferramenta |

2213| `updatedMCPToolOutput` | Substitui a saída para [ferramentas MCP](#match-mcp-tools) apenas. Prefira `updatedToolOutput`, que funciona para todas as ferramentas |2221| `updatedMCPToolOutput` | Substitui a saída somente para [ferramentas MCP](#match-mcp-tools). Prefira `updatedToolOutput`, que funciona para todas as ferramentas |

2214 2222 

2215O exemplo abaixo substitui a saída de uma chamada `Bash`. O valor de substituição corresponde à forma de saída da ferramenta `Bash`:2223O exemplo abaixo substitui a saída de uma chamada `Bash`. O valor de substituição corresponde ao formato de saída da ferramenta `Bash`:

2216 2224 

2217```json theme={null}2225```json theme={null}

2218{2226{


2230```2238```

2231 2239 

2232<Warning>2240<Warning>

2233 `updatedToolOutput` apenas muda o que Claude vê. A ferramenta já foi executada no momento em que o hook dispara, então quaisquer arquivos escritos, comandos executados ou solicitações de rede enviadas já tiveram efeito. Telemetria como spans de ferramentas OpenTelemetry e eventos de análise também capturam a saída original antes do hook ser executado. Para impedir ou modificar uma chamada de ferramenta antes de ser executada, use um hook [PreToolUse](#pretooluse) em vez disso.2241 `updatedToolOutput` altera apenas o que o Claude vê. A ferramenta já foi executada quando o hook é disparado, portanto quaisquer arquivos gravados, comandos executados ou requisições de rede enviadas já surtiram efeito. A telemetria, como spans de ferramentas do OpenTelemetry e eventos de análise, também captura a saída original antes de o hook ser executado. Para impedir ou modificar uma chamada de ferramenta antes de ela ser executada, use um hook [PreToolUse](#pretooluse).

2234 2242 

2235 O valor de substituição deve corresponder à forma de saída da ferramenta. Ferramentas integradas retornam objetos estruturados em vez de strings simples. Por exemplo, `Bash` retorna um objeto com campos `stdout`, `stderr`, `interrupted` e `isImage`. Para ferramentas integradas, um valor que não corresponde ao esquema de saída da ferramenta é ignorado e a saída original é usada. A saída de ferramentas MCP é passada sem validação de esquema. Remover detalhes de erro que Claude precisa pode fazer com que ele prossiga em uma suposição falsa.2243 O valor de substituição deve corresponder ao formato de saída da ferramenta. As ferramentas integradas retornam objetos estruturados em vez de strings simples. Por exemplo, `Bash` retorna um objeto com os campos `stdout`, `stderr`, `interrupted` e `isImage`. Para ferramentas integradas, um valor que não corresponde ao esquema de saída da ferramenta é ignorado e a saída original é usada. A saída de ferramentas MCP é repassada sem validação de esquema. Remover detalhes de erro de que o Claude precisa pode fazê-lo prosseguir com base em uma suposição falsa.

2236</Warning>2244</Warning>

2237 2245 

2238<h4 id="annotate-a-result-for-the-auto-mode-classifier">2246<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2239 Anotar um resultado para o classificador de modo automático2247 Anotar um resultado para o classificador do modo auto

2240</h4>2248</h4>

2241 2249 

2242Retorne `classifierContext` para enviar uma nota breve sobre o resultado da chamada de ferramenta para o classificador de [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) em vez de para Claude. O classificador [nunca recebe resultados de ferramentas em si](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), então este campo é a forma suportada de dizer algo sobre o que uma chamada retornou antes de revisar ações posteriores. O campo requer Claude Code v2.1.236 ou posterior.2250Retorne `classifierContext` para enviar uma nota curta sobre o resultado da chamada de ferramenta ao classificador do [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e não ao Claude. O classificador [nunca recebe os próprios resultados das ferramentas](/docs/pt/permission-modes#how-the-classifier-evaluates-actions), então este campo é a forma suportada de informá-lo sobre o que uma chamada retornou antes que ele revise ações posteriores. O campo requer Claude Code v2.1.236 ou posterior.

2243 2251 

2244O exemplo abaixo diz ao classificador de onde a saída de uma consulta veio:2252O exemplo abaixo informa ao classificador de onde veio a saída de uma consulta:

2245 2253 

2246```json theme={null}2254```json theme={null}

2247{2255{


2252}2260}

2253```2261```

2254 2262 

2255Quanto peso o classificador dá à nota depende de onde você configurou o hook:2263O peso que o classificador dá à nota depende de onde você configurou o hook:

2256 2264 

2257* **Hooks configurados em Claude Code**: para hooks de arquivos de configurações, plugins, skills e frontmatter de agente, o classificador trata a nota como contexto não verificado fornecido pela aplicação. A nota nunca estabelece intenção do usuário, e se ela afirma que você aprovou ou solicitou algo, o classificador verifica essa afirmação contra suas próprias mensagens na conversa2265* **Hooks configurados no Claude Code**: para hooks de arquivos de configurações, plugins, skills e frontmatter de agentes, o classificador trata a nota como contexto não verificado fornecido pela aplicação. A nota nunca estabelece a intenção do usuário e, se afirmar que você aprovou ou solicitou algo, o classificador verifica essa afirmação com base nas suas próprias mensagens na conversa

2258* **Callbacks Agent SDK em processo**: quando um aplicativo incorporando Claude Code registra o hook como um [callback SDK TypeScript](/docs/pt/agent-sdk/hooks) e retorna a nota durante a sessão ao vivo, o classificador pode pesar uma declaração do usuário retransmitida na nota como intenção do usuário. Tal declaração pode satisfazer um requisito de consentimento que o classificador aceitaria de uma mensagem que você envia, mas nunca levanta um bloqueio que sua própria mensagem não pudesse levantar também. Após uma sessão retomar, Claude Code trata notas restauradas como contexto não verificado. Quando hooks de ambos os grupos anotam a mesma chamada, o classificador trata a nota combinada como não verificada2266* **Callbacks in-process do Agent SDK**: quando uma aplicação que incorpora o Claude Code registra o hook como um [callback do TypeScript SDK](/docs/pt/agent-sdk/hooks) e retorna a nota durante a sessão ativa, o classificador pode considerar uma declaração do usuário repassada na nota como intenção do usuário. Tal declaração pode satisfazer um requisito de consentimento que o classificador aceitaria de uma mensagem enviada por você, mas nunca remove um bloqueio que sua própria mensagem também não conseguiria remover. Depois que uma sessão é retomada, o Claude Code trata as notas restauradas como contexto não verificado. Quando hooks de ambos os grupos anotam a mesma chamada, o classificador trata a nota combinada como não verificada

2259 2267 

2260Claude Code aplica esses limites ao entregar a nota:2268O Claude Code aplica estes limites ao entregar a nota:

2261 2269 

2262* **Comprimento**: Claude Code limita as notas para uma chamada de ferramenta a 2.000 caracteres e trunca o resto. O limite é compartilhado entre cada hook que responde a essa chamada2270* **Tamanho**: o Claude Code limita as notas de uma chamada de ferramenta a 2.000 caracteres e trunca o restante. O limite é compartilhado entre todos os hooks que respondem a essa chamada

2263* **Apenas respostas síncronas**: Claude Code ignora o campo na resposta de um hook que [é executado em segundo plano](#run-hooks-in-the-background), porque essa resposta chega após Claude Code registrar o resultado da ferramenta2271* **Somente respostas síncronas**: o Claude Code ignora o campo na resposta de um hook que [é executado em segundo plano](#run-hooks-in-the-background), porque essa resposta chega depois que o Claude Code registra o resultado da ferramenta

2264* **Chamadas que o classificador não registra**: a transcrição do classificador omite buscas somente leitura como leituras de arquivo e pesquisas. Claude Code descarta uma nota anexada a uma dessas chamadas2272* **Chamadas que o classificador não registra**: a transcrição do classificador omite consultas somente leitura, como leituras de arquivos e buscas. O Claude Code descarta uma nota anexada a uma dessas chamadas

2265* **Interação com reescritas**: quando a nota descreve saída que você está substituindo com `updatedToolOutput`, retorne ambos os campos na mesma resposta do hook. Claude Code descarta a nota se essa reescrita for rejeitada ou outra reescrita do hook a substituir. Claude Code entrega uma nota que você retorna sem uma reescrita mesmo quando outro hook reescreve a saída2273* **Interação com reescritas**: quando a nota descreve uma saída que você está substituindo com `updatedToolOutput`, retorne ambos os campos na mesma resposta do hook. O Claude Code descarta a nota se essa reescrita for rejeitada ou se a reescrita de outro hook a substituir. O Claude Code entrega uma nota que você retorna sem reescrita mesmo quando outro hook reescreve a saída

2266 2274 

2267<Warning>2275<Warning>

2268 O classificador lê conteúdo que você coloca em `classifierContext` como informação do aplicativo hospedando a sessão, então não copie saída de ferramenta não confiável ou texto de terceiros nele. Mantenha a nota para uma afirmação breve sobre esta uma chamada, como um fato sobre sua origem ou uma declaração do usuário sobre ela; não use o campo para entregar mensagens não relacionadas ou um fluxo de eventos.2276 O classificador lê o conteúdo que você coloca em `classifierContext` como informação da aplicação que hospeda a sessão, portanto não copie saídas de ferramentas não confiáveis ou texto de terceiros para ele. Limite a nota a uma afirmação curta sobre essa única chamada, como um fato sobre sua origem ou uma declaração do usuário a respeito dela; não use o campo para entregar mensagens não relacionadas ou um fluxo de eventos.

2269</Warning>2277</Warning>

2270 2278 

2271<h3 id="posttoolusefailure">2279<h3 id="posttoolusefailure">

2272 PostToolUseFailure2280 PostToolUseFailure

2273</h3>2281</h3>

2274 2282 

2275Executa quando uma ferramenta que começou a executar falha: a ferramenta lançou um erro, ou uma ferramenta MCP retornou um resultado de erro. Use isso para registrar falhas, enviar alertas ou fornecer feedback corretivo ao Claude.2283É executado quando uma ferramenta que começou a ser executada falha: a ferramenta lançou um erro ou uma ferramenta MCP retornou um resultado de erro. Use-o para registrar falhas em log, enviar alertas ou fornecer feedback corretivo ao Claude.

2276 2284 

2277Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2285Faz correspondência pelo nome da ferramenta, com os mesmos valores de PreToolUse.

2278 2286 

2279<Note>2287<Note>

2280 Este evento não dispara para chamadas de ferramenta rejeitadas antes da execução: um nome de ferramenta desconhecido, entrada que falha na validação de esquema ou específica da ferramenta, ou uma negação de permissão. Rejeições de validação são retornadas como resultados `tool_use_error` e acontecem antes dos hooks serem executados, então não disparam nem `PreToolUse` nem `PostToolUseFailure`. Negações de permissão disparam `PreToolUse` mas não este evento; veja [PermissionDenied](#permissiondenied).2288 Este evento não é disparado para chamadas de ferramenta rejeitadas antes da execução: um nome de ferramenta desconhecido, uma entrada que falha na validação de esquema ou específica da ferramenta, ou uma negação de permissão. As rejeições de validação são retornadas como resultados `tool_use_error` e ocorrem antes da execução dos hooks, portanto não disparam nem `PreToolUse` nem `PostToolUseFailure`. As negações de permissão disparam `PreToolUse`, mas não este evento; consulte [PermissionDenied](#permissiondenied).

2281</Note>2289</Note>

2282 2290 

2283<h4 id="posttoolusefailure-input">2291<h4 id="posttoolusefailure-input">

2284 Entrada PostToolUseFailure2292 Entrada do PostToolUseFailure

2285</h4>2293</h4>

2286 2294 

2287Hooks PostToolUseFailure recebem os mesmos campos `tool_name` e `tool_input` que PostToolUse, junto com informações de erro como campos de nível superior. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Por exemplo, um comando `npm test` falhado pode entregar:2295Os hooks PostToolUseFailure recebem os mesmos campos `tool_name` e `tool_input` que o PostToolUse, junto com informações de erro como campos de nível superior. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input). Por exemplo, um comando `npm test` com falha pode entregar:

2288 2296 

2289```json theme={null}2297```json theme={null}

2290{2298{


2307 2315 

2308| Campo | Descrição |2316| Campo | Descrição |

2309| :- | :- |2317| :- | :- |

2310| `error` | String descrevendo o que deu errado. O formato depende da ferramenta que falhou |2318| `error` | String que descreve o que deu errado. O formato depende da ferramenta que falhou |

2311| `is_interrupt` | Booleano opcional. True quando a falha chegou ao Claude Code como um aborto em vez de um erro que a ferramenta relatou. Cancelar uma ferramenta em execução não dispara este hook; o resultado da ferramenta carrega a mensagem de interrupção em vez disso |2319| `is_interrupt` | Booleano opcional. Verdadeiro quando a falha chegou ao Claude Code como uma interrupção, e não como um erro relatado pela ferramenta. Cancelar uma ferramenta em execução não dispara este hook; em vez disso, o resultado da ferramenta contém a mensagem de interrupção |

2312| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui tempo gasto em prompts de permissão e hooks PreToolUse |2320| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui o tempo gasto em prompts de permissão e em hooks PreToolUse |

2313 2321 

2314A string `error` é geralmente o mesmo texto que Claude recebe como resultado da ferramenta falhada. Seu formato varia por ferramenta e falha. Chave seu hook em `tool_name`, `is_interrupt` e a primeira linha `Exit code N`; trate o resto da string como texto de exibição, não um formato estável.2322A string `error` geralmente é o mesmo texto que o Claude recebe como resultado da ferramenta que falhou. Seu formato varia conforme a ferramenta e a falha. Baseie seu hook em `tool_name`, `is_interrupt` e na primeira linha `Exit code N`; trate o restante da string como texto de exibição, não como um formato estável.

2315 2323 

2316* Para Bash e PowerShell, um comando que foi executado e saiu produz uma primeira linha `Exit code N`, depois qualquer saída que o comando produziu como um bloco com stdout e stderr intercalados2324* Para Bash e PowerShell, um comando que foi executado e encerrado produz uma primeira linha `Exit code N`, seguida de qualquer saída que o comando produziu como um único bloco com stdout e stderr intercalados

2317* Um payload também pode carregar uma mensagem de falha simples sem linha de código de saída, quando Claude Code não pôde iniciar o próprio processo de shell2325* Um payload também pode conter uma mensagem de falha simples sem linha de código de saída, quando o Claude Code não conseguiu iniciar o próprio processo do shell

2318* Claude Code trunca no meio strings longas em torno de um marcador `... [N characters truncated] ...`, e pode inserir linhas suas próprias, como `Command timed out after 2m 0s`2326* O Claude Code trunca strings longas no meio em torno de um marcador `... [N characters truncated] ...` e pode inserir linhas próprias, como `Command timed out after 2m 0s`

2319 2327 

2320<h4 id="posttoolusefailure-decision-control">2328<h4 id="posttoolusefailure-decision-control">

2321 Controle de decisão PostToolUseFailure2329 Controle de decisão do PostToolUseFailure

2322</h4>2330</h4>

2323 2331 

2324Hooks `PostToolUseFailure` podem fornecer contexto ao Claude após uma falha de ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2332Os hooks `PostToolUseFailure` podem fornecer contexto ao Claude após uma falha de ferramenta. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:

2325 2333 

2326| Campo | Descrição |2334| Campo | Descrição |

2327| :- | :- |2335| :- | :- |

2328| `additionalContext` | String adicionada ao contexto do Claude junto com o erro. Veja [Adicionar contexto para Claude](#add-context-for-claude) |2336| `additionalContext` | String adicionada ao contexto do Claude junto com o erro. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

2329 2337 

2330```json theme={null}2338```json theme={null}

2331{2339{


2340 PostToolBatch2348 PostToolBatch

2341</h3>2349</h3>

2342 2350 

2343Executa uma vez após cada chamada de ferramenta em um lote ter sido resolvida, antes de Claude Code enviar a próxima solicitação para o modelo. `PostToolUse` dispara uma vez por ferramenta, o que significa que dispara concorrentemente quando Claude faz chamadas de ferramenta paralelas. `PostToolBatch` dispara exatamente uma vez com o lote completo, então é o lugar certo para injetar contexto que depende do conjunto de ferramentas que foram executadas em vez de em qualquer ferramenta única. Não há matcher para este evento.2351É executado uma vez depois que todas as chamadas de ferramenta de um lote foram resolvidas, antes de o Claude Code enviar a próxima requisição ao modelo. `PostToolUse` é disparado uma vez por ferramenta, o que significa que é disparado simultaneamente quando o Claude faz chamadas de ferramenta em paralelo. `PostToolBatch` é disparado exatamente uma vez com o lote completo, portanto é o lugar certo para injetar contexto que depende do conjunto de ferramentas executadas, e não de uma única ferramenta. Não há matcher para este evento.

2344 2352 

2345<h4 id="posttoolbatch-input">2353<h4 id="posttoolbatch-input">

2346 Entrada PostToolBatch2354 Entrada do PostToolBatch

2347</h4>2355</h4>

2348 2356 

2349Além dos [campos de entrada comuns](#common-input-fields), hooks PostToolBatch recebem `tool_calls`, um array descrevendo cada chamada de ferramenta no lote:2357Além dos [campos de entrada comuns](#common-input-fields), os hooks PostToolBatch recebem `tool_calls`, um array que descreve cada chamada de ferramenta no lote:

2350 2358 

2351```json theme={null}2359```json theme={null}

2352{2360{


2372}2380}

2373```2381```

2374 2382 

2375`tool_response` contém o mesmo conteúdo que o modelo recebe no bloco `tool_result` correspondente. O valor é uma string serializada ou array de bloco de conteúdo, exatamente como a ferramenta o emitiu. Para `Read`, isso significa texto com prefixo de número de linha em vez de conteúdo de arquivo bruto. Respostas podem ser grandes, então analise apenas os campos que você precisa.2383`tool_response` contém o mesmo conteúdo que o modelo recebe no bloco `tool_result` correspondente. O valor é uma string serializada ou um array de blocos de conteúdo, exatamente como a ferramenta o emitiu. Para `Read`, isso significa texto prefixado com números de linha em vez do conteúdo bruto do arquivo. As respostas podem ser grandes, portanto analise apenas os campos de que você precisa.

2376 2384 

2377<Note>2385<Note>

2378 A forma `tool_response` difere da de `PostToolUse`. `PostToolUse` passa o objeto `Output` estruturado da ferramenta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` passa o conteúdo `tool_result` serializado que o modelo vê.2386 O formato de `tool_response` difere do de `PostToolUse`. `PostToolUse` passa o objeto `Output` estruturado da ferramenta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` passa o conteúdo serializado de `tool_result` que o modelo vê.

2379</Note>2387</Note>

2380 2388 

2381<h4 id="posttoolbatch-decision-control">2389<h4 id="posttoolbatch-decision-control">

2382 Controle de decisão PostToolBatch2390 Controle de decisão do PostToolBatch

2383</h4>2391</h4>

2384 2392 

2385Hooks `PostToolBatch` podem injetar contexto para Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2393Os hooks `PostToolBatch` podem injetar contexto para o Claude. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:

2386 2394 

2387| Campo | Descrição |2395| Campo | Descrição |

2388| :- | :- |2396| :- | :- |

2389| `additionalContext` | String de contexto injetada uma vez antes da próxima chamada do modelo. Veja [Adicionar contexto para Claude](#add-context-for-claude) para detalhes de entrega, o que colocar nela e como sessões retomadas lidam com valores passados |2397| `additionalContext` | String de contexto injetada uma vez antes da próxima chamada ao modelo. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) para detalhes de entrega, o que incluir e como sessões retomadas lidam com valores anteriores |

2390 2398 

2391```json theme={null}2399```json theme={null}

2392{2400{


2397}2405}

2398```2406```

2399 2407 

2400Retornar `decision: "block"` ou `continue: false` para o loop agentico antes da próxima chamada do modelo. A mensagem de bloqueio vem do JSON `reason` ou `stopReason`, ou de stderr ao sair com 2. Você a vê como um aviso na transcrição, e ela fica na conversa, então Claude a vê quando a conversa continua.2408Retornar `decision: "block"` ou `continue: false` interrompe o loop agêntico antes da próxima chamada ao modelo. A mensagem de bloqueio vem do `reason` ou `stopReason` do JSON, ou do stderr no código de saída 2. Você a vê como um aviso na transcrição, e ela permanece na conversa, então o Claude a vê quando a conversa continua.

2401 2409 

2402<h3 id="permissiondenied">2410<h3 id="permissiondenied">

2403 PermissionDenied2411 PermissionDenied

2404</h3>2412</h3>

2405 2413 

2406Executa quando [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nega uma chamada de ferramenta, incluindo quando nega sem um veredicto do classificador porque [uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou sua resposta não foi analisada. Este hook dispara apenas em modo automático: não é executado quando você nega manualmente um diálogo de permissão, quando um hook `PreToolUse` bloqueia uma chamada, ou quando uma regra `deny` corresponde. Use-o para registrar negações, ajustar configuração ou dizer ao modelo que pode tentar novamente a chamada de ferramenta.2414É executado quando o [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) nega uma chamada de ferramenta, inclusive quando nega sem um veredito do classificador porque [uma verificação de segurança separada do modo auto recusou a própria requisição do classificador](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) ou porque a resposta dele não pôde ser analisada. Este hook só é disparado no modo auto: ele não é executado quando você nega manualmente uma caixa de diálogo de permissão, quando um hook `PreToolUse` bloqueia uma chamada ou quando uma regra `deny` corresponde. Use-o para registrar negações em log, ajustar a configuração ou informar ao modelo que ele pode tentar novamente a chamada de ferramenta.

2407 2415 

2408Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2416Faz correspondência pelo nome da ferramenta, com os mesmos valores de PreToolUse.

2409 2417 

2410<h4 id="permissiondenied-input">2418<h4 id="permissiondenied-input">

2411 Entrada PermissionDenied2419 Entrada do PermissionDenied

2412</h4>2420</h4>

2413 2421 

2414Além dos [campos de entrada comuns](#common-input-fields), hooks PermissionDenied recebem `tool_name`, `tool_input`, `tool_use_id` e `reason`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input).2422Além dos [campos de entrada comuns](#common-input-fields), os hooks PermissionDenied recebem `tool_name`, `tool_input`, `tool_use_id` e `reason`. Para uma ferramenta MCP, eles também recebem o objeto [`mcp_server`](#pretooluse-input).

2415 2423 

2416```json theme={null}2424```json theme={null}

2417{2425{


2432 2440 

2433| Campo | Descrição |2441| Campo | Descrição |

2434| :- | :- |2442| :- | :- |

2435| `reason` | O motivo da negação. Para um veredicto do classificador, na maioria das sessões ele nomeia a regra correspondente entre colchetes, como `[Data Exfiltration]`; veja [Revisar negações](/docs/pt/auto-mode-config#review-denials) para as outras formas. Para uma [negação sem veredicto](#permissiondenied-decision-control), começa com `Auto mode could not evaluate this action and is blocking it for safety`. Para uma negação porque o modelo do classificador não estava disponível, é o texto fixo `Classifier unavailable` |2443| `reason` | O motivo da negação. Para um veredito do classificador, na maioria das sessões ele nomeia a regra correspondente entre colchetes, como `[Data Exfiltration]`; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials) para as outras formas. Para uma [negação sem veredito](#permissiondenied-decision-control), ele começa com `Auto mode could not evaluate this action and is blocking it for safety`. Para uma negação porque o modelo classificador estava indisponível, é o texto fixo `Classifier unavailable` |

2436 2444 

2437<h4 id="permissiondenied-decision-control">2445<h4 id="permissiondenied-decision-control">

2438 Controle de decisão PermissionDenied2446 Controle de decisão do PermissionDenied

2439</h4>2447</h4>

2440 2448 

2441Hooks PermissionDenied podem dizer ao modelo que pode tentar novamente a chamada de ferramenta negada. Retorne um objeto JSON com `hookSpecificOutput.retry` definido como `true`:2449Os hooks PermissionDenied podem informar ao modelo que ele pode tentar novamente a chamada de ferramenta negada. Retorne um objeto JSON com `hookSpecificOutput.retry` definido como `true`:

2442 2450 

2443```json theme={null}2451```json theme={null}

2444{2452{


2449}2457}

2450```2458```

2451 2459 

2452Quando `retry` é `true`, Claude Code adiciona uma mensagem à conversa dizendo ao modelo que pode tentar novamente a chamada de ferramenta. Claude Code não reverte a negação em si. Se seu hook não retornar JSON, ou retornar `retry: false`, a negação permanece e o modelo recebe a mensagem de rejeição original.2460Quando `retry` é `true`, o Claude Code adiciona uma mensagem à conversa informando ao modelo que ele pode tentar novamente a chamada de ferramenta. O próprio Claude Code não reverte a negação. Se o seu hook não retornar JSON, ou retornar `retry: false`, a negação se mantém e o modelo recebe a mensagem de rejeição original.

2453 2461 

2454Claude Code ignora `retry: true` quando o classificador produziu [nenhum veredicto sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action): sua resposta não foi analisada, ou uma verificação de segurança separada do modo automático recusou a solicitação do classificador. Para essas negações, Claude Code já diz ao modelo na mensagem de rejeição se deve tentar novamente mais tarde ou prosseguir.2462O Claude Code ignora `retry: true` quando o classificador não produziu [nenhum veredito sobre a ação](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action): sua resposta não pôde ser analisada, ou uma verificação de segurança separada do modo auto recusou a própria requisição do classificador. Para essas negações, o Claude Code já informa ao modelo, na mensagem de rejeição, se deve tentar novamente mais tarde ou seguir em frente.

2455 2463 

2456<h3 id="notification">2464<h3 id="notification">

2457 Notification2465 Notification

2458</h3>2466</h3>

2459 2467 

2460Executa quando Claude Code envia notificações. Corresponde ao tipo de notificação. Omita o matcher para executar hooks para todos os tipos de notificação.2468É executado quando o Claude Code envia notificações. Faz correspondência pelo tipo de notificação. Omita o matcher para executar hooks para todos os tipos de notificação.

2461 2469 

2462Você recebe esses eventos de hook mesmo com notificações de desktop desativadas: a configuração `preferredNotifChannel`, incluindo `notifications_disabled`, muda apenas como você é alertado, não se seu hook é executado.2470Você recebe esses eventos de hook mesmo com as notificações da área de trabalho desativadas: a configuração `preferredNotifChannel`, incluindo `notifications_disabled`, altera apenas como você é alertado, não se o seu hook é executado.

2463 2471 

2464| Matcher | Quando é disparado |2472| Matcher | Quando é disparado |

2465| :- | :- |2473| :- | :- |

2466| `permission_prompt` | Claude precisa de sua aprovação para usar uma ferramenta ou a [solicitação de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox, e o prompt esperou cerca de seis segundos |2474| `permission_prompt` | O Claude precisa que você aprove o uso de uma ferramenta ou uma [requisição de rede](/docs/pt/sandboxing#network-isolation) de um comando em sandbox, e o prompt está aguardando há cerca de seis segundos |

2467| `idle_prompt` | Claude terminou de responder cerca de 60 segundos atrás e você não digitou desde então |2475| `idle_prompt` | O Claude terminou de responder há cerca de 60 segundos e você não digitou nada desde então |

2468| `auth_success` | Autenticação é concluída |2476| `auth_success` | A autenticação é concluída |

2469| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digitou por cerca de seis segundos |2477| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digitou nada por cerca de seis segundos |

2470| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL do navegador e você não digitou por cerca de seis segundos |2478| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL no navegador e você não digitou nada por cerca de seis segundos |

2471| `elicitation_complete` | Um servidor MCP relata que uma [elicitação de modo URL](#elicitation-input) está completa |2479| `elicitation_complete` | Um servidor MCP informa que uma [elicitação no modo URL](#elicitation-input) foi concluída |

2472| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta para o servidor |2480| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta ao servidor |

2473| `agent_needs_input` | Uma sessão de fundo começa a esperar sua entrada enquanto [visualização de agente](/docs/pt/agent-view) está aberta em um terminal. Também dispara quando uma sessão de terminal mostra a você uma [pergunta de configuração de terminal de colega de equipe de agente](/docs/pt/agent-teams#choose-a-display-mode) ou aviso de modo automático sobre [cobranças de solicitação do classificador](/docs/pt/auto-mode-classifier-billing) e você não digitou por cerca de seis segundos |2481| `agent_needs_input` | Uma sessão em segundo plano começa a aguardar sua entrada enquanto a [visualização de agentes](/docs/pt/agent-view) está aberta em um terminal. Também é disparado quando uma sessão de terminal mostra a você uma [pergunta de configuração de terminal de um colega de equipe de agentes](/docs/pt/agent-teams#choose-a-display-mode) ou o aviso do modo auto sobre [cobranças por requisições do classificador](/docs/pt/auto-mode-classifier-billing) e você não digitou nada por cerca de seis segundos |

2474| `agent_completed` | Uma sessão de fundo termina ou falha. Dispara apenas enquanto [visualização de agente](/docs/pt/agent-view) está aberta em um terminal |2482| `agent_completed` | Uma sessão em segundo plano termina ou falha. É disparado somente enquanto a [visualização de agentes](/docs/pt/agent-view) está aberta em um terminal |

2475| `quota_auto_resume_fired` | Claude Code continua sua tarefa após um limite de uso de claude.ai pausá-la: na redefinição, ou mais cedo quando algo que você faz em Claude Code durante a espera, como adicionar créditos de uso, atualizar seu plano ou mudar modelos, torna o uso disponível novamente, com a [exceção de configuração de modelo](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) |2483| `quota_auto_resume_fired` | O Claude Code continua sua tarefa depois que um limite de uso do claude.ai a pausou: na redefinição, ou antes quando algo que você faz no Claude Code durante a espera, como adicionar créditos de uso, fazer upgrade do seu plano ou trocar de modelo, torna o uso disponível novamente, com a [exceção da configuração de modelo](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset) |

2476| `quota_auto_resume_stale` | Um limite de uso de claude.ai foi redefinido enquanto seu computador dormia por mais de cerca de 30 minutos. Claude Code espera que você pressione `Enter` em vez de continuar. Após um sono mais curto, ele continua e dispara `quota_auto_resume_fired` em vez disso |2484| `quota_auto_resume_stale` | Um limite de uso do claude.ai foi redefinido enquanto seu computador estava em suspensão por mais de cerca de 30 minutos. O Claude Code aguarda você pressionar `Enter` em vez de continuar. Após uma suspensão mais curta, ele continua e dispara `quota_auto_resume_fired` |

2477| `quota_auto_resume_disabled` | Claude Code termina sua espera por um limite de uso de claude.ai sem continuar sua tarefa: [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit) foi desativado ou a redefinição se moveu mais de 24 horas durante uma espera que Claude Code iniciou por conta própria, a tarefa continuada continuou atingindo o limite, ou a continuação foi bloqueada antes de chegar ao modelo. Não dispara quando você pressiona `Esc` ou `Ctrl+C`, ou escolhe **Don't continue automatically** |2485| `quota_auto_resume_disabled` | O Claude Code encerra sua espera por um limite de uso do claude.ai sem continuar sua tarefa: [`autoContinueAtUsageLimit`](/docs/pt/settings-reference#autocontinueatusagelimit) foi desativado ou a redefinição passou para mais de 24 horas adiante durante uma espera que o Claude Code iniciou por conta própria, a tarefa continuada continuou atingindo o limite, ou a continuação foi bloqueada antes de chegar ao modelo. Não é disparado quando você pressiona `Esc` ou `Ctrl+C`, ou escolhe **Don't continue automatically** |

2478 2486 

2479Os tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` requerem Claude Code v2.1.234 ou posterior.2487Os tipos `quota_auto_resume_fired`, `quota_auto_resume_stale` e `quota_auto_resume_disabled` requerem Claude Code v2.1.234 ou posterior.

2480 2488 

2481Em sessões de terminal, `permission_prompt` para a solicitação de rede de um comando em sandbox requer Claude Code v2.1.246 ou posterior.2489Em sessões de terminal, `permission_prompt` para a requisição de rede de um comando em sandbox requer Claude Code v2.1.246 ou posterior.

2482 2490 

2483`agent_needs_input` para a pergunta de configuração de terminal de um colega de equipe requer Claude Code v2.1.248 ou posterior.2491`agent_needs_input` para a pergunta de configuração de terminal de um colega de equipe requer Claude Code v2.1.248 ou posterior.

2484 2492 

2485<Note>2493<Note>

2486 Os tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` compartilham seu tempo com notificações de desktop, então em sessões de terminal você só os vê quando parece que você está longe do terminal:2494 Os tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` compartilham seu tempo com as notificações da área de trabalho, portanto, em sessões de terminal, você só os vê quando parece estar longe do terminal:

2487 2495 

2488 * Espere `permission_prompt` uma vez que você não digitou por cerca de seis segundos. O temporizador começa quando o prompt de permissão aparece, e cada pressionamento de tecla o adia. Para executar um hook imediatamente quando Claude pede permissão para usar uma ferramenta, use [PermissionRequest](#permissionrequest) em vez disso.2496 * Espere `permission_prompt` quando você não tiver digitado nada por cerca de seis segundos. O temporizador começa quando o prompt de permissão aparece, e cada tecla pressionada o adia. Para executar um hook imediatamente quando o Claude pede permissão para usar uma ferramenta, use [PermissionRequest](#permissionrequest).

2489 * Espere `idle_prompt` cerca de 60 segundos após Claude terminar de responder, e apenas se você não digitou desde então. Claude Code não envia `idle_prompt` enquanto espera um limite de uso de claude.ai ser redefinido. Quando a espera termina por conta própria, um dos tipos `quota_auto_resume_*` dispara em vez disso.2497 * Espere `idle_prompt` cerca de 60 segundos depois que o Claude terminar de responder, e somente se você não tiver digitado nada desde então e nenhum agente em segundo plano, como um [subagente](/docs/pt/sub-agents) em segundo plano, ainda estiver em execução. O Claude Code não envia `idle_prompt` enquanto aguarda a redefinição de um limite de uso do claude.ai. Quando a espera termina por conta própria, um dos tipos `quota_auto_resume_*` é disparado.

2490 * Espere `elicitation_dialog` para um formulário de elicitação, ou `elicitation_url_dialog` para uma solicitação de URL do navegador, uma vez que você não digitou por cerca de seis segundos. Ambos compartilham o mesmo portão de seis segundos que `permission_prompt`: o temporizador começa quando o diálogo aparece, e cada pressionamento de tecla o adia.2498 * Espere `elicitation_dialog` para um formulário de elicitação, ou `elicitation_url_dialog` para uma solicitação de URL do navegador, quando você não tiver digitado nada por cerca de seis segundos. Ambos compartilham o mesmo limite de seis segundos de `permission_prompt`: o temporizador começa quando a caixa de diálogo aparece, e cada tecla pressionada o adia.

2491 2499 

2492 Uma solicitação de permissão ou elicitação que chega enquanto outro diálogo está na tela mantém o mesmo portão de seis segundos, cronometrado a partir de quando a solicitação chega. Sua notificação pode alcançá-lo enquanto a solicitação ainda espera atrás do diálogo aberto.2500 Uma solicitação de permissão ou elicitação que chega enquanto outra caixa de diálogo está na tela mantém o mesmo limite de seis segundos, contado a partir da chegada da solicitação. Sua notificação pode chegar até você enquanto a solicitação ainda aguarda atrás da caixa de diálogo aberta.

2493</Note>2501</Note>

2494 2502 

2495Claude Code cronometra `permission_prompt` diferentemente em sessões onde envia solicitações de permissão para o callback [`canUseTool`](/docs/pt/agent-sdk/user-input) do Agent SDK, que é como Claude Desktop e a extensão VS Code hospedam Claude Code:2503O Claude Code cronometra `permission_prompt` de forma diferente em sessões nas quais envia solicitações de permissão ao [callback `canUseTool`](/docs/pt/agent-sdk/user-input) do Agent SDK, que é como o Claude Desktop e a extensão do VS Code hospedam o Claude Code:

2496 2504 

2497* Espere `permission_prompt` cerca de seis segundos após Claude pedir permissão. Claude Code não o adia enquanto você digita.2505* Espere `permission_prompt` cerca de seis segundos depois que o Claude pede permissão. O Claude Code não o adia enquanto você digita.

2498* Se você ou um hook [PermissionRequest](#permissionrequest) responder mais cedo, Claude Code não executa `permission_prompt`.2506* Se você ou um hook [PermissionRequest](#permissionrequest) responder antes, o Claude Code não executa `permission_prompt`.

2499* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.2507* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.

2500 2508 

2501Antes da v2.1.233, `permission_prompt` não disparava nessas sessões.2509Antes da v2.1.233, `permission_prompt` não era disparado nessas sessões.

2502 2510 

2503Use matchers separados para executar diferentes manipuladores dependendo do tipo de notificação. Esta configuração dispara um script de alerta específico de permissão quando Claude precisa de aprovação de permissão e uma notificação diferente quando Claude está ocioso:2511Use matchers separados para executar handlers diferentes dependendo do tipo de notificação. Esta configuração aciona um script de alerta específico de permissão quando o Claude precisa de aprovação de permissão e uma notificação diferente quando o Claude está ocioso:

2504 2512 

2505```json theme={null}2513```json theme={null}

2506{2514{


2530```2538```

2531 2539 

2532<h4 id="notification-input">2540<h4 id="notification-input">

2533 Entrada Notification2541 Entrada do Notification

2534</h4>2542</h4>

2535 2543 

2536Além dos [campos de entrada comuns](#common-input-fields), hooks Notification recebem `message` com o texto de notificação, um `title` opcional e `notification_type` indicando qual tipo disparou.2544Além dos [campos de entrada comuns](#common-input-fields), os hooks Notification recebem `message` com o texto da notificação, um `title` opcional e `notification_type` indicando qual tipo foi disparado.

2537 2545 

2538```json theme={null}2546```json theme={null}

2539{2547{


2547}2555}

2548```2556```

2549 2557 

2550Hooks Notification não podem bloquear ou modificar notificações. Claude Code descarta seus campos `systemMessage` e `continue` mas ainda emite [`terminalSequence`](#emit-terminal-notifications), que é o que o exemplo de notificação de desktop depende. Hooks Notification são destinados a efeitos colaterais como encaminhar a notificação para um serviço externo.2558Os hooks Notification não podem bloquear nem modificar notificações. O Claude Code descarta seus campos `systemMessage` e `continue`, mas ainda emite [`terminalSequence`](#emit-terminal-notifications), que é o que o exemplo de notificação da área de trabalho utiliza. Os hooks Notification destinam-se a efeitos colaterais, como encaminhar a notificação para um serviço externo.

2551 2559 

2552<h3 id="subagentstart">2560<h3 id="subagentstart">

2553 SubagentStart2561 SubagentStart

2554</h3>2562</h3>

2555 2563 

2556Executa quando Claude gera um subagente com a ferramenta Agent, quando Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e cada vez que um colega de equipe de [agente de equipe](/docs/pt/agent-teams) em processo lida com uma nova mensagem. Suporta matchers para filtrar por nome de tipo de agente. Para agentes integrados, este é o nome do agente como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.2564É executado quando o Claude cria um subagente com a ferramenta Agent, quando o Claude [retoma um subagente](/docs/pt/sub-agents#resume-subagents) e sempre que um colega de uma [equipe de agentes](/docs/pt/agent-teams) in-process processa uma nova mensagem. Suporta matchers para filtrar pelo nome do tipo de agente. Para agentes integrados, é o nome do agente, como `general-purpose`, `Explore` ou `Plan`. Para [subagentes personalizados](/docs/pt/sub-agents), é o campo `name` do frontmatter do agente, não o nome do arquivo.

2557 2565 

2558Para subagentes enviados por um [plugin](/docs/pt/plugins/overview), o tipo de agente é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome de frontmatter simples. O dois-pontos coloca um nome com escopo de plugin no caminho de expressão regular, então ancorize o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.2566Para subagentes fornecidos por um [plugin](/docs/pt/plugins/overview), o tipo de agente é o identificador com escopo de plugin, como `my-plugin:reviewer`, não o nome simples do frontmatter. Os dois-pontos colocam um nome com escopo de plugin no caminho de expressão regular, portanto ancore o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.

2559 2567 

2560<h4 id="subagentstart-input">2568<h4 id="subagentstart-input">

2561 Entrada SubagentStart2569 Entrada do SubagentStart

2562</h4>2570</h4>

2563 2571 

2564Além dos [campos de entrada comuns](#common-input-fields), hooks SubagentStart recebem `agent_id` com o identificador único para o subagente e `agent_type` com o nome do agente que o matcher filtra.2572Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStart recebem `agent_id` com o identificador único do subagente e `agent_type` com o nome do agente pelo qual o matcher filtra.

2565 2573 

2566```json theme={null}2574```json theme={null}

2567{2575{


2574}2582}

2575```2583```

2576 2584 

2577Hooks SubagentStart não podem bloquear a criação de subagente, mas podem injetar contexto no subagente. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:2585Os hooks SubagentStart não podem bloquear a criação de subagentes, mas podem injetar contexto no subagente. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:

2578 2586 

2579| Campo | Descrição |2587| Campo | Descrição |

2580| :- | :- |2588| :- | :- |

2581| `additionalContext` | String adicionada ao contexto do subagente no início de sua conversa, antes de seu primeiro prompt. Veja [Adicionar contexto para Claude](#add-context-for-claude) |2589| `additionalContext` | String adicionada ao contexto do subagente no início de sua conversa, antes de seu primeiro prompt. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

2582 2590 

2583```json theme={null}2591```json theme={null}

2584{2592{


2589}2597}

2590```2598```

2591 2599 

2592Quando o hook é executado novamente para o mesmo subagente, Claude Code injeta o contexto retornado apenas quando o contexto do subagente não já contém a cópia de uma execução anterior. A cópia injetada no lançamento permanece no lugar, deixando o [cache de prompt](/docs/pt/prompt-caching#subagents-and-the-cache) do subagente intacto. Após [compactação automática](/docs/pt/sub-agents#auto-compaction) descartar essa cópia, Claude Code injeta o contexto da próxima execução novamente.2600Quando o hook é executado novamente para o mesmo subagente, o Claude Code injeta o contexto retornado somente quando o contexto do subagente ainda não contém a cópia de uma execução anterior. A cópia injetada na inicialização permanece no lugar, mantendo intacto o [cache de prompt](/docs/pt/prompt-caching#subagents-and-the-cache) do subagente. Depois que a [compactação automática](/docs/pt/sub-agents#auto-compaction) descarta essa cópia, o Claude Code injeta novamente o contexto da próxima execução.

2593 2601 

2594<h3 id="subagentstop">2602<h3 id="subagentstop">

2595 SubagentStop2603 SubagentStop

2596</h3>2604</h3>

2597 2605 

2598Executa quando um subagente Claude Code terminou de responder. Corresponde ao tipo de agente, mesmos valores que SubagentStart.2606É executado quando um subagente do Claude Code termina de responder. Faz correspondência pelo tipo de agente, com os mesmos valores de SubagentStart.

2599 2607 

2600<h4 id="subagentstop-input">2608<h4 id="subagentstop-input">

2601 Entrada SubagentStop2609 Entrada do SubagentStop

2602</h4>2610</h4>

2603 2611 

2604Além dos [campos de entrada comuns](#common-input-fields), hooks SubagentStop recebem `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. O campo `agent_type` é o valor usado para filtragem de matcher. O `transcript_path` é a transcrição da sessão principal, enquanto `agent_transcript_path` é a própria transcrição do subagente armazenada em uma pasta `subagents/` aninhada. O campo `last_assistant_message` contém o conteúdo de texto da resposta final do subagente, então hooks podem acessá-lo sem analisar o arquivo de transcrição.2612Além dos [campos de entrada comuns](#common-input-fields), os hooks SubagentStop recebem `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` e `last_assistant_message`. O campo `agent_type` é o valor usado para a filtragem do matcher. O `transcript_path` é a transcrição da sessão principal, enquanto `agent_transcript_path` é a transcrição do próprio subagente, armazenada em uma pasta aninhada `subagents/`. O campo `last_assistant_message` contém o conteúdo de texto da resposta final do subagente, para que os hooks possam acessá-lo sem analisar o arquivo de transcrição.

2605 2613 

2606Nem todo evento SubagentStop vem de um subagente que Claude gerou. Claude Code também executa agentes internos para alguns de seus próprios recursos, como [sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) e [perguntas laterais `/btw`](/docs/pt/interactive-mode#side-questions-with-%2Fbtw), e SubagentStop dispara quando um desses termina também. Para esses eventos, `agent_type` é o nome do agente que a sessão em si executa, como um definido com [`--agent`](/docs/pt/cli-reference#cli-flags) ou a configuração [`agent`](/docs/pt/settings-reference#agent), e uma string vazia quando a sessão é executada sem um.2614Nem todo evento SubagentStop vem de um subagente criado pelo Claude. O Claude Code também executa agentes internos para alguns de seus próprios recursos, como [sugestões de prompt](/docs/pt/interactive-mode#prompt-suggestions) e [perguntas paralelas com `/btw`](/docs/pt/interactive-mode#side-questions-with-%2Fbtw), e o SubagentStop também é disparado quando um deles termina. Para esses eventos, `agent_type` é o nome do agente com o qual a própria sessão é executada, como um definido com [`--agent`](/docs/pt/cli-reference#cli-flags) ou com a [configuração `agent`](/docs/pt/settings-reference#agent), e uma string vazia quando a sessão é executada sem um.

2607 2615 

2608Um `matcher` que nomeia tipos de agente não corresponde a um `agent_type` vazio. Um hook cujo matcher é omitido, `""` ou `"*"`, ou é uma expressão regular que corresponde a uma string vazia, é executado para eventos com um `agent_type` vazio também.2616Um `matcher` que nomeia tipos de agente não corresponde a um `agent_type` vazio. Um hook cujo matcher é omitido, `""` ou `"*"`, ou é uma expressão regular que corresponde a uma string vazia, também é executado para eventos com `agent_type` vazio.

2609 2617 

2610No Claude Code v2.1.271 ou posterior, um subagente que é executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference) entrega seu relatório através dessa ferramenta antes de parar. O campo `last_assistant_message` então contém o texto de fechamento do subagente, se houver, que não é o relatório entregue. O relatório é a entrada `message` dessa chamada, que um hook `PreToolUse` ou `PostToolUse` correspondente a `SubagentHandback` recebe como `tool_input.message`.2618No Claude Code v2.1.271 ou posterior, um subagente executado com a ferramenta [`SubagentHandback`](/docs/pt/tools-reference) entrega seu relatório por meio dessa ferramenta antes de parar. O campo `last_assistant_message` passa então a conter o texto final do subagente, se houver, que não é o relatório entregue. O relatório é a entrada `message` dessa chamada, que um hook `PreToolUse` ou `PostToolUse` com correspondência em `SubagentHandback` recebe como `tool_input.message`.

2611 2619 

2612Hooks SubagentStop também recebem os arrays `background_tasks` e `session_crons` descritos em [entrada Stop](#stop-input). Ambos os arrays estão no escopo da sessão pai, não do subagente.2620Os hooks SubagentStop também recebem os arrays `background_tasks` e `session_crons` descritos em [Entrada do Stop](#stop-input). Ambos os arrays têm escopo na sessão pai, não no subagente.

2613 2621 

2614```json theme={null}2622```json theme={null}

2615{2623{


2628}2636}

2629```2637```

2630 2638 

2631Hooks SubagentStop usam o mesmo formato de controle de decisão que [hooks Stop](#stop-decision-control), incluindo `hookSpecificOutput.additionalContext` com `hookEventName` definido como `"SubagentStop"`, para feedback sem erro que mantém o subagente em execução. Retornar `decision: "block"` com um `reason` mantém o subagente em execução e entrega `reason` ao subagente como sua próxima instrução. Um hook que bloqueia ao sair com 2 entrega sua mensagem stderr da mesma forma. Para injetar contexto na sessão pai após um subagente retornar, use um hook [`PostToolUse`](#posttooluse) na ferramenta `Agent` em vez disso.2639Os hooks SubagentStop usam o mesmo formato de controle de decisão dos [hooks Stop](#stop-decision-control), incluindo `hookSpecificOutput.additionalContext` com `hookEventName` definido como `"SubagentStop"`, para feedback que não é de erro e que mantém o subagente em execução. Retornar `decision: "block"` com um `reason` mantém o subagente em execução e entrega `reason` ao subagente como sua próxima instrução. Um hook que bloqueia saindo com código 2 entrega sua mensagem de stderr da mesma forma. Para injetar contexto na sessão pai depois que um subagente retorna, use um hook [`PostToolUse`](#posttooluse) na ferramenta `Agent`.

2632 2640 

2633<h3 id="taskcreated">2641<h3 id="taskcreated">

2634 TaskCreated2642 TaskCreated

2635</h3>2643</h3>

2636 2644 

2637Executa quando uma tarefa está sendo criada via ferramenta `TaskCreate`. Use isso para impor convenções de nomenclatura, exigir descrições de tarefa ou impedir que certas tarefas sejam criadas. Em uma [sessão sem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability), este evento não dispara.2645É executado quando uma tarefa está sendo criada por meio da ferramenta `TaskCreate`. Use-o para impor convenções de nomenclatura, exigir descrições de tarefas ou impedir que determinadas tarefas sejam criadas. Em uma [sessão sem as ferramentas Task](/docs/pt/tools-reference#task-tool-availability), este evento não é disparado.

2638 2646 

2639Hooks TaskCreated não suportam matchers e disparam em cada ocorrência.2647Os hooks TaskCreated não suportam matchers e são disparados em todas as ocorrências.

2640 2648 

2641<h4 id="taskcreated-input">2649<h4 id="taskcreated-input">

2642 Entrada TaskCreated2650 Entrada do TaskCreated

2643</h4>2651</h4>

2644 2652 

2645Além dos [campos de entrada comuns](#common-input-fields), hooks TaskCreated recebem `task_id`, `task_subject` e opcionalmente `task_description`, `teammate_name` e `team_name`.2653Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCreated recebem `task_id`, `task_subject` e, opcionalmente, `task_description`, `teammate_name` e `team_name`.

2646 2654 

2647```json theme={null}2655```json theme={null}

2648{2656{


2660 2668 

2661| Campo | Descrição |2669| Campo | Descrição |

2662| :- | :- |2670| :- | :- |

2663| `task_id` | Identificador da tarefa sendo criada |2671| `task_id` | Identificador da tarefa que está sendo criada |

2664| `task_subject` | Título da tarefa |2672| `task_subject` | Título da tarefa |

2665| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2673| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2666| `teammate_name` | Nome do colega de equipe criando a tarefa. Pode estar ausente |2674| `teammate_name` | Nome do colega de equipe que está criando a tarefa. Pode estar ausente |

2667| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |2675| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |

2668 2676 

2669<h4 id="taskcreated-decision-control">2677<h4 id="taskcreated-decision-control">

2670 Controle de decisão TaskCreated2678 Controle de decisão do TaskCreated

2671</h4>2679</h4>

2672 2680 

2673Um hook TaskCreated pode bloquear a criação de duas maneiras. De qualquer forma, Claude Code exclui a tarefa e retorna sua mensagem ao Claude como o erro da ferramenta. Claude Code ignora `continue: false` deste evento e Claude continua trabalhando.2681Um hook TaskCreated pode bloquear a criação de duas formas. Em ambos os casos, o Claude Code exclui a tarefa e retorna sua mensagem ao Claude como o erro da ferramenta. O Claude Code ignora `continue: false` deste evento e o Claude continua trabalhando.

2674 2682 

2675* **Código de saída 2**: Claude Code retorna o texto stderr como a mensagem.2683* **Código de saída 2**: o Claude Code retorna o texto do stderr como a mensagem.

2676* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code retorna `reason` como a mensagem.2684* **JSON `{"decision": "block", "reason": "..."}`**: o Claude Code retorna `reason` como a mensagem.

2677 2685 

2678Este exemplo bloqueia tarefas cujos assuntos não seguem o formato necessário:2686Este exemplo bloqueia tarefas cujos assuntos não seguem o formato exigido:

2679 2687 

2680```bash theme={null}2688```bash theme={null}

2681#!/bin/bash2689#!/bin/bash


2694 TaskCompleted2702 TaskCompleted

2695</h3>2703</h3>

2696 2704 

2697Executa quando uma tarefa está sendo marcada como concluída. Isso dispara em duas situações: quando qualquer agente marca explicitamente uma tarefa como concluída através da ferramenta TaskUpdate, ou quando um colega de equipe de [agente de equipe](/docs/pt/agent-teams) termina seu turno com tarefas em andamento. Use isso para impor critérios de conclusão como testes passando ou verificações de lint antes de uma tarefa poder fechar.2705É executado quando uma tarefa está sendo marcada como concluída. Isso é disparado em duas situações: quando qualquer agente marca explicitamente uma tarefa como concluída por meio da ferramenta TaskUpdate, ou quando um colega de uma [equipe de agentes](/docs/pt/agent-teams) termina seu turno com tarefas em andamento. Use-o para impor critérios de conclusão, como testes ou verificações de lint aprovados, antes que uma tarefa possa ser fechada.

2698 2706 

2699Hooks TaskCompleted não suportam matchers e disparam em cada ocorrência.2707Os hooks TaskCompleted não suportam matchers e são disparados em todas as ocorrências.

2700 2708 

2701<h4 id="taskcompleted-input">2709<h4 id="taskcompleted-input">

2702 Entrada TaskCompleted2710 Entrada do TaskCompleted

2703</h4>2711</h4>

2704 2712 

2705Além dos [campos de entrada comuns](#common-input-fields), hooks TaskCompleted recebem `task_id`, `task_subject` e opcionalmente `task_description`, `teammate_name` e `team_name`.2713Além dos [campos de entrada comuns](#common-input-fields), os hooks TaskCompleted recebem `task_id`, `task_subject` e, opcionalmente, `task_description`, `teammate_name` e `team_name`.

2706 2714 

2707```json theme={null}2715```json theme={null}

2708{2716{


2721 2729 

2722| Campo | Descrição |2730| Campo | Descrição |

2723| :- | :- |2731| :- | :- |

2724| `task_id` | Identificador da tarefa sendo concluída |2732| `task_id` | Identificador da tarefa que está sendo concluída |

2725| `task_subject` | Título da tarefa |2733| `task_subject` | Título da tarefa |

2726| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2734| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2727| `teammate_name` | Nome do colega de equipe concluindo a tarefa. Pode estar ausente |2735| `teammate_name` | Nome do colega de equipe que está concluindo a tarefa. Pode estar ausente |

2728| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |2736| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |

2729 2737 

2730<h4 id="taskcompleted-decision-control">2738<h4 id="taskcompleted-decision-control">

2731 Controle de decisão TaskCompleted2739 Controle de decisão do TaskCompleted

2732</h4>2740</h4>

2733 2741 

2734Hooks TaskCompleted suportam duas maneiras de controlar a conclusão da tarefa:2742Os hooks TaskCompleted suportam duas formas de controlar a conclusão de tarefas:

2735 2743 

2736* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem stderr é retornada ao modelo como feedback.2744* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem de stderr é devolvida ao modelo como feedback.

2737* **JSON `{"continue": false, "stopReason": "..."}`**: quando um colega de equipe terminando seu turno disparou o evento, para o colega de equipe inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário. Quando a ferramenta `TaskUpdate` disparou o evento, Claude Code ignora `continue: false`; código de saída 2 ainda bloqueia a conclusão.2745* **JSON `{"continue": false, "stopReason": "..."}`**: quando um colega de equipe que termina seu turno acionou o evento, interrompe o colega completamente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário. Quando a ferramenta `TaskUpdate` acionou o evento, o Claude Code ignora `continue: false`; o código de saída 2 ainda bloqueia a conclusão.

2738 2746 

2739Este exemplo executa testes e bloqueia a conclusão da tarefa se falharem:2747Este exemplo executa testes e bloqueia a conclusão da tarefa se eles falharem:

2740 2748 

2741```bash theme={null}2749```bash theme={null}

2742#!/bin/bash2750#!/bin/bash


2756 Stop2764 Stop

2757</h3>2765</h3>

2758 2766 

2759Executa quando o agente Claude Code principal terminou de responder. Não é executado se a parada ocorreu devido a uma interrupção do usuário. Erros de API disparam [StopFailure](#stopfailure) em vez disso.2767É executado quando o agente principal do Claude Code termina de responder. Não é executado se

2768a parada ocorreu devido a uma interrupção do usuário. Erros de API disparam

2769[StopFailure](#stopfailure) em vez disso.

2760 2770 

2761<Tip>2771<Tip>

2762 O comando [`/goal`](/docs/pt/goal) é um atalho integrado para um hook Stop com escopo de sessão baseado em prompt. Use-o quando você quer que Claude continue trabalhando em direção a uma condição sem escrever configuração de hook.2772 O comando [`/goal`](/docs/pt/goal) é um atalho integrado para um hook Stop baseado em prompt com escopo de sessão. Use-o quando quiser que o Claude continue trabalhando em direção a uma condição sem escrever a configuração do hook.

2763</Tip>2773</Tip>

2764 2774 

2765<h4 id="stop-input">2775<h4 id="stop-input">

2766 Entrada Stop2776 Entrada do Stop

2767</h4>2777</h4>

2768 2778 

2769Além dos [campos de entrada comuns](#common-input-fields), hooks Stop recebem `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. O campo `stop_hook_active` é `true` quando Claude Code já está continuando como resultado de um hook stop. Verifique este valor ou processe a transcrição para evitar bloquear em uma condição que nunca será resolvida. Claude Code aplica um limite de 8 continuações consecutivas: após hooks stop terem continuado o turno oito vezes seguidas, Claude Code sobrescreve o próximo bloqueio e termina o turno. Para aumentar o limite, defina [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/pt/env-vars).2779Além dos [campos de entrada comuns](#common-input-fields), os hooks Stop recebem `stop_hook_active`, `last_assistant_message`, `background_tasks` e `session_crons`. O campo `stop_hook_active` é `true` quando o Claude Code já está continuando como resultado de um hook de parada. Verifique esse valor ou processe a transcrição para evitar bloquear com base em uma condição que nunca será resolvida. O Claude Code aplica um limite de 8 continuações consecutivas: depois que os hooks de parada continuaram o turno oito vezes seguidas, o Claude Code sobrescreve o próximo bloqueio e encerra o turno. Para aumentar o limite, defina [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/pt/env-vars).

2770 2780 

2771O campo `last_assistant_message` contém o conteúdo de texto da resposta final do Claude, então hooks podem acessá-lo sem analisar o arquivo de transcrição. Para hooks que agem no turno recém-concluído, como hooks de leitura em voz alta ou notificação, use este campo em vez de ler `transcript_path`: o arquivo de transcrição não é garantido incluir a mensagem final no tempo de Stop em todas as versões.2781O campo `last_assistant_message` contém o conteúdo de texto da resposta final do Claude, para que os hooks possam acessá-lo sem analisar o arquivo de transcrição. Para hooks que atuam sobre o turno recém-concluído, como hooks de leitura em voz alta ou de notificação, use este campo em vez de ler `transcript_path`: não há garantia de que o arquivo de transcrição inclua a mensagem final no momento do Stop em todas as versões.

2772 2782 

2773Os arrays `background_tasks` e `session_crons` deixam hooks distinguir "sessão está feita" de "sessão está pausada esperando que trabalho de fundo a acorde novamente". Ambos os arrays estão presentes quando o registro de tarefas é alcançável e estão vazios quando nada está em voo ou agendado.2783Os arrays `background_tasks` e `session_crons` permitem que os hooks distingam "a sessão terminou" de "a sessão está pausada aguardando que um trabalho em segundo plano a desperte novamente". Ambos os arrays estão presentes quando o registro de tarefas está acessível e ficam vazios quando não há nada em andamento ou agendado.

2774 2784 

2775Cada entrada em `background_tasks` descreve uma tarefa em voo e usa esses campos:2785Cada entrada em `background_tasks` descreve uma tarefa em andamento e usa estes campos:

2776 2786 

2777| Campo | Descrição |2787| Campo | Descrição |

2778| :- | :- |2788| :- | :- |

2779| `id` | Identificador de tarefa |2789| `id` | Identificador da tarefa |

2780| `type` | Rótulo de tipo de tarefa amigável como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Cada rótulo identifica qual recurso Claude Code criou a tarefa. Volta para o discriminante bruto para tipos não reconhecidos |2790| `type` | Rótulo amigável do tipo de tarefa, como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` ou `MCP task`. Cada rótulo identifica qual recurso do Claude Code criou a tarefa. Usa o discriminante bruto como alternativa para tipos não reconhecidos |

2781| `status` | Status atual da tarefa |2791| `status` | Status atual da tarefa |

2782| `description` | Descrição em texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` em string quando cortado |2792| `description` | Descrição em texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` na string quando cortada |

2783| `command` | Linha de comando de shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |2793| `command` | Linha de comando do shell, limitada a 1000 caracteres. Presente somente para tarefas `shell` |

2784| `agent_type` | Nome de tipo de subagente. Presente apenas para tarefas `subagent` |2794| `agent_type` | Nome do tipo de subagente. Presente somente para tarefas `subagent` |

2785| `server` | Nome do servidor MCP. Presente apenas para tarefas `monitor` e `MCP task` |2795| `server` | Nome do servidor MCP. Presente somente para tarefas `monitor` e `MCP task` |

2786| `tool` | Nome da ferramenta MCP. Presente apenas para tarefas `monitor` e `MCP task` |2796| `tool` | Nome da ferramenta MCP. Presente somente para tarefas `monitor` e `MCP task` |

2787| `name` | Nome do workflow. Presente apenas para tarefas `workflow` |2797| `name` | Nome do workflow. Presente somente para tarefas `workflow` |

2788 2798 

2789Cada entrada em `session_crons` descreve um despertar agendado com escopo de sessão, originário de `CronCreate`, `ScheduleWakeup` e `/loop`:2799Cada entrada em `session_crons` descreve um despertar agendado com escopo de sessão, originado de `CronCreate`, `ScheduleWakeup` e `/loop`:

2790 2800 

2791| Campo | Descrição |2801| Campo | Descrição |

2792| :- | :- |2802| :- | :- |

2793| `id` | Identificador de tarefa cron |2803| `id` | Identificador da tarefa cron |

2794| `schedule` | Expressão cron, por exemplo `0 9 * * 1-5` |2804| `schedule` | Expressão cron, por exemplo `0 9 * * 1-5` |

2795| `recurring` | `false` para despertares únicos cuja programação codifica um tempo de disparo único, `true` para tarefas que disparam novamente em cada correspondência |2805| `recurring` | `false` para despertares únicos cujo agendamento codifica um único horário de disparo, `true` para tarefas que disparam novamente a cada correspondência |

2796| `prompt` | Prompt enviado quando o cron dispara, limitado a 1000 caracteres com o mesmo marcador `… [+N chars]` |2806| `prompt` | Prompt enviado quando o cron é disparado, limitado a 1000 caracteres com o mesmo marcador `… [+N chars]` |

2797 2807 

2798Este exemplo mostra uma entrada Stop com uma tarefa de shell em voo e um cron recorrente:2808Este exemplo mostra uma entrada de Stop com uma tarefa de shell em andamento e um cron recorrente:

2799 2809 

2800```json theme={null}2810```json theme={null}

2801{2811{


2827```2837```

2828 2838 

2829<h4 id="stop-decision-control">2839<h4 id="stop-decision-control">

2830 Controle de decisão Stop2840 Controle de decisão do Stop

2831</h4>2841</h4>

2832 2842 

2833Hooks `Stop` e `SubagentStop` podem controlar se Claude continua. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar esses campos específicos do evento:2843Os hooks `Stop` e `SubagentStop` podem controlar se o Claude continua. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, seu script de hook pode retornar estes campos específicos do evento:

2834 2844 

2835| Campo | Descrição |2845| Campo | Descrição |

2836| :- | :- |2846| :- | :- |

2837| `decision` | `"block"` impede que Claude pare. Omita para permitir que Claude pare |2847| `decision` | `"block"` impede que o Claude pare. Omita para permitir que o Claude pare |

2838| `reason` | Obrigatório quando `decision` é `"block"`. Diz ao Claude por que deve continuar |2848| `reason` | Obrigatório quando `decision` é `"block"`. Informa ao Claude por que ele deve continuar |

2839| `hookSpecificOutput.additionalContext` | Feedback sem erro para Claude. A conversa continua para que Claude possa agir sobre ele, mas ao contrário de `decision: "block"` é mostrado na transcrição como feedback de hook em vez de um erro de hook |2849| `hookSpecificOutput.additionalContext` | Feedback que não é de erro para o Claude. A conversa continua para que o Claude possa agir com base nele, mas, ao contrário de `decision: "block"`, ele é mostrado na transcrição como feedback do hook em vez de um erro do hook |

2840 2850 

2841Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: Claude recebe a mensagem stderr como a explicação para por que deve continuar.2851Um hook que bloqueia saindo com código 2 é encaminhado da mesma forma que `reason`: o Claude recebe a mensagem de stderr como a explicação de por que deve continuar.

2842 2852 

2843```json theme={null}2853```json theme={null}

2844{2854{


2847}2857}

2848```2858```

2849 2859 

2850Use `additionalContext` quando o hook está funcionando como projetado e dando orientação ao Claude, como "execute a suite de testes antes de terminar". Mantém a conversa passando através das mesmas proteções de loop que `decision: "block"`, a saber a entrada `stop_hook_active` e o limite de 8 continuações consecutivas, mas a transcrição a rotula como `Stop hook feedback` e nenhuma notificação de erro de hook é mostrada:2860Use `additionalContext` quando o hook está funcionando conforme projetado e fornecendo orientação ao Claude, como "execute a suíte de testes antes de terminar". Ele mantém a conversa em andamento com as mesmas proteções contra loop de `decision: "block"`, ou seja, a entrada `stop_hook_active` e o limite de 8 continuações consecutivas, mas a transcrição o rotula como `Stop hook feedback` e nenhuma notificação de erro de hook é mostrada:

2851 2861 

2852```json theme={null}2862```json theme={null}

2853{2863{


2862 StopFailure2872 StopFailure

2863</h3>2873</h3>

2864 2874 

2865Executa em vez de [Stop](#stop) quando o turno termina devido a um erro de API. Claude Code ignora a saída e código de saída do hook, além de [`terminalSequence`](#emit-terminal-notifications). Use isso para registrar falhas, enviar alertas ou tomar ações de recuperação quando Claude não pode completar uma resposta devido a limites de taxa, problemas de autenticação ou outros erros de API.2875É executado em vez de [Stop](#stop) quando o turno termina devido a um erro de API. O Claude Code ignora a saída e o código de saída do hook, exceto [`terminalSequence`](#emit-terminal-notifications). Use-o para registrar falhas em log, enviar alertas ou tomar ações de recuperação quando o Claude não consegue concluir uma resposta devido a rate limits, problemas de autenticação ou outros erros de API.

2866 2876 

2867<h4 id="stopfailure-input">2877<h4 id="stopfailure-input">

2868 Entrada StopFailure2878 Entrada do StopFailure

2869</h4>2879</h4>

2870 2880 

2871Além dos [campos de entrada comuns](#common-input-fields), hooks StopFailure recebem `error`, `error_details` opcional e `last_assistant_message` opcional. O campo `error` identifica o tipo de erro e é usado para filtragem de matcher.2881Além dos [campos de entrada comuns](#common-input-fields), os hooks StopFailure recebem `error`, `error_details` opcional e `last_assistant_message` opcional. O campo `error` identifica o tipo de erro e é usado para a filtragem do matcher.

2872 2882 

2873| Campo | Descrição |2883| Campo | Descrição |

2874| :- | :- |2884| :- | :- |

2875| `error` | Tipo de erro: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ou `unknown` |2885| `error` | Tipo de erro: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error` ou `unknown` |

2876| `error_details` | Detalhes adicionais sobre o erro, quando disponível |2886| `error_details` | Detalhes adicionais sobre o erro, quando disponíveis |

2877| `last_assistant_message` | O texto de erro renderizado mostrado na conversa. Ao contrário de `Stop` e `SubagentStop`, onde este campo contém a saída conversacional do Claude, para `StopFailure` ele contém a string de erro da API em si, como `"API Error: Rate limit reached"` |2887| `last_assistant_message` | O texto de erro renderizado mostrado na conversa. Ao contrário de `Stop` e `SubagentStop`, em que este campo contém a saída conversacional do Claude, para `StopFailure` ele contém a própria string de erro da API, como `"API Error: Rate limit reached"` |

2878 2888 

2879```json theme={null}2889```json theme={null}

2880{2890{


2888}2898}

2889```2899```

2890 2900 

2891Hooks StopFailure não têm controle de decisão. Eles são executados apenas para fins de notificação e logging.2901Os hooks StopFailure não têm controle de decisão. Eles são executados apenas para fins de notificação e log.

2892 2902 

2893<h3 id="teammateidle">2903<h3 id="teammateidle">

2894 TeammateIdle2904 TeammateIdle

2895</h3>2905</h3>

2896 2906 

2897Executa quando um colega de equipe de [agente de equipe](/docs/pt/agent-teams) está prestes a ficar ocioso após terminar seu turno. Use isso para impor portões de qualidade antes de um colega de equipe parar de trabalhar, como exigir verificações de lint passando ou verificar que arquivos de saída existem.2907É executado quando um colega de uma [equipe de agentes](/docs/pt/agent-teams) está prestes a ficar ocioso após terminar seu turno. Use-o para impor critérios de qualidade antes que um colega pare de trabalhar, como exigir verificações de lint aprovadas ou verificar se os arquivos de saída existem.

2898 2908 

2899Hooks TeammateIdle não suportam matchers e disparam em cada ocorrência.2909Os hooks TeammateIdle não suportam matchers e são disparados em todas as ocorrências.

2900 2910 

2901<h4 id="teammateidle-input">2911<h4 id="teammateidle-input">

2902 Entrada TeammateIdle2912 Entrada do TeammateIdle

2903</h4>2913</h4>

2904 2914 

2905Além dos [campos de entrada comuns](#common-input-fields), hooks TeammateIdle recebem `teammate_name` e `team_name`.2915Além dos [campos de entrada comuns](#common-input-fields), os hooks TeammateIdle recebem `teammate_name` e `team_name`.

2906 2916 

2907```json theme={null}2917```json theme={null}

2908{2918{


2919| Campo | Descrição |2929| Campo | Descrição |

2920| :- | :- |2930| :- | :- |

2921| `teammate_name` | Nome do colega de equipe que está prestes a ficar ocioso |2931| `teammate_name` | Nome do colega de equipe que está prestes a ficar ocioso |

2922| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |2932| `team_name` | Descontinuado. Nome da equipe derivado da sessão; será removido em uma versão futura |

2923 2933 

2924<h4 id="teammateidle-decision-control">2934<h4 id="teammateidle-decision-control">

2925 Controle de decisão TeammateIdle2935 Controle de decisão do TeammateIdle

2926</h4>2936</h4>

2927 2937 

2928Hooks TeammateIdle suportam duas maneiras de controlar o comportamento do colega de equipe:2938Os hooks TeammateIdle suportam duas formas de controlar o comportamento do colega de equipe:

2929 2939 

2930* **Código de saída 2**: o colega de equipe recebe a mensagem stderr como feedback e continua trabalhando em vez de ficar ocioso.2940* **Código de saída 2**: o colega recebe a mensagem de stderr como feedback e continua trabalhando em vez de ficar ocioso.

2931* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega de equipe inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.2941* **JSON `{"continue": false, "stopReason": "..."}`**: interrompe o colega completamente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.

2932 2942 

2933Este exemplo verifica se um artefato de compilação existe antes de permitir que um colega de equipe fique ocioso:2943Este exemplo verifica se um artefato de build existe antes de permitir que um colega fique ocioso:

2934 2944 

2935```bash theme={null}2945```bash theme={null}

2936#!/bin/bash2946#!/bin/bash


2947 ConfigChange2957 ConfigChange

2948</h3>2958</h3>

2949 2959 

2950Executa quando um arquivo de configuração muda durante uma sessão. Use isso para auditar mudanças de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.2960É executado quando um arquivo de configuração muda durante uma sessão. Use-o para auditar alterações de configurações, impor políticas de segurança ou bloquear modificações não autorizadas em arquivos de configuração.

2951 2961 

2952Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa apenas quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda. Ele aplica [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) e mudanças em preferências gerenciadas macOS ou política de registro Windows sem executá-los. Em WSL com [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings), ele também aplica um arquivo de configurações gerenciadas do lado Windows alterado em sua pesquisa de política sem executá-los.2962O Claude Code executa hooks ConfigChange quando um arquivo de configurações, um arquivo de política gerenciada ou um arquivo de skill muda. Para política gerenciada, ele os executa somente quando `managed-settings.json` ou um arquivo em `managed-settings.d/` muda. Ele aplica [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) e alterações nas preferências gerenciadas do macOS ou na política do registro do Windows sem executá-los. No WSL com [`wslInheritsWindowsSettings`](/docs/pt/settings-reference#wslinheritswindowssettings), ele também aplica um arquivo de configurações gerenciadas alterado do lado do Windows em sua verificação periódica de política sem executá-los.

2953 2963 

2954O matcher filtra na fonte de configuração:2964O matcher filtra pela origem da configuração:

2955 2965 

2956| Matcher | Quando é disparado |2966| Matcher | Quando é disparado |

2957| :- | :- |2967| :- | :- |


2961| `policy_settings` | `managed-settings.json` ou um arquivo em `managed-settings.d/` muda |2971| `policy_settings` | `managed-settings.json` ou um arquivo em `managed-settings.d/` muda |

2962| `skills` | Um arquivo de skill em `.claude/skills/` muda |2972| `skills` | Um arquivo de skill em `.claude/skills/` muda |

2963 2973 

2964Este exemplo registra todas as mudanças de configuração para auditoria de segurança:2974Este exemplo registra em log todas as alterações de configuração para auditoria de segurança:

2965 2975 

2966```json theme={null}2976```json theme={null}

2967{2977{


2982```2992```

2983 2993 

2984<h4 id="configchange-input">2994<h4 id="configchange-input">

2985 Entrada ConfigChange2995 Entrada do ConfigChange

2986</h4>2996</h4>

2987 2997 

2988Além dos [campos de entrada comuns](#common-input-fields), hooks ConfigChange recebem `source` e opcionalmente `file_path`. O campo `source` indica qual tipo de configuração mudou, e `file_path` fornece o caminho para o arquivo específico que foi modificado.2998Além dos [campos de entrada comuns](#common-input-fields), os hooks ConfigChange recebem `source` e, opcionalmente, `file_path`. O campo `source` indica qual tipo de configuração mudou, e `file_path` fornece o caminho do arquivo específico que foi modificado.

2989 2999 

2990```json theme={null}3000```json theme={null}

2991{3001{


2999```3009```

3000 3010 

3001<h4 id="configchange-decision-control">3011<h4 id="configchange-decision-control">

3002 Controle de decisão ConfigChange3012 Controle de decisão do ConfigChange

3003</h4>3013</h4>

3004 3014 

3005Hooks ConfigChange podem bloquear mudanças de configuração de entrarem em vigor. Use código de saída 2 ou um JSON `decision` para impedir a mudança. Quando bloqueado, as novas configurações não são aplicadas à sessão em execução.3015Os hooks ConfigChange podem impedir que alterações de configuração entrem em vigor. Use o código de saída 2 ou um `decision` em JSON para impedir a alteração. Quando bloqueadas, as novas configurações não são aplicadas à sessão em execução.

3006 3016 

3007| Campo | Descrição |3017| Campo | Descrição |

3008| :- | :- |3018| :- | :- |

3009| `decision` | `"block"` impede que a mudança de configuração seja aplicada. Omita para permitir a mudança |3019| `decision` | `"block"` impede que a alteração de configuração seja aplicada. Omita para permitir a alteração |

3010| `reason` | Aceito mas nunca mostrado |3020| `reason` | Aceito, mas nunca exibido |

3011 3021 

3012```json theme={null}3022```json theme={null}

3013{3023{


3016}3026}

3017```3027```

3018 3028 

3019Mudanças `policy_settings` não podem ser bloqueadas. Hooks ainda disparam para fontes `policy_settings` quando um arquivo de configurações gerenciadas na máquina muda, então você pode usá-los para registrar essas edições, mas qualquer decisão de bloqueio é ignorada. Isso garante que configurações gerenciadas pela empresa sempre entrem em vigor. Claude Code não executa hooks `ConfigChange` quando [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) chegam ou são atualizadas.3029As alterações de `policy_settings` não podem ser bloqueadas. Os hooks ainda são disparados para origens `policy_settings` quando um arquivo de configurações gerenciadas na máquina muda, então você pode usá-los para registrar essas edições em log, mas qualquer decisão de bloqueio é ignorada. Isso garante que as configurações gerenciadas pela empresa sempre entrem em vigor. O Claude Code não executa hooks `ConfigChange` quando [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) chegam ou são atualizadas.

3020 3030 

3021Claude Code age na decisão de bloqueio da saída JSON de um hook ConfigChange e descarta `systemMessage` e `continue`. Uma mudança bloqueada não exibe nenhuma mensagem para você ou para Claude, independentemente de você bloquear com `reason` ou com stderr ao sair com 2. Claude Code apenas escreve uma linha no log de depuração.3031O Claude Code age com base na decisão de bloqueio da saída JSON de um hook ConfigChange e descarta `systemMessage` e `continue`. Uma alteração bloqueada não exibe nenhuma mensagem para você nem para o Claude, seja o bloqueio feito com `reason` ou com stderr no código de saída 2. O Claude Code apenas grava uma linha no log de depuração.

3022 3032 

3023<h3 id="cwdchanged">3033<h3 id="cwdchanged">

3024 CwdChanged3034 CwdChanged

3025</h3>3035</h3>

3026 3036 

3027Executa quando um comando de shell na conversa principal muda o diretório de trabalho, por exemplo quando Claude executa um comando `cd`. Use isso para reagir a mudanças de diretório: recarregar variáveis de ambiente, ativar toolchains específicas do projeto ou executar scripts de configuração automaticamente. Emparelha com [FileChanged](#filechanged) para ferramentas como [direnv](https://direnv.net/) que gerenciam ambiente por diretório.3037É executado quando um comando de shell na conversa principal altera o diretório de trabalho, por exemplo quando o Claude executa um comando `cd`. Use-o para reagir a mudanças de diretório: recarregar variáveis de ambiente, ativar toolchains específicas do projeto ou executar scripts de configuração automaticamente. Funciona em conjunto com [FileChanged](#filechanged) para ferramentas como [direnv](https://direnv.net/) que gerenciam o ambiente por diretório.

3028 3038 

3029Hooks CwdChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Variáveis escritas nesse arquivo persistem em comandos Bash subsequentes até o próximo evento CwdChanged, quando Claude Code as limpa.3039Os hooks CwdChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes até o próximo evento CwdChanged, quando o Claude Code as limpa.

3030 3040 

3031CwdChanged não suporta matchers e dispara em cada ocorrência.3041O CwdChanged não suporta matchers e é disparado em todas as ocorrências.

3032 3042 

3033<h4 id="cwdchanged-input">3043<h4 id="cwdchanged-input">

3034 Entrada CwdChanged3044 Entrada do CwdChanged

3035</h4>3045</h4>

3036 3046 

3037Além dos [campos de entrada comuns](#common-input-fields), hooks CwdChanged recebem `old_cwd` e `new_cwd`.3047Além dos [campos de entrada comuns](#common-input-fields), os hooks CwdChanged recebem `old_cwd` e `new_cwd`.

3038 3048 

3039```json theme={null}3049```json theme={null}

3040{3050{


3048```3058```

3049 3059 

3050<h4 id="cwdchanged-output">3060<h4 id="cwdchanged-output">

3051 Saída CwdChanged3061 Saída do CwdChanged

3052</h4>3062</h4>

3053 3063 

3054Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, hooks CwdChanged podem retornar `watchPaths` para definir dinamicamente quais caminhos de arquivo [FileChanged](#filechanged) observa:3064Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks CwdChanged podem retornar `watchPaths` para definir dinamicamente quais caminhos de arquivo o [FileChanged](#filechanged) monitora:

3055 3065 

3056| Campo | Descrição |3066| Campo | Descrição |

3057| :- | :- |3067| :- | :- |

3058| `watchPaths` | Array de caminhos absolutos. Substitui a lista de observação dinâmica atual. Caminhos de sua configuração `matcher` são sempre observados. Retornar um array vazio limpa a lista dinâmica, que é típico ao entrar em um novo diretório |3068| `watchPaths` | Array de caminhos absolutos. Substitui a lista de monitoramento dinâmica atual. Os caminhos da sua configuração de `matcher` são sempre monitorados. Retornar um array vazio limpa a lista dinâmica, o que é comum ao entrar em um novo diretório |

3059 3069 

3060Hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.3070Os hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.

3061 3071 

3062Claude Code lê `watchPaths` e `systemMessage` de sua saída JSON e descarta `continue`. Em sessões interativas, mostra o `systemMessage` como uma notificação de terminal breve. A mensagem não chega ao fluxo de mensagens do SDK.3072O Claude Code lê `watchPaths` e `systemMessage` da saída JSON deles e descarta `continue`. Em sessões interativas, ele mostra o `systemMessage` como uma breve notificação no terminal. A mensagem não chega ao fluxo de mensagens do SDK.

3063 3073 

3064<h3 id="directoryadded">3074<h3 id="directoryadded">

3065 DirectoryAdded3075 DirectoryAdded

3066</h3>3076</h3>

3067 3077 

3068Executa após você adicionar um diretório de trabalho no meio da sessão com o comando `/add-dir`, ou após um cliente SDK adicionar um com a solicitação de controle `register_repo_root`. Use isso para preparar um repositório recém-adicionado, por exemplo instalando suas dependências.3078É executado depois que você adiciona um diretório de trabalho no meio da sessão com o comando `/add-dir`, ou depois que um cliente SDK adiciona um com a requisição de controle `register_repo_root`. Use-o para preparar um repositório recém-adicionado, por exemplo instalando suas dependências.

3069 3079 

3070Claude Code não dispara este evento quando:3080O Claude Code não dispara este evento quando:

3071 3081 

3072* Você passa um diretório com a flag de startup `--add-dir`; [SessionStart](#sessionstart) cobre esses diretórios3082* Você passa um diretório com a flag de inicialização `--add-dir`; [SessionStart](#sessionstart) cobre esses diretórios

3073* Você adiciona um diretório na aba Workspace `/permissions`3083* Você adiciona um diretório na aba Workspace de `/permissions`

3074* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um3084* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um

3075 3085 

3076Claude Code dispara DirectoryAdded após atualizar estado de sandbox e permissão, então ferramentas em sandbox já veem o novo diretório quando seu hook é executado. Comandos de hook em si são executados sem sandbox.3086O Claude Code dispara o DirectoryAdded depois de atualizar o estado do sandbox e das permissões, então as ferramentas em sandbox já veem o novo diretório quando seu hook é executado. Os próprios comandos de hook são executados fora do sandbox.

3077 3087 

3078Claude Code não espera pelo hook: a adição é concluída imediatamente, e o hook é executado em segundo plano com o tempo limite padrão de 600 segundos.3088O Claude Code não espera pelo hook: a adição é concluída imediatamente, e o hook é executado em segundo plano com o timeout padrão de 600 segundos.

3079 3089 

3080O matcher filtra em como o diretório foi adicionado:3090O matcher filtra pela forma como o diretório foi adicionado:

3081 3091 

3082| Matcher | Quando é disparado |3092| Matcher | Quando é disparado |

3083| :- | :- |3093| :- | :- |

3084| `slash_command` | Você adiciona um diretório com `/add-dir` |3094| `slash_command` | Você adiciona um diretório com `/add-dir` |

3085| `register_repo_root` | Um cliente SDK adiciona um diretório com a solicitação de controle `register_repo_root` |3095| `register_repo_root` | Um cliente SDK adiciona um diretório com a requisição de controle `register_repo_root` |

3086 3096 

3087<h4 id="directoryadded-input">3097<h4 id="directoryadded-input">

3088 Entrada DirectoryAdded3098 Entrada do DirectoryAdded

3089</h4>3099</h4>

3090 3100 

3091Além dos [campos de entrada comuns](#common-input-fields), hooks DirectoryAdded recebem `directory` e `source`.3101Além dos [campos de entrada comuns](#common-input-fields), os hooks DirectoryAdded recebem `directory` e `source`.

3092 3102 

3093| Campo | Descrição |3103| Campo | Descrição |

3094| :- | :- |3104| :- | :- |

3095| `directory` | Caminho absoluto do diretório que foi adicionado |3105| `directory` | Caminho absoluto do diretório que foi adicionado |

3096| `source` | Como o diretório foi adicionado, `"slash_command"` para `/add-dir` ou `"register_repo_root"` para a solicitação de controle do SDK |3106| `source` | Como o diretório foi adicionado, `"slash_command"` para `/add-dir` ou `"register_repo_root"` para a requisição de controle do SDK |

3097 3107 

3098```json theme={null}3108```json theme={null}

3099{3109{


3106}3116}

3107```3117```

3108 3118 

3109Hooks DirectoryAdded não têm controle de decisão. Eles não podem bloquear a adição, que já foi concluída quando o hook é executado. Claude Code descarta o campo `continue` de sua saída JSON e exibe o resto diferentemente por fonte:3119Os hooks DirectoryAdded não têm controle de decisão. Eles não podem bloquear a adição, que já foi concluída quando o hook é executado. O Claude Code descarta o campo `continue` da saída JSON deles e apresenta o restante de forma diferente conforme a origem:

3110 3120 

3111* `slash_command`: Claude Code entrega o `systemMessage` do hook ao Claude como contexto no próximo turno de conversa, em vez de mostrar a você. Uma contagem de hooks falhados aparece na transcrição. Saída de falha completa vai para o log de depuração3121* `slash_command`: o Claude Code entrega o `systemMessage` do hook ao Claude como contexto no próximo turno da conversa, em vez de mostrá-lo a você. Uma contagem de hooks com falha aparece na transcrição. A saída completa das falhas vai para o log de depuração

3112* `register_repo_root`: Claude Code escreve saída `systemMessage` e saída de falha apenas no log de depuração3122* `register_repo_root`: o Claude Code grava a saída de `systemMessage` e a saída de falhas somente no log de depuração

3113 3123 

3114<h3 id="filechanged">3124<h3 id="filechanged">

3115 FileChanged3125 FileChanged

3116</h3>3126</h3>

3117 3127 

3118Executa quando um arquivo observado muda no disco. Claude Code detecta mudanças com um observador de sistema de arquivos, não inspecionando chamadas de ferramenta, então executa o hook não importa o que mudou o arquivo: uma chamada de ferramenta `Edit` ou `Write`, um script que Claude executa com `Bash`, ou um processo fora de Claude Code inteiramente. Um uso comum é recarregar variáveis de ambiente quando arquivos de configuração do projeto mudam.3128É executado quando um arquivo monitorado muda no disco. O Claude Code detecta alterações com um monitor do sistema de arquivos, não inspecionando chamadas de ferramenta, portanto executa o hook independentemente do que alterou o arquivo: uma chamada de ferramenta `Edit` ou `Write`, um script que o Claude executa com `Bash` ou um processo totalmente fora do Claude Code. Um uso comum é recarregar variáveis de ambiente quando arquivos de configuração do projeto mudam.

3119 3129 

3120O `matcher` para este evento serve dois papéis:3130O `matcher` deste evento tem duas funções:

3121 3131 

3122* **Construir a lista de observação**: o valor é dividido em `|` e cada segmento é registrado como um nome de arquivo literal no diretório de trabalho, então `".envrc|.env"` observa exatamente esses dois arquivos. Padrões regex não são úteis aqui: um valor como `^\.env` observaria um arquivo literalmente nomeado `^\.env`.3132* **Construir a lista de monitoramento**: o valor é dividido em `|` e cada segmento é registrado como um nome de arquivo literal no diretório de trabalho, então `".envrc|.env"` monitora exatamente esses dois arquivos. Padrões regex não são úteis aqui: um valor como `^\.env` monitoraria um arquivo literalmente chamado `^\.env`.

3123* **Filtrar quais hooks são executados**: quando um arquivo observado muda, o mesmo valor filtra quais grupos de hook são executados usando as [regras de matcher](#matcher-patterns) padrão contra o nome base do arquivo alterado.3133* **Filtrar quais hooks são executados**: quando um arquivo monitorado muda, o mesmo valor filtra quais grupos de hooks são executados usando as [regras de matcher](#matcher-patterns) padrão em relação ao nome base do arquivo alterado.

3124 3134 

3125Este exemplo normaliza terminações de linha em `data.csv` após qualquer mudança, incluindo um comando `Bash` ou um script externo reescrevendo o arquivo:3135Este exemplo normaliza as terminações de linha em `data.csv` após qualquer alteração, incluindo um comando `Bash` ou um script externo que reescreve o arquivo:

3126 3136 

3127```json theme={null}3137```json theme={null}

3128{3138{


3142}3152}

3143```3153```

3144 3154 

3145O hook lê o caminho absoluto do arquivo alterado do campo `file_path` da [entrada JSON](#filechanged-input) em stdin. Sua guarda `grep` testa a mesma coisa que `perl` remove, um CR no final de uma linha, então a execução após uma normalização sai sem tocar no arquivo. Uma guarda mais solta faz um loop infinito, porque `perl -i` reescreve o arquivo mesmo quando não substitui nada e Claude Code executa o hook novamente após cada reescrita. Salve este script em `/path/to/normalize-line-endings.sh` e torne-o executável:3155O hook lê o caminho absoluto do arquivo alterado do campo `file_path` da [entrada JSON](#filechanged-input) no stdin. Sua proteção com `grep` testa a mesma coisa que o `perl` remove, um CR no final de uma linha, portanto a execução após uma normalização termina sem tocar no arquivo. Uma proteção menos rigorosa entra em loop para sempre, porque `perl -i` reescreve o arquivo mesmo quando não substitui nada, e o Claude Code executa o hook novamente após cada reescrita. Salve este script em `/path/to/normalize-line-endings.sh` e torne-o executável:

3146 3156 

3147```bash theme={null}3157```bash theme={null}

3148#!/bin/bash3158#!/bin/bash


3152fi3162fi

3153```3163```

3154 3164 

3155Para confirmar que o hook funciona, peça ao Claude para anexar uma linha CRLF a `data.csv` com um comando `Bash`. Claude Code executa o hook e o arquivo termina com terminações LF.3165Para confirmar que o hook funciona, peça ao Claude para acrescentar uma linha CRLF a `data.csv` com um comando `Bash`. O Claude Code executa o hook e o arquivo fica com terminações LF.

3156 3166 

3157Para observar arquivos que você não pode nomear antecipadamente, retorne [`watchPaths`](#filechanged-output) de um hook para atualizar a lista de observação dinamicamente. Claude Code inicia o observador apenas quando algo nomeia um arquivo para observar, então semeie a lista com um grupo FileChanged cujo matcher nomeia pelo menos um arquivo, ou com um hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) que retorna `watchPaths`. O matcher ainda filtra quais grupos de hook são executados quando um arquivo observado muda, então dê ao grupo que lida com caminhos dinâmicos um matcher omitido, que corresponde a cada arquivo observado e não adiciona nada à lista de observação. Um matcher `"*"` também corresponde a cada arquivo, mas Claude Code o registra na lista de observação como qualquer outro valor, como um arquivo literal nomeado `*`.3167Para monitorar arquivos que você não pode nomear de antemão, retorne [`watchPaths`](#filechanged-output) de um hook para atualizar a lista de monitoramento dinamicamente. O Claude Code inicia o monitor somente quando algo nomeia um arquivo a ser monitorado, então inicialize a lista com um grupo FileChanged cujo matcher nomeie pelo menos um arquivo, ou com um hook [SessionStart](#sessionstart-decision-control) ou [CwdChanged](#cwdchanged) que retorne `watchPaths`. O matcher ainda filtra quais grupos de hooks são executados quando um arquivo monitorado muda, então dê ao grupo que lida com caminhos dinâmicos um matcher omitido, que corresponde a todos os arquivos monitorados e não adiciona nada à lista de monitoramento. Um matcher `"*"` também corresponde a todos os arquivos, mas o Claude Code o registra na lista de monitoramento como qualquer outro valor, como um arquivo literal chamado `*`.

3158 3168 

3159Hooks FileChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Variáveis escritas nesse arquivo persistem em comandos Bash subsequentes até o próximo evento [CwdChanged](#cwdchanged), quando Claude Code as limpa.3169Os hooks FileChanged têm acesso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). As variáveis gravadas nesse arquivo persistem nos comandos Bash subsequentes até o próximo evento [CwdChanged](#cwdchanged), quando o Claude Code as limpa.

3160 3170 

3161<h4 id="filechanged-input">3171<h4 id="filechanged-input">

3162 Entrada FileChanged3172 Entrada do FileChanged

3163</h4>3173</h4>

3164 3174 

3165Além dos [campos de entrada comuns](#common-input-fields), hooks FileChanged recebem `file_path` e `event`.3175Além dos [campos de entrada comuns](#common-input-fields), os hooks FileChanged recebem `file_path` e `event`.

3166 3176 

3167| Campo | Descrição |3177| Campo | Descrição |

3168| :- | :- |3178| :- | :- |

3169| `file_path` | Caminho absoluto para o arquivo que mudou |3179| `file_path` | Caminho absoluto do arquivo que mudou |

3170| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |3180| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |

3171 3181 

3172```json theme={null}3182```json theme={null}


3181```3191```

3182 3192 

3183<h4 id="filechanged-output">3193<h4 id="filechanged-output">

3184 Saída FileChanged3194 Saída do FileChanged

3185</h4>3195</h4>

3186 3196 

3187Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, hooks FileChanged podem retornar `watchPaths` para atualizar dinamicamente quais caminhos de arquivo são observados:3197Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, os hooks FileChanged podem retornar `watchPaths` para atualizar dinamicamente quais caminhos de arquivo são monitorados:

3188 3198 

3189| Campo | Descrição |3199| Campo | Descrição |

3190| :- | :- |3200| :- | :- |

3191| `watchPaths` | Array de caminhos absolutos. Substitui a lista de observação dinâmica atual. Caminhos de sua configuração `matcher` são sempre observados. Use isso quando seu script de hook descobre arquivos adicionais para observar com base no arquivo alterado |3201| `watchPaths` | Array de caminhos absolutos. Substitui a lista de monitoramento dinâmica atual. Os caminhos da sua configuração de `matcher` são sempre monitorados. Use isto quando seu script de hook descobrir arquivos adicionais a monitorar com base no arquivo alterado |

3192 3202 

3193Hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.3203Os hooks FileChanged não têm controle de decisão. Eles não podem impedir que a alteração do arquivo ocorra.

3194 3204 

3195Claude Code lê `watchPaths` e `systemMessage` de sua saída JSON e descarta `continue`. Em sessões interativas, mostra o `systemMessage` como uma notificação de terminal breve. A mensagem não chega ao fluxo de mensagens do SDK.3205O Claude Code lê `watchPaths` e `systemMessage` da saída JSON deles e descarta `continue`. Em sessões interativas, ele mostra o `systemMessage` como uma breve notificação no terminal. A mensagem não chega ao fluxo de mensagens do SDK.

3196 3206 

3197<h3 id="worktreecreate">3207<h3 id="worktreecreate">

3198 WorktreeCreate3208 WorktreeCreate

3199</h3>3209</h3>

3200 3210 

3201Executa quando uma worktree está sendo criada, seja de `claude --worktree`, de um [subagente usando `isolation: "worktree"`](/docs/pt/sub-agents#choose-the-subagent-scope), ou para uma [sessão de fundo](/docs/pt/agent-view#how-file-edits-are-isolated) que Claude Code isola em sua própria worktree. Por padrão, Claude Code cria a cópia de trabalho isolada com `git worktree`. Configurar um hook WorktreeCreate substitui esse comportamento git padrão, permitindo que você use um sistema de controle de versão diferente como SVN, Perforce ou Mercurial.3211É executado quando um worktree está sendo criado, seja a partir de `claude --worktree`, de um [subagente usando `isolation: "worktree"`](/docs/pt/sub-agents#choose-the-subagent-scope) ou para uma [sessão em segundo plano](/docs/pt/agent-view#how-file-edits-are-isolated) que o Claude Code isola em seu próprio worktree. Por padrão, o Claude Code cria a cópia de trabalho isolada com `git worktree`. Configurar um hook WorktreeCreate substitui esse comportamento padrão do git, permitindo que você use um sistema de controle de versão diferente, como SVN, Perforce ou Mercurial.

3202 3212 

3203Como o hook substitui o comportamento padrão inteiramente, [`.worktreeinclude`](/docs/pt/worktrees#copy-gitignored-files-into-worktrees) não é processado. Se você precisar copiar arquivos de configuração local como `.env` para a nova worktree, faça-o dentro de seu script de hook.3213Como o hook substitui o comportamento padrão por completo, [`.worktreeinclude`](/docs/pt/worktrees#copy-gitignored-files-into-worktrees) não é processado. Se você precisar copiar arquivos de configuração locais como `.env` para o novo worktree, faça isso dentro do seu script de hook.

3204 3214 

3205O hook deve retornar o caminho para o diretório de worktree criado. Claude Code usa este caminho como o diretório de trabalho para a sessão isolada. Veja [saída WorktreeCreate](#worktreecreate-output) para como cada tipo de hook retorna o caminho.3215O hook deve retornar o caminho do diretório do worktree criado. O Claude Code usa esse caminho como o diretório de trabalho da sessão isolada. Consulte [Saída do WorktreeCreate](#worktreecreate-output) para ver como cada tipo de hook retorna o caminho.

3206 3216 

3207Claude Code age no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.3217O Claude Code age com base no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.

3208 3218 

3209Este exemplo cria uma cópia de trabalho SVN e imprime o caminho para Claude Code usar. Substitua a URL do repositório pela sua própria:3219Este exemplo cria uma cópia de trabalho SVN e imprime o caminho para o Claude Code usar. Substitua a URL do repositório pela sua:

3210 3220 

3211```json theme={null}3221```json theme={null}

3212{3222{


3225}3235}

3226```3236```

3227 3237 

3228O hook lê o `name` da worktree da entrada JSON em stdin, faz checkout de uma cópia fresca em um novo diretório e imprime o caminho do diretório. O `echo` na última linha é o que Claude Code lê como o caminho da worktree. Redirecione qualquer outra saída para stderr para que não interfira com o caminho.3238O hook lê o `name` do worktree da entrada JSON no stdin, faz checkout de uma cópia nova em um novo diretório e imprime o caminho do diretório. O `echo` na última linha é o que o Claude Code lê como o caminho do worktree. Redirecione qualquer outra saída para o stderr para que ela não interfira no caminho.

3229 3239 

3230<h4 id="worktreecreate-input">3240<h4 id="worktreecreate-input">

3231 Entrada WorktreeCreate3241 Entrada do WorktreeCreate

3232</h4>3242</h4>

3233 3243 

3234Além dos [campos de entrada comuns](#common-input-fields), hooks WorktreeCreate recebem o campo `name`. Este é um identificador slug para a nova worktree, especificado pelo usuário ou auto-gerado, por exemplo `bold-oak-a3f2`.3244Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeCreate recebem o campo `name`. Ele é um identificador slug para o novo worktree, especificado pelo usuário ou gerado automaticamente, por exemplo `bold-oak-a3f2`.

3235 3245 

3236```json theme={null}3246```json theme={null}

3237{3247{


3244```3254```

3245 3255 

3246<h4 id="worktreecreate-output">3256<h4 id="worktreecreate-output">

3247 Saída WorktreeCreate3257 Saída do WorktreeCreate

3248</h4>3258</h4>

3249 3259 

3250Hooks WorktreeCreate não usam o modelo de decisão permitir/bloquear padrão. Em vez disso, o sucesso ou falha do hook determina o resultado. O hook deve retornar o caminho para o diretório de worktree criado:3260Os hooks WorktreeCreate não usam o modelo padrão de decisão de permitir/bloquear. Em vez disso, o sucesso ou a falha do hook determina o resultado. O hook deve retornar o caminho para o diretório do worktree criado:

3251 3261 

3252* **Hooks de comando** (`type: "command"`): imprima o caminho como a última linha não vazia de stdout. Claude Code remove códigos de escape ANSI antes de ler essa linha, então banners de startup de shell impressos antes de seu `echo` são ignorados. Redirecione qualquer outra saída de hook para stderr.3262* **Hooks de comando** (`type: "command"`): imprima o caminho como a última linha não vazia do stdout. O Claude Code remove os códigos de escape ANSI antes de ler essa linha, então os banners de inicialização do shell impressos antes do seu `echo` são ignorados. Redirecione qualquer outra saída do hook para o stderr.

3253* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.3263* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.

3254 3264 

3255Se o hook falhar ou não produzir um caminho, a criação de worktree falha com um erro.3265Se o hook falhar ou não produzir nenhum caminho, a criação do worktree falha com um erro.

3256 3266 

3257Claude Code resolve um caminho relativo contra o diretório em que o hook foi executado, colapsando quaisquer segmentos `.` ou `..` nele. Se o caminho resultante não for um diretório que Claude Code possa entrar, a sessão imprime um erro nomeando o caminho e sai com código 1.3267O Claude Code resolve um caminho relativo em relação ao diretório em que o hook foi executado, eliminando quaisquer segmentos `.` ou `..` nele. Se o caminho resultante não for um diretório em que o Claude Code possa entrar, a sessão imprime um erro com o nome do caminho e encerra com o código 1.

3258 3268 

3259Claude Code recusa um caminho absoluto que contém segmentos `.` ou `..`, e qualquer caminho que passa através de um symlink abaixo da raiz do repositório, porque um symlink comprometido no repositório poderia redirecionar a worktree para fora dele. O erro nomeia o componente rejeitado. Retorne um caminho normalizado que não passa através de um symlink dentro do repositório. Antes da v2.1.216, a criação de worktree seguia o caminho do hook sem essa triagem.3269O Claude Code recusa um caminho absoluto que contenha segmentos `.` ou `..`, e qualquer caminho que passe por um link simbólico abaixo da raiz do repositório, porque um link simbólico commitado no repositório poderia redirecionar o worktree para fora dele. O erro indica o componente rejeitado. Retorne um caminho normalizado que não passe por um link simbólico dentro do repositório. Antes da v2.1.216, a criação do worktree seguia o caminho do hook sem essa verificação.

3260 3270 

3261<h3 id="worktreeremove">3271<h3 id="worktreeremove">

3262 WorktreeRemove3272 WorktreeRemove

3263</h3>3273</h3>

3264 3274 

3265Executa quando uma worktree está sendo removida. Este é o equivalente de limpeza para [WorktreeCreate](#worktreecreate). O evento dispara quando:3275É executado quando um worktree está sendo removido. Este é o equivalente de limpeza do [WorktreeCreate](#worktreecreate). O evento é disparado quando:

3266 3276 

3267* você sai de uma sessão `--worktree` e escolhe removê-la3277* você sai de uma sessão `--worktree` e escolhe removê-lo

3268* um subagente com `isolation: "worktree"` termina3278* um subagente com `isolation: "worktree"` termina

3269* você exclui uma [sessão de fundo](/docs/pt/agent-view#what-deleting-a-session-removes) cuja worktree o hook criou3279* você exclui uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) cujo worktree foi criado pelo hook

3270 3280 

3271Para worktrees baseadas em git, Claude Code lida com limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate, emparelhe-o com um hook WorktreeRemove para controlar a limpeza das worktrees que ele cria:3281Para worktrees baseados em git, o Claude Code lida com a limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate, combine-o com um hook WorktreeRemove para controlar a limpeza dos worktrees que ele cria:

3272 3282 

3273* **Sem hook WorktreeRemove**: quando você sai de uma sessão `--worktree` e escolhe remoção, Claude Code volta para `git worktree remove --force` no caminho que seu hook WorktreeCreate retornou, então uma worktree que git reconhece é removida. Uma worktree que git não reconhece, por exemplo uma que seu hook criou com um sistema de controle de versão não-git, fica no disco. Para o que excluir uma [sessão de fundo](/docs/pt/agent-view#what-deleting-a-session-removes) faz com uma worktree criada por hook, veja as regras de exclusão da visualização de agente.3283* **Sem hook WorktreeRemove**: quando você sai de uma sessão `--worktree` e escolhe a remoção, o Claude Code recorre a `git worktree remove --force` no caminho que seu hook WorktreeCreate retornou, de modo que um worktree que o git reconhece é removido. Um worktree que o git não reconhece, por exemplo, um que seu hook criou com um sistema de controle de versão que não seja git, permanece no disco. Para saber o que a exclusão de uma [sessão em segundo plano](/docs/pt/agent-view#what-deleting-a-session-removes) faz com um worktree criado por hook, consulte as regras de exclusão da visualização de agentes.

3274* **Hook sai com 0**: a worktree é contada como removida. Claude Code não lê nada mais do hook, então certifique-se de que seu hook excluiu o diretório.3284* **O hook encerra com 0**: o worktree é considerado removido. O Claude Code não lê mais nada do hook, então certifique-se de que seu hook excluiu o diretório.

3275* **Hook sai com código não-zero**: a remoção falha se o diretório em `worktree_path` ainda existir depois, e a worktree fica no disco sem fallback git. Um hook que excluiu o diretório antes de sair com código não-zero é contado como removido. Para como a falha é relatada, veja [entrada WorktreeRemove](#worktreeremove-input).3285* **O hook encerra com código diferente de zero**: a remoção falha se o diretório em `worktree_path` ainda existir depois, e o worktree permanece no disco sem fallback do git. Um hook que excluiu o diretório antes de encerrar com código diferente de zero é considerado como tendo removido o worktree. Para saber como a falha é relatada, consulte [Entrada do WorktreeRemove](#worktreeremove-input).

3276 3286 

3277Claude Code nunca exclui um branch pertencente a uma worktree criada por hook, porque ele só conhece o caminho que seu hook WorktreeCreate retornou. Se seu hook WorktreeCreate cria um branch, exclua-o em seu hook WorktreeRemove.3287O Claude Code nunca exclui um branch pertencente a um worktree criado por hook, porque ele conhece apenas o caminho que seu hook WorktreeCreate retornou. Se seu hook WorktreeCreate criar um branch, exclua-o no seu hook WorktreeRemove.

3278 3288 

3279Claude Code descarta [campos de saída JSON](#json-output) de um hook WorktreeRemove, como `systemMessage` e `continue`.3289O Claude Code descarta os [campos de saída JSON](#json-output) de um hook WorktreeRemove, como `systemMessage` e `continue`.

3280 3290 

3281Para uma exclusão de sessão de fundo, Claude Code verifica o caminho de worktree armazenado antes de executar o hook e recusa um caminho que é um symlink ou passa através de um abaixo da raiz do repositório. O hook é executado para uma worktree que ainda contém arquivos apenas quando você confirma a exclusão em [visualização de agente](/docs/pt/agent-view#what-deleting-a-session-removes); para tal worktree, [`claude rm`](/docs/pt/agent-view#manage-sessions-from-the-shell) mantém a sessão e worktree em vez disso. Antes da v2.1.216, o hook era executado no caminho armazenado sem essas verificações.3291Para a exclusão de uma sessão em segundo plano, o Claude Code verifica o caminho do worktree armazenado antes de executar o hook e recusa um caminho que seja um link simbólico ou que passe por um abaixo da raiz do repositório. O hook é executado para um worktree que ainda contém arquivos somente quando você confirma a exclusão na [visualização de agentes](/docs/pt/agent-view#what-deleting-a-session-removes); para um worktree assim, [`claude rm`](/docs/pt/agent-view#manage-sessions-from-the-shell) mantém a sessão e o worktree. Antes da v2.1.216, o hook era executado no caminho armazenado sem essas verificações.

3282 3292 

3283Claude Code passa o caminho retornado por WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:3293O Claude Code passa o caminho retornado pelo WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:

3284 3294 

3285```json theme={null}3295```json theme={null}

3286{3296{


3300```3310```

3301 3311 

3302<h4 id="worktreeremove-input">3312<h4 id="worktreeremove-input">

3303 Entrada WorktreeRemove3313 Entrada do WorktreeRemove

3304</h4>3314</h4>

3305 3315 

3306Além dos [campos de entrada comuns](#common-input-fields), hooks WorktreeRemove recebem o campo `worktree_path`, que é o caminho absoluto para a worktree sendo removida.3316Além dos [campos de entrada comuns](#common-input-fields), os hooks WorktreeRemove recebem o campo `worktree_path`, que é o caminho absoluto para o worktree que está sendo removido.

3307 3317 

3308```json theme={null}3318```json theme={null}

3309{3319{


3315}3325}

3316```3326```

3317 3327 

3318O código de saída de um hook WorktreeRemove decide o resultado. Quando um hook sai com código não-zero e o diretório em `worktree_path` ainda existe depois, a remoção falha:3328O código de saída de um hook WorktreeRemove decide o resultado. Quando um hook encerra com código diferente de zero e o diretório em `worktree_path` ainda existe depois, a remoção falha:

3319 3329 

3320* A worktree fica no disco, e o comando do hook e stderr vão para o [log de depuração](#debug-hooks).3330* O worktree permanece no disco, e o comando e o stderr do hook vão para o [log de depuração](#debug-hooks).

3321* Se você estava excluindo uma sessão de fundo, a sessão também fica. A mensagem de recusa em [visualização de agente](/docs/pt/agent-view#what-deleting-a-session-removes) relata como o hook terminou, como `exited 1`, cita o início de seu stderr e diz se excluir a sessão novamente remove o diretório de qualquer forma.3331* Se você estava excluindo uma sessão em segundo plano, a sessão também permanece. A mensagem de recusa na [visualização de agentes](/docs/pt/agent-view#what-deleting-a-session-removes) informa como o hook terminou, como `exited 1`, cita o início do seu stderr e diz se excluir a sessão novamente remove o diretório mesmo assim.

3322 3332 

3323<h3 id="precompact">3333<h3 id="precompact">

3324 PreCompact3334 PreCompact

3325</h3>3335</h3>

3326 3336 

3327Executa antes de Claude Code estar prestes a executar uma operação de compactação.3337É executado antes de o Claude Code executar uma operação de compactação.

3328 3338 

3329O valor do matcher indica se a compactação foi disparada manualmente ou automaticamente:3339O valor do matcher indica se a compactação foi acionada manual ou automaticamente:

3330 3340 

3331| Matcher | Quando é disparado |3341| Matcher | Quando é disparado |

3332| :- | :- |3342| :- | :- |

3333| `manual` | `/compact` |3343| `manual` | `/compact` |

3334| `auto` | Compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |3344| `auto` | Compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |

3335 3345 

3336Saia com código 2 para bloquear a compactação. Para um `/compact` manual, a mensagem stderr é mostrada ao usuário. Você também pode bloquear retornando JSON com `"decision": "block"`.3346Encerre com o código 2 para bloquear a compactação. Para um `/compact` manual, a mensagem do stderr é mostrada ao usuário. Você também pode bloquear retornando JSON com `"decision": "block"`.

3337 3347 

3338Bloquear compactação automática tem efeitos diferentes dependendo de quando dispara. Se a compactação foi disparada proativamente antes do limite de contexto, Claude Code a pula e a conversa continua não compactada. Se a compactação foi disparada para recuperar de um erro de limite de contexto já retornado pela API, o erro subjacente aparece e a solicitação atual falha.3348Bloquear a compactação automática tem efeitos diferentes dependendo de quando ela é disparada. Se a compactação foi acionada proativamente antes do limite de contexto, o Claude Code a ignora e a conversa continua sem compactação. Se a compactação foi acionada para se recuperar de um erro de limite de contexto já retornado pela API, o erro subjacente aparece e a requisição atual falha.

3339 3349 

3340Claude Code descarta campos `systemMessage` e `continue` de um hook PreCompact.3350O Claude Code descarta os campos `systemMessage` e `continue` de um hook PreCompact.

3341 3351 

3342<h4 id="precompact-input">3352<h4 id="precompact-input">

3343 Entrada PreCompact3353 Entrada do PreCompact

3344</h4>3354</h4>

3345 3355 

3346Além dos [campos de entrada comuns](#common-input-fields), hooks PreCompact recebem `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contém o que o usuário passa para `/compact` e é `null` quando ele não passa nada. Para `auto`, `custom_instructions` é `null`.3356Além dos [campos de entrada comuns](#common-input-fields), os hooks PreCompact recebem `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contém o que o usuário passa para `/compact` e é `null` quando ele não passa nada. Para `auto`, `custom_instructions` é `null`.

3347 3357 

3348```json theme={null}3358```json theme={null}

3349{3359{


3360 PostCompact3370 PostCompact

3361</h3>3371</h3>

3362 3372 

3363Executa após Claude Code completar uma operação de compactação. Use este evento para reagir ao novo estado compactado, por exemplo para registrar o resumo gerado ou atualizar estado externo. Claude Code descarta campos `systemMessage` e `continue` de um hook PostCompact.3373É executado depois que o Claude Code conclui uma operação de compactação. Use este evento para reagir ao novo estado compactado, por exemplo, para registrar em log o resumo gerado ou atualizar um estado externo. O Claude Code descarta os campos `systemMessage` e `continue` de um hook PostCompact.

3364 3374 

3365Os mesmos valores de matcher se aplicam como para `PreCompact`:3375Os mesmos valores de matcher do `PreCompact` se aplicam:

3366 3376 

3367| Matcher | Quando é disparado |3377| Matcher | Quando é disparado |

3368| :- | :- |3378| :- | :- |

3369| `manual` | Após `/compact` |3379| `manual` | Após `/compact` |

3370| `auto` | Após compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |3380| `auto` | Após a compactação automática quando a conversa atinge a [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) |

3371 3381 

3372<h4 id="postcompact-input">3382<h4 id="postcompact-input">

3373 Entrada PostCompact3383 Entrada do PostCompact

3374</h4>3384</h4>

3375 3385 

3376Além dos [campos de entrada comuns](#common-input-fields), hooks PostCompact recebem `trigger` e `compact_summary`. O campo `compact_summary` contém o resumo de conversa gerado pela operação de compactação.3386Além dos [campos de entrada comuns](#common-input-fields), os hooks PostCompact recebem `trigger` e `compact_summary`. O campo `compact_summary` contém o resumo da conversa gerado pela operação de compactação.

3377 3387 

3378```json theme={null}3388```json theme={null}

3379{3389{


3386}3396}

3387```3397```

3388 3398 

3389Hooks PostCompact não têm controle de decisão. Eles não podem afetar o resultado da compactação mas podem executar tarefas de acompanhamento.3399Os hooks PostCompact não têm controle de decisão. Eles não podem afetar o resultado da compactação, mas podem executar tarefas de acompanhamento.

3390 3400 

3391<h3 id="premodelswitch">3401<h3 id="premodelswitch">

3392 PreModelSwitch3402 PreModelSwitch

3393</h3>3403</h3>

3394 3404 

3395Executa antes de Claude Code aplicar uma mudança de modelo que você ou um cliente solicitou. Use-o para bloquear uma mudança, exigir confirmação ou mostrar qual será o custo da mudança antes de acontecer.3405É executado antes de o Claude Code aplicar uma troca de modelo que você ou um cliente solicitou. Use-o para bloquear uma troca, exigir confirmação ou mostrar quanto a troca vai custar antes que ela aconteça.

3396 3406 

3397PreModelSwitch requer Claude Code v2.1.251 ou posterior. Claude Code o executa para essas solicitações:3407O PreModelSwitch requer o Claude Code v2.1.251 ou posterior. O Claude Code o executa para estas solicitações:

3398 3408 

3399* `/model <name>` e o seletor `/model`3409* `/model <name>` e o seletor do `/model`

3400* O seletor de modelo `Option+P` ou `Alt+P`3410* O seletor de modelo `Option+P` ou `Alt+P`

3401* A configuração Model em `/config`3411* A configuração Model em `/config`

3402* Ativar [modo rápido](/docs/pt/fast-mode) quando isso muda o modelo da sessão3412* Ativar o [modo rápido](/docs/pt/fast-mode) quando isso altera o modelo da sessão

3403* Uma solicitação `set_model`, ou uma mudança de modelo em uma solicitação `apply_flag_settings`, de um host [Agent SDK](/docs/pt/agent-sdk/typescript#query-object) ou [Remote Control](/docs/pt/remote-control)3413* Uma requisição `set_model`, ou uma mudança de modelo em uma requisição `apply_flag_settings`, de um host do [Agent SDK](/docs/pt/agent-sdk/typescript#query-object) ou do [Remote Control](/docs/pt/remote-control)

3404 3414 

3405Claude Code não executa hooks PreModelSwitch para mudanças que faz por conta própria, como um [fallback de modelo automático](/docs/pt/model-config#automatic-model-fallback) ou restaurar o modelo quando você retoma uma sessão. Essas mudanças chegam a [PostModelSwitch](#postmodelswitch) apenas.3415O Claude Code não executa hooks PreModelSwitch para trocas que ele faz por conta própria, como um [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback) ou a restauração do modelo quando você retoma uma sessão. Essas mudanças chegam apenas ao [PostModelSwitch](#postmodelswitch).

3406 3416 

3407Claude Code compara o matcher contra o nome canônico do modelo para o qual a sessão está mudando, ignorando qualquer sufixo `[1m]`. Um alias como `opus`, um ID de modelo datado e um ID específico do provedor como um ID de modelo Amazon Bedrock todos correspondem ao um nome canônico que resolvem, então `claude-opus-5` cobre cada ortografia de Opus 5.3417O Claude Code compara o matcher com o nome canônico do modelo para o qual a sessão está trocando, ignorando qualquer sufixo `[1m]`. Um alias como `opus`, um ID de modelo com data e um ID específico de provedor, como um ID de modelo do Amazon Bedrock, correspondem todos ao único nome canônico para o qual são resolvidos, então `claude-opus-5` abrange todas as grafias do Opus 5.

3408 3418 

3409Quando Claude Code não pode determinar um nome canônico para o alvo, por exemplo um ID de modelo personalizado que apenas seu [gateway LLM](/docs/pt/llm-gateway) conhece, ele executa cada hook PreModelSwitch independentemente do matcher. Um hook que bloqueia deve portanto verificar `to_model` de sua entrada em vez de confiar apenas no matcher.3419Quando o Claude Code não consegue determinar um nome canônico para o destino, por exemplo, um ID de modelo personalizado que somente o seu [gateway de LLM](/docs/pt/llm-gateway) conhece, ele executa todos os hooks PreModelSwitch independentemente do matcher. Portanto, um hook que bloqueia deve verificar `to_model` em sua entrada em vez de depender apenas do matcher.

3410 3420 

3411Escreva o matcher como um nome exato, uma lista separada por `|` como `claude-opus-4-6|claude-opus-5`, ou uma expressão regular como `.*opus.*`. Este exemplo usa um matcher de nome exato e também verifica `to_model` da entrada do hook, então recusa uma mudança para Opus 4.6 ao sair com código 2 e deixa qualquer outro alvo passar:3421Escreva o matcher como um nome exato, uma lista separada por `|` como `claude-opus-4-6|claude-opus-5`, ou uma expressão regular como `.*opus.*`. Este exemplo usa um matcher de nome exato e também verifica `to_model` na entrada do hook, de modo que recusa uma troca para o Opus 4.6 encerrando com o código 2 e permite qualquer outro destino:

3412 3422 

3413<Tabs>3423<Tabs>

3414 <Tab title="macOS/Linux">3424 <Tab title="macOS/Linux">


3434 </Tab>3444 </Tab>

3435 3445 

3436 <Tab title="Windows (PowerShell)">3446 <Tab title="Windows (PowerShell)">

3437 Registre um hook de comando que executa um script através do PowerShell:3447 Registre um hook de comando que executa um script pelo PowerShell:

3438 3448 

3439 ```json theme={null}3449 ```json theme={null}

3440 {3450 {


3461 }3471 }

3462 ```3472 ```

3463 3473 

3464 Salve este script em `.claude/hooks/block-opus-46.ps1` em seu projeto:3474 Salve este script em `.claude/hooks/block-opus-46.ps1` no seu projeto:

3465 3475 

3466 ```powershell theme={null}3476 ```powershell theme={null}

3467 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3477 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json


3474 </Tab>3484 </Tab>

3475</Tabs>3485</Tabs>

3476 3486 

3477Para confirmar que o hook funciona, execute `/model claude-opus-4-6` de uma sessão executando um modelo diferente. Claude Code mantém o modelo atual e relata que um hook PreModelSwitch bloqueou a mudança, com sua mensagem como o motivo.3487Para confirmar que o hook funciona, execute `/model claude-opus-4-6` em uma sessão que esteja usando um modelo diferente. O Claude Code mantém o modelo atual e informa que um hook PreModelSwitch bloqueou a troca, com a sua mensagem como motivo.

3478 3488 

3479<h4 id="premodelswitch-input">3489<h4 id="premodelswitch-input">

3480 Entrada PreModelSwitch3490 Entrada do PreModelSwitch

3481</h4>3491</h4>

3482 3492 

3483Além dos [campos de entrada comuns](#common-input-fields), hooks PreModelSwitch recebem os campos nesta tabela. Os últimos cinco descrevem qual é o custo de reenviar a conversa para o novo modelo, então um hook pode mostrar essa figura antes da mudança acontecer.3493Além dos [campos de entrada comuns](#common-input-fields), os hooks PreModelSwitch recebem os campos desta tabela. Os cinco últimos descrevem quanto custa reenviar a conversa para o novo modelo, para que um hook possa mostrar esse valor antes que a troca aconteça.

3484 3494 

3485| Campo | Tipo | Descrição |3495| Campo | Tipo | Descrição |

3486| :- | :- | :- |3496| :- | :- | :- |

3487| `from_model` | string | ID de modelo da mudança de |3497| `from_model` | string | ID do modelo de origem da troca |

3488| `to_model` | string | ID de modelo da mudança para. O matcher compara contra o nome canônico deste modelo |3498| `to_model` | string | ID do modelo de destino da troca. O matcher é comparado com o nome canônico desse modelo |

3489| `requested_model` | string ou `null` | O modelo que a solicitação nomeou: um alias como `opus`, um ID de modelo completo, ou `null` quando a solicitação foi para o modelo padrão |3499| `requested_model` | string ou `null` | O modelo indicado na solicitação: um alias como `opus`, um ID de modelo completo, ou `null` quando a solicitação foi para o modelo padrão |

3490| `source` | string | De onde a solicitação veio: `"command"` para `/model <name>`, a configuração Model em `/config` ou ativar modo rápido; `"picker"` para um seletor de modelo; `"sdk"` para uma solicitação `set_model`, ou uma mudança de modelo em uma solicitação `apply_flag_settings`, de um host Agent SDK ou Remote Control |3500| `source` | string | De onde veio a solicitação: `"command"` para `/model <name>`, a configuração Model em `/config` ou a ativação do modo rápido; `"picker"` para um seletor de modelo; `"sdk"` para uma requisição `set_model`, ou uma mudança de modelo em uma requisição `apply_flag_settings`, de um host do Agent SDK ou do Remote Control |

3491| `context_tokens` | number | Tokens que a próxima solicitação reenvia como seu prompt: os tokens de entrada, leitura de cache, criação de cache e saída da última resposta na conversa principal, combinados. `0` antes da primeira resposta |3501| `context_tokens` | number | Tokens que a próxima requisição reenvia como seu prompt: os tokens de entrada, de leitura de cache, de criação de cache e de saída da última resposta na conversa principal, somados. `0` antes da primeira resposta |

3492| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está quente, significando que a mudança o perde |3502| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está aquecido, o que significa que a troca o perde |

3493| `cache_ttl` | string | [Tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) que Claude Code solicita para esta sessão: `"5m"` ou `"1h"` |3503| `cache_ttl` | string | [Tempo de vida do cache de prompt](/docs/pt/prompt-caching#cache-lifetime) que o Claude Code solicita para esta sessão: `"5m"` ou `"1h"` |

3494| `estimated_cache_write_usd` | number | Custo estimado em dólares americanos de escrever `context_tokens` no cache de prompt em `to_model` na taxa `cache_ttl`, excluindo a próxima resposta. O servidor pode não precisar re-cachear todo o contexto, então trate-o como uma estimativa |3504| `estimated_cache_write_usd` | number | Custo estimado em dólares americanos de gravar `context_tokens` no cache de prompt em `to_model` à taxa de `cache_ttl`, excluindo a próxima resposta. O servidor pode não precisar refazer o cache de todo o contexto, então trate-o como uma estimativa |

3495| `pricing` | string | Como Claude Code precificou `estimated_cache_write_usd`: `"configured"` em suas próprias taxas da organização quando as configurou, `"catalog"` ao preço de lista, ou `"default"` quando `to_model` não tem preço conhecido e Claude Code assumiu uma taxa padrão |3505| `pricing` | string | Como o Claude Code precificou `estimated_cache_write_usd`: `"configured"` pelas taxas próprias da sua organização quando ela as configurou, `"catalog"` pelo preço de tabela, ou `"default"` quando `to_model` não tem preço conhecido e o Claude Code assumiu uma taxa padrão |

3496 3506 

3497Este exemplo mostra a entrada para `/model opus` em uma sessão executando Sonnet 5:3507Este exemplo mostra a entrada para `/model opus` em uma sessão usando o Sonnet 5:

3498 3508 

3499```json theme={null}3509```json theme={null}

3500{3510{


3515```3525```

3516 3526 

3517<h4 id="premodelswitch-decision-control">3527<h4 id="premodelswitch-decision-control">

3518 Controle de decisão PreModelSwitch3528 Controle de decisão do PreModelSwitch

3519</h4>3529</h4>

3520 3530 

3521Hooks `PreModelSwitch` podem cancelar a mudança, pedir ao usuário para confirmar ou deixar prosseguir. Código de saída 2 ou `decision: "block"` de nível superior cancela a mudança.3531Os hooks `PreModelSwitch` podem cancelar a troca, pedir ao usuário que a confirme ou deixá-la prosseguir. O código de saída 2 ou um `decision: "block"` no nível superior cancela a troca.

3522 3532 

3523Para controle mais fino, retorne `permissionDecision` e `permissionDecisionReason` em um objeto `hookSpecificOutput`, como em [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` aceita `"allow"`, `"deny"` e `"ask"`. Não aceita `"defer"`, `updatedInput` ou `additionalContext`. A tabela abaixo descreve ambos os campos:3533Para um controle mais refinado, retorne `permissionDecision` e `permissionDecisionReason` em um objeto `hookSpecificOutput`, como no [PreToolUse](#pretooluse-decision-control). O `PreModelSwitch` aceita `"allow"`, `"deny"` e `"ask"`. Ele não aceita `"defer"`, `updatedInput` nem `additionalContext`. A tabela abaixo descreve ambos os campos:

3524 3534 

3525| Campo | Descrição |3535| Campo | Descrição |

3526| :- | :- |3536| :- | :- |

3527| `permissionDecision` | `"allow"` prossegue e pula a [confirmação que Claude Code mostra enquanto o cache de prompt está quente](/docs/pt/prompt-caching#switching-models). `"deny"` cancela a mudança. `"ask"` solicita ao usuário para confirmar |3537| `permissionDecision` | `"allow"` prossegue e pula a [confirmação que o Claude Code mostra enquanto o cache de prompt está aquecido](/docs/pt/prompt-caching#switching-models). `"deny"` cancela a troca. `"ask"` pede ao usuário que a confirme |

3528| `permissionDecisionReason` | Para `"deny"`, mostrado ao usuário como o motivo pelo qual a mudança foi bloqueada, ou retornado como o erro para uma solicitação `set_model`. Para `"ask"`, mostrado no prompt de confirmação. Ignorado para `"allow"` |3538| `permissionDecisionReason` | Para `"deny"`, mostrado ao usuário como o motivo pelo qual a troca foi bloqueada, ou retornado como erro para uma requisição `set_model`. Para `"ask"`, mostrado no prompt de confirmação. Ignorado para `"allow"` |

3529 3539 

3530Apenas `/model` em uma sessão interativa pode mostrar o prompt `"ask"`. Em todas as outras superfícies, incluindo modo não interativo com a flag `-p`, `/config` e solicitações `set_model`, Claude Code trata `"ask"` como uma recusa.3540Somente o `/model` em uma sessão interativa pode mostrar o prompt de `"ask"`. Em todas as outras superfícies, incluindo o modo não interativo com a flag `-p`, `/config` e requisições `set_model`, o Claude Code trata `"ask"` como uma recusa.

3531 3541 

3532Este exemplo pede ao usuário para confirmar e cita a contagem de tokens de `context_tokens`:3542Este exemplo pede ao usuário que confirme e cita a contagem de tokens de `context_tokens`:

3533 3543 

3534```json theme={null}3544```json theme={null}

3535{3545{


3543 3553 

3544Quando vários hooks PreModelSwitch retornam decisões diferentes, a precedência é `deny` > `ask` > `allow`.3554Quando vários hooks PreModelSwitch retornam decisões diferentes, a precedência é `deny` > `ask` > `allow`.

3545 3555 

3546Claude Code mostra ao usuário qualquer `systemMessage` que seu hook retorna independentemente da decisão, então um hook de relatório de custo pode retornar `{"systemMessage": "..."}` e sair com 0.3556O Claude Code mostra ao usuário qualquer `systemMessage` que seu hook retornar, independentemente da decisão, então um hook de relatório de custo pode retornar `{"systemMessage": "..."}` e encerrar com 0.

3547 3557 

3548Um hook PreModelSwitch que não responde antes de seu tempo limite bloqueia a mudança. Em [PreToolUse](#timeouts), por contraste, um hook de comando que atingiu tempo limite deixa a chamada de ferramenta continuar. O tempo limite padrão para este evento é 30 segundos. `PreModelSwitch` executa apenas hooks `command`, `http` e `mcp_tool`, então os padrões `prompt` e `agent` não se aplicam.3558Um hook PreModelSwitch que não responde antes do seu timeout bloqueia a troca. No [PreToolUse](#timeouts), por outro lado, um hook de comando que atingiu o timeout deixa a chamada de ferramenta continuar. O timeout padrão para este evento é de 30 segundos. O `PreModelSwitch` executa apenas hooks `command`, `http` e `mcp_tool`, então os padrões de `prompt` e `agent` não se aplicam.

3549 3559 

3550Um hook que sai com um código diferente de 0 ou 2 e não imprime nenhuma decisão JSON não bloqueia: Claude Code mostra seu stderr e aplica a mudança, conforme descrito em [Outros códigos de saída](#other-exit-codes).3560Um hook que encerra com um código diferente de 0 ou 2 e não imprime nenhuma decisão JSON não bloqueia: o Claude Code mostra seu stderr e aplica a troca, conforme descrito em [Outros códigos de saída](#other-exit-codes).

3551 3561 

3552<h3 id="postmodelswitch">3562<h3 id="postmodelswitch">

3553 PostModelSwitch3563 PostModelSwitch

3554</h3>3564</h3>

3555 3565 

3556Executa após o modelo da sessão mudar. Use-o para dar orientação específica do modelo ao Claude sem editar cada CLAUDE.md, por exemplo uma instrução em toda a organização que se aplica em certos modelos.3566É executado depois que o modelo da sessão muda. Use-o para dar ao Claude orientações específicas do modelo sem editar cada CLAUDE.md, por exemplo, uma instrução para toda a organização que se aplica a determinados modelos.

3557 3567 

3558PostModelSwitch requer Claude Code v2.1.251 ou posterior. Não pode bloquear, porque o modelo já mudou. Claude Code executa hooks PostModelSwitch após qualquer uma dessas mudanças:3568O PostModelSwitch requer o Claude Code v2.1.251 ou posterior. Ele não pode bloquear, porque o modelo já mudou. O Claude Code executa hooks PostModelSwitch após qualquer uma destas mudanças:

3559 3569 

3560* Uma mudança que você ou um cliente solicitou3570* Uma troca que você ou um cliente solicitou

3561* Um [fallback de modelo automático](/docs/pt/model-config#automatic-model-fallback), que muda o modelo da sessão3571* Um [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback), que altera o modelo da sessão

3562* Uma configuração como [`opusplan`](/docs/pt/model-config#opusplan-model-setting) entrando ou saindo do modo de plano3572* Uma configuração como [`opusplan`](/docs/pt/model-config#opusplan-model-setting) entrando ou saindo do modo de planejamento

3563* Claude Code restaurando o modelo quando você retoma uma sessão3573* O Claude Code restaurando o modelo quando você retoma uma sessão

3564 3574 

3565Claude Code não executa hooks PostModelSwitch quando um modelo de uma [cadeia de modelo fallback](/docs/pt/model-config#fallback-model-chains) serve um turno, porque essa substituição dura um turno e deixa o modelo da sessão inalterado.3575O Claude Code não executa hooks PostModelSwitch quando um modelo de uma [cadeia de modelos de fallback](/docs/pt/model-config#fallback-model-chains) atende a um turno, porque essa substituição dura um turno e mantém o modelo da sessão inalterado.

3566 3576 

3567O matcher segue as mesmas regras que [PreModelSwitch](#premodelswitch): Claude Code compara contra o nome canônico do modelo para o qual a sessão mudou.3577O matcher segue as mesmas regras do [PreModelSwitch](#premodelswitch): o Claude Code o compara com o nome canônico do modelo para o qual a sessão trocou.

3568 3578 

3569Este exemplo adiciona orientação sempre que o modelo da sessão muda para qualquer modelo Opus:3579Este exemplo adiciona orientações sempre que o modelo da sessão muda para qualquer modelo Opus:

3570 3580 

3571```json theme={null}3581```json theme={null}

3572{3582{


3586}3596}

3587```3597```

3588 3598 

3589Para confirmar que o hook funciona, mude para um modelo Opus de uma sessão executando um modelo diferente, por exemplo execute `/model opus` de uma sessão Sonnet, depois pergunte ao Claude qual orientação ele tem sobre o modelo atual.3599Para confirmar que o hook funciona, troque para um modelo Opus a partir de uma sessão que esteja usando um modelo diferente, por exemplo, execute `/model opus` em uma sessão do Sonnet, e depois pergunte ao Claude quais orientações ele tem sobre o modelo atual.

3590 3600 

3591<h4 id="postmodelswitch-input">3601<h4 id="postmodelswitch-input">

3592 Entrada PostModelSwitch3602 Entrada do PostModelSwitch

3593</h4>3603</h4>

3594 3604 

3595Hooks PostModelSwitch recebem os mesmos campos que [PreModelSwitch](#premodelswitch-input), com `hook_event_name` definido como `"PostModelSwitch"` e dois valores `source` mais: `"auto"` para um fallback automático ou outra mudança que Claude Code fez por conta própria, e `"resume"` para o modelo restaurado quando você retoma uma sessão.3605Os hooks PostModelSwitch recebem os mesmos campos do [PreModelSwitch](#premodelswitch-input), com `hook_event_name` definido como `"PostModelSwitch"` e mais dois valores de `source`: `"auto"` para um fallback automático ou outra mudança que o Claude Code fez por conta própria, e `"resume"` para o modelo restaurado quando você retoma uma sessão.

3596 3606 

3597`requested_model` é `null` quando `source` é `"auto"`. Quando `source` é `"resume"`, é a configuração de modelo salva que Claude Code restaurou.3607`requested_model` é `null` quando `source` é `"auto"`. Quando `source` é `"resume"`, é a configuração de modelo salva que o Claude Code restaurou.

3598 3608 

3599<h4 id="postmodelswitch-decision-control">3609<h4 id="postmodelswitch-decision-control">

3600 Controle de decisão PostModelSwitch3610 Controle de decisão do PostModelSwitch

3601</h4>3611</h4>

3602 3612 

3603Claude Code pega seu [stdout de texto simples](#exit-code-0) de hook ao sair com 0, ou `additionalContext` de saída JSON, e o entrega ao Claude com a próxima solicitação após a mudança. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:3613O Claude Code pega o [stdout em texto simples](#exit-code-0) do seu hook ao encerrar com 0, ou o `additionalContext` da saída JSON, e o entrega ao Claude com a próxima requisição após a troca. Além dos [campos de saída JSON](#json-output) disponíveis para todos os hooks, você pode retornar:

3604 3614 

3605| Campo | Descrição |3615| Campo | Descrição |

3606| :- | :- |3616| :- | :- |

3607| `additionalContext` | String adicionada ao contexto do Claude com a próxima solicitação. Veja [Adicionar contexto para Claude](#add-context-for-claude) |3617| `additionalContext` | String adicionada ao contexto do Claude com a próxima requisição. Consulte [Adicionar contexto para o Claude](#add-context-for-claude) |

3608 3618 

3609Se o hook não terminar dentro de cinco segundos após você enviar a próxima solicitação, Claude Code envia essa solicitação sem a saída e a anexa à solicitação seguinte em vez disso. Se o modelo mudar várias vezes antes da próxima solicitação, Claude Code entrega apenas a saída para a mudança de alvo do último modelo.3619Se o hook não tiver terminado dentro de cinco segundos depois que você enviar o próximo prompt, o Claude Code envia essa requisição sem a saída e a anexa à requisição seguinte. Se o modelo mudar várias vezes antes da próxima requisição, o Claude Code entrega apenas a saída referente ao modelo de destino da última troca.

3610 3620 

3611<h3 id="sessionend">3621<h3 id="sessionend">

3612 SessionEnd3622 SessionEnd

3613</h3>3623</h3>

3614 3624 

3615Executa quando uma sessão Claude Code termina. Útil para tarefas de limpeza, registrar estatísticas de sessão ou salvar estado de sessão. Suporta matchers para filtrar por motivo de saída.3625É executado quando uma sessão do Claude Code termina. Útil para tarefas de limpeza, registro em log de estatísticas

3626da sessão ou salvamento do estado da sessão. Suporta matchers para filtrar pelo motivo de saída.

3616 3627 

3617O campo `reason` na entrada do hook indica por que a sessão terminou:3628O campo `reason` na entrada do hook indica por que a sessão terminou:

3618 3629 

3619| Motivo | Descrição |3630| Motivo | Descrição |

3620| :- | :- |3631| :- | :- |

3621| `clear` | Sessão limpa com comando `/clear` |3632| `clear` | Sessão limpa com o comando `/clear` |

3622| `resume` | Sessão mudada via `/resume` interativo |3633| `resume` | Sessão trocada via `/resume` interativo |

3623| `logout` | Usuário fez logout |3634| `logout` | O usuário fez logout |

3624| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |3635| `prompt_input_exit` | O usuário saiu enquanto a entrada do prompt estava visível |

3625| `other` | Outros motivos de saída |3636| `other` | Outros motivos de saída |

3626| `bypass_permissions_disabled` | Removido na v2.1.234; Claude Code não o envia. Remova-o de seus matchers `SessionEnd` |3637| `bypass_permissions_disabled` | Removido na v2.1.234; o Claude Code não o envia. Remova-o dos seus matchers de `SessionEnd` |

3627 3638 

3628<h4 id="sessionend-input">3639<h4 id="sessionend-input">

3629 Entrada SessionEnd3640 Entrada do SessionEnd

3630</h4>3641</h4>

3631 3642 

3632Além dos [campos de entrada comuns](#common-input-fields), hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Veja a [tabela de motivos](#sessionend) acima para todos os valores.3643Além dos [campos de entrada comuns](#common-input-fields), os hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Consulte a [tabela de motivos](#sessionend) acima para ver todos os valores.

3633 3644 

3634```json theme={null}3645```json theme={null}

3635{3646{


3641}3652}

3642```3653```

3643 3654 

3644Hooks SessionEnd não têm controle de decisão. Eles não podem bloquear o término da sessão mas podem executar tarefas de limpeza. Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage`.3655Os hooks SessionEnd não têm controle de decisão. Eles não podem bloquear o encerramento da sessão, mas podem executar tarefas de limpeza. O Claude Code descarta seus [campos de saída JSON](#json-output), como `systemMessage`.

3645 3656 

3646Hooks SessionEnd têm um tempo limite padrão de 1,5 segundos. Aplica-se quando você sai, executa `/clear` ou muda de sessões com `/resume` interativo. Você pode dar a um hook mais tempo de duas maneiras:3657Os hooks SessionEnd têm um timeout padrão de 1,5 segundo. Ele se aplica quando você sai, executa `/clear` ou troca de sessão com o `/resume` interativo. Você pode dar mais tempo a um hook de duas maneiras:

3647 3658 

3648* **`timeout` por hook**: defina `timeout` na configuração daquele hook. O orçamento geral sobe automaticamente para corresponder ao `timeout` por hook mais alto em seus arquivos de configurações, até 60 segundos. Se você aumentar o orçamento dessa forma, um hook sem seu próprio `timeout` ainda mantém o padrão. Tempos limite definidos em hooks fornecidos por plugin não aumentam o orçamento.3659* **`timeout` por hook**: defina `timeout` na configuração desse hook. O orçamento geral aumenta automaticamente para corresponder ao maior `timeout` por hook nos seus arquivos de configuração, até 60 segundos. Se você aumentar o orçamento dessa forma, um hook sem seu próprio `timeout` ainda mantém o padrão. Timeouts definidos em hooks fornecidos por plugins não aumentam o orçamento.

3649* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: defina esta variável de ambiente em milissegundos para sobrescrever o orçamento explicitamente. O valor que você define também se torna o tempo limite para cada hook sem seu próprio `timeout`.3660* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: defina esta variável de ambiente em milissegundos para sobrescrever o orçamento explicitamente. O valor que você define também se torna o timeout de cada hook sem seu próprio `timeout`.

3650 3661 

3651Este exemplo define o orçamento para 5 segundos:3662Este exemplo define o orçamento como 5 segundos:

3652 3663 

3653```bash theme={null}3664```bash theme={null}

3654CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3665CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3655```3666```

3656 3667 

3657Antes da v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` aumentava apenas o orçamento geral, e um hook sem seu próprio `timeout` ainda era cancelado após 1,5 segundos.3668Antes da v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` aumentava apenas o orçamento geral, e um hook sem seu próprio `timeout` ainda era cancelado após 1,5 segundo.

3658 3669 

3659<h3 id="elicitation">3670<h3 id="elicitation">

3660 Elicitation3671 Elicitation

3661</h3>3672</h3>

3662 3673 

3663Executa quando um servidor MCP solicita entrada do usuário no meio da tarefa. Por padrão, Claude Code mostra um diálogo interativo para o usuário responder. Hooks podem interceptar esta solicitação e responder programaticamente, pulando o diálogo inteiramente.3674É executado quando um servidor MCP solicita entrada do usuário no meio de uma tarefa. Por padrão, o Claude Code mostra uma caixa de diálogo interativa para o usuário responder. Os hooks podem interceptar essa solicitação e responder programaticamente, pulando totalmente a caixa de diálogo.

3664 3675 

3665O campo matcher corresponde ao nome do servidor MCP.3676O campo matcher é comparado com o nome do servidor MCP.

3666 3677 

3667<h4 id="elicitation-input">3678<h4 id="elicitation-input">

3668 Entrada Elicitation3679 Entrada do Elicitation

3669</h4>3680</h4>

3670 3681 

3671Além dos [campos de entrada comuns](#common-input-fields), hooks Elicitation recebem `mcp_server_name`, `message` e campos opcionais `mode`, `url`, `elicitation_id` e `requested_schema`.3682Além dos [campos de entrada comuns](#common-input-fields), os hooks Elicitation recebem `mcp_server_name`, `message` e os campos opcionais `mode`, `url`, `elicitation_id` e `requested_schema`.

3672 3683 

3673Para elicitação de modo de formulário, o caso mais comum:3684Para elicitação no modo de formulário, o caso mais comum:

3674 3685 

3675```json theme={null}3686```json theme={null}

3676{3687{


3690}3701}

3691```3702```

3692 3703 

3693Para elicitação de modo URL, usada para autenticação baseada em navegador:3704Para elicitação no modo URL, usada para autenticação baseada em navegador:

3694 3705 

3695```json theme={null}3706```json theme={null}

3696{3707{


3706```3717```

3707 3718 

3708<h4 id="elicitation-output">3719<h4 id="elicitation-output">

3709 Saída Elicitation3720 Saída do Elicitation

3710</h4>3721</h4>

3711 3722 

3712Para responder programaticamente sem mostrar o diálogo, retorne um objeto JSON com `hookSpecificOutput`:3723Para responder programaticamente sem mostrar a caixa de diálogo, retorne um objeto JSON com `hookSpecificOutput`:

3713 3724 

3714```json theme={null}3725```json theme={null}

3715{3726{


3726| Campo | Valores | Descrição |3737| Campo | Valores | Descrição |

3727| :- | :- | :- |3738| :- | :- | :- |

3728| `action` | `accept`, `decline`, `cancel` | Se deve aceitar, recusar ou cancelar a solicitação |3739| `action` | `accept`, `decline`, `cancel` | Se deve aceitar, recusar ou cancelar a solicitação |

3729| `content` | object | Valores de campo de formulário a enviar. Usado apenas quando `action` é `accept` |3740| `content` | object | Valores dos campos do formulário a serem enviados. Usado somente quando `action` é `accept` |

3730 3741 

3731Código de saída 2 nega a elicitação. Claude Code não mostra sua mensagem stderr em lugar algum.3742O código de saída 2 nega a elicitação. O Claude Code não mostra sua mensagem de stderr em lugar nenhum.

3732 3743 

3733Claude Code age em `hookSpecificOutput` de uma saída JSON de hook Elicitation e descarta `systemMessage` e `continue`.3744O Claude Code age com base no `hookSpecificOutput` da saída JSON de um hook Elicitation e descarta `systemMessage` e `continue`.

3734 3745 

3735<h3 id="elicitationresult">3746<h3 id="elicitationresult">

3736 ElicitationResult3747 ElicitationResult

3737</h3>3748</h3>

3738 3749 

3739Executa após um usuário responder a uma elicitação MCP. Hooks podem observar, modificar ou bloquear a resposta antes de ser enviada de volta para o servidor MCP.3750É executado depois que um usuário responde a uma elicitação MCP. Os hooks podem observar, modificar ou bloquear a resposta antes que ela seja enviada de volta ao servidor MCP.

3740 3751 

3741O campo matcher corresponde ao nome do servidor MCP.3752O campo matcher é comparado com o nome do servidor MCP.

3742 3753 

3743<h4 id="elicitationresult-input">3754<h4 id="elicitationresult-input">

3744 Entrada ElicitationResult3755 Entrada do ElicitationResult

3745</h4>3756</h4>

3746 3757 

3747Além dos [campos de entrada comuns](#common-input-fields), hooks ElicitationResult recebem `mcp_server_name`, `action` e campos opcionais `mode`, `elicitation_id` e `content`.3758Além dos [campos de entrada comuns](#common-input-fields), os hooks ElicitationResult recebem `mcp_server_name`, `action` e os campos opcionais `mode`, `elicitation_id` e `content`.

3748 3759 

3749```json theme={null}3760```json theme={null}

3750{3761{


3761```3772```

3762 3773 

3763<h4 id="elicitationresult-output">3774<h4 id="elicitationresult-output">

3764 Saída ElicitationResult3775 Saída do ElicitationResult

3765</h4>3776</h4>

3766 3777 

3767Para sobrescrever a resposta do usuário, retorne um objeto JSON com `hookSpecificOutput`:3778Para sobrescrever a resposta do usuário, retorne um objeto JSON com `hookSpecificOutput`:


3779| Campo | Valores | Descrição |3790| Campo | Valores | Descrição |

3780| :- | :- | :- |3791| :- | :- | :- |

3781| `action` | `accept`, `decline`, `cancel` | Sobrescreve a ação do usuário |3792| `action` | `accept`, `decline`, `cancel` | Sobrescreve a ação do usuário |

3782| `content` | object | Sobrescreve valores de campo de formulário. Significativo apenas quando `action` é `accept` |3793| `content` | object | Sobrescreve os valores dos campos do formulário. Significativo somente quando `action` é `accept` |

3783 3794 

3784Código de saída 2 bloqueia a resposta, mudando a ação efetiva para `decline`. Claude Code não mostra sua mensagem stderr em lugar algum.3795O código de saída 2 bloqueia a resposta, alterando a ação efetiva para `decline`. O Claude Code não mostra sua mensagem de stderr em lugar nenhum.

3785 3796 

3786Claude Code age em `hookSpecificOutput` de uma saída JSON de hook ElicitationResult e descarta `systemMessage` e `continue`.3797O Claude Code age com base no `hookSpecificOutput` da saída JSON de um hook ElicitationResult e descarta `systemMessage` e `continue`.

3787 3798 

3788<h2 id="prompt-based-hooks">3799<h2 id="prompt-based-hooks">

3789 Hooks baseados em prompt3800 Hooks baseados em prompt

hooks-guide.md +1 −1

Details

503| :- | :- |503| :- | :- |

504| `SessionStart` | Quando uma sessão começa ou é retomada |504| `SessionStart` | Quando uma sessão começa ou é retomada |

505| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |505| `Setup` | Quando você inicia Claude Code com `--init-only`, ou com `--init` ou `--maintenance` no modo `-p`. Para preparação única em CI ou scripts |

506| `UserPromptSubmit` | Quando você envia um prompt, antes de Claude processá-lo |506| `UserPromptSubmit` | Quando um prompt é enviado, antes de Claude processá-lo. Também dispara em [turnos que Claude Code inicia por conta própria](/docs/pt/hooks#userpromptsubmit) |

507| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |507| `UserPromptExpansion` | Quando um comando digitado pelo usuário se expande em um prompt, antes de chegar a Claude. Pode bloquear a expansão |

508| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |508| `PreToolUse` | Antes de uma chamada de ferramenta ser executada. Pode bloqueá-la |

509| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |509| `PermissionRequest` | Quando uma chamada de ferramenta precisa de uma decisão de permissão |

keybindings.md +27 −1

Details

68| `EffortSlider` | Controle deslizante de esforço aberto por `/effort` |68| `EffortSlider` | Controle deslizante de esforço aberto por `/effort` |

69| `Select` | Componentes genéricos de seleção/lista |69| `Select` | Componentes genéricos de seleção/lista |

70| `Plugin` | Diálogo de plugin (procurar, descobrir, gerenciar) |70| `Plugin` | Diálogo de plugin (procurar, descobrir, gerenciar) |

71| `Pane` | Um painel desenhado por um [mod](/docs/pt/plugins/mods/interface#know-which-keys-your-mod-can-receive) tem o foco do teclado |

72| `PaneField` | Um campo de entrada ou seleção no painel de um mod tem o foco do teclado |

71| `Agents` | [Visualização de agente](/docs/pt/agent-view) (`claude agents`) |73| `Agents` | [Visualização de agente](/docs/pt/agent-view) (`claude agents`) |

72| `Scroll` | Rolagem de conversa e seleção de texto em modo tela cheia |74| `Scroll` | Rolagem de conversa e seleção de texto em modo tela cheia |

73 75 


596 598 

597Isso também funciona para atalhos de teclado de acordes. Desassociar cada acorde que compartilha um prefixo libera esse prefixo para uso como um atalho de teclado de uma única tecla. Um acorde em qualquer contexto ativo mantém seu prefixo reservado, portanto você deve desassociar cada acorde no contexto que o define.599Isso também funciona para atalhos de teclado de acordes. Desassociar cada acorde que compartilha um prefixo libera esse prefixo para uso como um atalho de teclado de uma única tecla. Um acorde em qualquer contexto ativo mantém seu prefixo reservado, portanto você deve desassociar cada acorde no contexto que o define.

598 600 

599Claude Code vincula esses acordes padrão no prefixo `ctrl+x`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` e `ctrl+x tab` em `Chat`, `ctrl+x ctrl+b` em `Task` e `ctrl+x b` em `DiffPanel`. O acorde `ctrl+x enter` requer v2.1.247 ou posterior, `ctrl+x b`, `ctrl+x ctrl+a` e `ctrl+x tab` requerem v2.1.260 ou posterior, e `ctrl+x ctrl+s` requer v2.1.275 ou posterior.601Claude Code vincula esses acordes padrão no prefixo `ctrl+x`, por contexto:

602 

603* `Chat`: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, `ctrl+x ctrl+s` e `ctrl+x tab`

604* `Task`: `ctrl+x ctrl+b`

605* `DiffPanel`: `ctrl+x b`

606* `Pane`: `ctrl+x left`, `ctrl+x right`, `ctrl+x up`, `ctrl+x down` e `ctrl+x x`

607* `PaneField`: `ctrl+x x`

608 

609O acorde `ctrl+x enter` requer v2.1.247 ou posterior, `ctrl+x b`, `ctrl+x ctrl+a` e `ctrl+x tab` requerem v2.1.260 ou posterior, e `ctrl+x ctrl+s` requer v2.1.275 ou posterior.

600 610 

601Para recuperar `ctrl+x` em si como um atalho de teclado de uma única tecla, desassocie todos eles:611Para recuperar `ctrl+x` em si como um atalho de teclado de uma única tecla, desassocie todos eles:

602 612 


615 "ctrl+x b": null625 "ctrl+x b": null

616 }626 }

617 },627 },

628 {

629 "context": "Pane",

630 "bindings": {

631 "ctrl+x left": null,

632 "ctrl+x right": null,

633 "ctrl+x up": null,

634 "ctrl+x down": null,

635 "ctrl+x x": null

636 }

637 },

638 {

639 "context": "PaneField",

640 "bindings": {

641 "ctrl+x x": null

642 }

643 },

618 {644 {

619 "context": "Chat",645 "context": "Chat",

620 "bindings": {646 "bindings": {

Details

245| [Gerenciamento de contexto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | Header beta de gerenciamento de contexto emparelhado com o campo de corpo `context_management` | `400` com `Extra inputs are not permitted`. Comum quando um gateway aceita solicitações no formato Anthropic mas as encaminha para Amazon Bedrock | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [Gerenciamento de contexto](https://platform.claude.com/docs/en/build-with-claude/context-editing) | Header beta de gerenciamento de contexto emparelhado com o campo de corpo `context_management` | `400` com `Extra inputs are not permitted`. Comum quando um gateway aceita solicitações no formato Anthropic mas as encaminha para Amazon Bedrock | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [Contexto estendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Apenas headers beta, sem campo de corpo | Silenciosamente indisponível quando o header é removido; o upstream nunca vê a solicitação de capacidade | Encaminhe `anthropic-beta` verbatim |246| [Contexto estendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) e [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Apenas headers beta, sem campo de corpo | Silenciosamente indisponível quando o header é removido; o upstream nunca vê a solicitação de capacidade | Encaminhe `anthropic-beta` verbatim |

247| Campos de [ferramenta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Headers beta relacionados a ferramentas emparelhados com campos de schema de ferramenta como `strict` e `defer_loading` | `400` nomeando o campo de schema de ferramenta não reconhecido quando o corpo passa sem seu header | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| Campos de [ferramenta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Headers beta relacionados a ferramentas emparelhados com campos de schema de ferramenta como `strict` e `defer_loading` | `400` nomeando o campo de schema de ferramenta não reconhecido quando o corpo passa sem seu header | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [Esforço](https://platform.claude.com/docs/en/build-with-claude/effort) e [saídas estruturadas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | O campo de corpo `output_config` carrega esforço, formato de saída estruturada e configurações de orçamento de tarefa; cada um emparelhado com seu próprio header beta | `400` nomeando `output_config`, frequentemente `Extra inputs are not permitted`, em upstreams Amazon Bedrock e Agent Platform do Google Cloud | Encaminhe o campo e seus headers juntos, ou peça aos desenvolvedores que definam [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que remove as configurações de formato e de orçamento de tarefa, mas não o esforço |248| [Esforço](https://platform.claude.com/docs/en/build-with-claude/effort) e [saídas estruturadas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | O campo de corpo `output_config` carrega esforço, formato de saída estruturada e configurações de orçamento de tarefa; cada um emparelhado com seu próprio header beta | `400` nomeando `output_config`, frequentemente `Extra inputs are not permitted`, em upstreams Amazon Bedrock e Agent Platform do Google Cloud | Encaminhe o campo e seus headers juntos, ou peça aos desenvolvedores que definam [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities), que remove as configurações de formato e de orçamento de tarefa, mas não o esforço. Para remover apenas o formato, eles podem definir [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/pt/env-vars) em vez disso, o que requer v2.1.288 ou posterior |

249| [Prompt caching](/docs/pt/prompt-caching) | Sem emparelhamento beta. Claude Code anexa marcadores `cache_control` a blocos `system` e a entradas `messages`, incluindo entradas `role: "system"` anexadas no meio da conversa | Sem erro: a conversa é cobrada como entrada não armazenada em cache a cada turno, visível como `input_tokens` alto com pouca ou nenhuma atividade de cache em `usage` | Encaminhe `cache_control` inalterado onde quer que apareça, e não converta `system` em forma de bloco ou conteúdo de mensagem para strings simples |249| [Prompt caching](/docs/pt/prompt-caching) | Sem emparelhamento beta. Claude Code anexa marcadores `cache_control` a blocos `system` e a entradas `messages`, incluindo entradas `role: "system"` anexadas no meio da conversa | Sem erro: a conversa é cobrada como entrada não armazenada em cache a cada turno, visível como `input_tokens` alto com pouca ou nenhuma atividade de cache em `usage` | Encaminhe `cache_control` inalterado onde quer que apareça, e não converta `system` em forma de bloco ou conteúdo de mensagem para strings simples |

250| [Contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sem emparelhamento beta; usa o endpoint `count_tokens` | Sem erro: Claude Code volta a uma estimativa baseada em caracteres, então `/context` mostra contagens aproximadas | Exponha o endpoint para contagens de tokens exatas |250| [Contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sem emparelhamento beta; usa o endpoint `count_tokens` | Sem erro: Claude Code volta a uma estimativa baseada em caracteres, então `/context` mostra contagens aproximadas | Exponha o endpoint para contagens de tokens exatas |

251 251 


362Um ID descoberto não recebe sua própria linha quando corresponde a uma linha já no seletor:362Um ID descoberto não recebe sua própria linha quando corresponde a uma linha já no seletor:

363 363 

364* Mesmo ID: o ID descoberto corresponde exatamente ao ID de uma linha existente, ou os dois IDs são grafias da mesma versão [Fable](/docs/pt/model-config#work-with-fable).364* Mesmo ID: o ID descoberto corresponde exatamente ao ID de uma linha existente, ou os dois IDs são grafias da mesma versão [Fable](/docs/pt/model-config#work-with-fable).

365* Mesmo modelo que um alias integrado: quando um ID explícito descoberto nomeia o modelo para o qual um alias integrado atualmente se resolve, o seletor mostra apenas a linha do alias. Por exemplo, enquanto `sonnet` se resolve para `claude-sonnet-5-5`, um `claude-sonnet-5-5` descoberto colapsa na linha `sonnet`, e um `claude-sonnet-5` descoberto ainda recebe sua própria linha. Antes da v2.1.197, Claude Code não dobrava esses IDs em linhas integradas, então o ID para o qual um alias se resolvia também recebia sua própria linha "Do gateway".365* Mesmo modelo que um alias integrado: quando um ID explícito descoberto nomeia o modelo para o qual um alias integrado atualmente se resolve, o seletor mostra apenas a linha do alias. Por exemplo, enquanto `sonnet` se resolve para `claude-sonnet-5-5`, um `claude-sonnet-5-5` descoberto colapsa na linha `sonnet`, e um `claude-sonnet-5` descoberto ainda recebe sua própria linha.

366 366 

367Os resultados são armazenados em cache em `~/.claude/cache/gateway-models.json`, ou `%USERPROFILE%\.claude\cache\gateway-models.json` no Windows, e atualizados em cada inicialização. Se você definir [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars), o cache fica sob esse diretório em vez disso. Se a solicitação falhar ou o gateway não implementar `/v1/models`, o seletor volta para a lista em cache da inicialização anterior ou para a lista de modelos integrada. Se seu gateway serve modelos Claude sob aliases que não correspondem ao filtro de descoberta, desenvolvedores podem adicionar esses aliases manualmente com as [variáveis de configuração de modelo](/docs/pt/model-config).367Os resultados são armazenados em cache em `~/.claude/cache/gateway-models.json`, ou `%USERPROFILE%\.claude\cache\gateway-models.json` no Windows, e atualizados em cada inicialização. Se você definir [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars), o cache fica sob esse diretório em vez disso. Se a solicitação falhar ou o gateway não implementar `/v1/models`, o seletor volta para a lista em cache da inicialização anterior ou para a lista de modelos integrada. Se seu gateway serve modelos Claude sob aliases que não correspondem ao filtro de descoberta, desenvolvedores podem adicionar esses aliases manualmente com as [variáveis de configuração de modelo](/docs/pt/model-config).

368 368 

mcp.md +6 −6

Details

371 371 

372No v2, Claude Code também:372No v2, Claude Code também:

373 373 

374* Pergunta aos servidores HTTP se eles suportam a revisão mais recente, e a usa com aqueles que fazem. Ele também pergunta aos servidores conectores claude.ai em sessões onde ele busca sinalizadores de recurso. Para tê-lo perguntar aos servidores stdio, ou aos servidores conectores em cada sessão, defina [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto`. Ele se conecta a todos os outros servidores como v1 faz.374* Pergunta aos servidores HTTP se eles suportam a revisão mais recente, e a usa com aqueles que suportam. Em sessões onde ele busca sinalizadores de recurso, ele também pergunta aos servidores conectores claude.ai, e no Claude Code v2.1.285 ou posterior ele pergunta aos servidores stdio à medida que Anthropic lança essa mudança. Para que ele pergunte aos servidores conectores e stdio em cada sessão, defina [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto`. Ele se conecta a todos os outros servidores como v1 faz.

375* Recebe notificações `list_changed` de servidores na revisão mais recente sobre um [stream que mantém aberto](#notification-streams-on-the-v2-runtime).375* Recebe notificações `list_changed` de servidores na revisão mais recente sobre um [stream que mantém aberto](#notification-streams-on-the-v2-runtime).

376* Não registra um servidor de [canal](#push-messages-with-channels) que se conecta na revisão mais recente, porque essa revisão não pode carregar mensagens de canal.376* Não registra um servidor de [canal](#push-messages-with-channels) que se conecta na revisão mais recente, porque essa revisão não pode carregar mensagens de canal.

377* Falha em um [login OAuth MCP](#authenticate-with-remote-mcp-servers) cuja resposta de autorização nomeia um emissor inesperado.377* Falha em um [login OAuth MCP](#authenticate-with-remote-mcp-servers) cuja resposta de autorização nomeia um emissor inesperado.


456 456 

457Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que Claude possa reagir a eventos externos como resultados de CI, alertas de monitoramento, ou mensagens de chat. Para ativar isso, seu servidor declara a capacidade `claude/channel` e você o ativa com o sinalizador `--channels` na inicialização. Veja [Channels](/docs/pt/channels) para usar um canal oficialmente suportado, ou [Channels reference](/docs/pt/channels-reference) para construir o seu próprio.457Um servidor MCP também pode enviar mensagens diretamente para sua sessão para que Claude possa reagir a eventos externos como resultados de CI, alertas de monitoramento, ou mensagens de chat. Para ativar isso, seu servidor declara a capacidade `claude/channel` e você o ativa com o sinalizador `--channels` na inicialização. Veja [Channels](/docs/pt/channels) para usar um canal oficialmente suportado, ou [Channels reference](/docs/pt/channels-reference) para construir o seu próprio.

458 458 

459No [tempo de execução v2](#mcp-client-runtimes), se você definir [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto` e um servidor de canal negocia revisão de protocolo MCP 2026-07-28, ele não pode entregar mensagens de canal, portanto Claude Code não o registra como um canal. Deixar a variável não definida, ou defini-la como `legacy`, mantém servidores stdio no handshake anterior.459No [tempo de execução v2](#mcp-client-runtimes), um servidor de canal que negocia a revisão de protocolo MCP 2026-07-28 não pode entregar mensagens de canal, portanto Claude Code não o registra como um canal. Um servidor de canal que não suporta essa revisão se conecta no handshake anterior e se registra como antes.

460 

461Claude Code pergunta aos servidores stdio por essa revisão quando você define [`MCP_PROTOCOL_NEGOTIATION`](/docs/pt/env-vars) como `auto`. Anthropic também está ativando isso por padrão, para Claude Code v2.1.285 ou posterior, em sessões onde Claude Code [busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching). Para manter um servidor de canal stdio no handshake anterior, defina `MCP_PROTOCOL_NEGOTIATION` como `legacy`, o que mantém todos os servidores nele.

460 462 

461<Tip>463<Tip>

462 Dicas:464 Dicas:


1483 1485 

1484Se você está construindo um servidor MCP, pode marcar uma ferramenta como exigindo aprovação explícita em cada chamada definindo `_meta["anthropic/requiresUserInteraction"]` como `true` na entrada de resposta `tools/list` da ferramenta. O valor deve ser o booleano JSON `true`; qualquer outro valor é ignorado.1486Se você está construindo um servidor MCP, pode marcar uma ferramenta como exigindo aprovação explícita em cada chamada definindo `_meta["anthropic/requiresUserInteraction"]` como `true` na entrada de resposta `tools/list` da ferramenta. O valor deve ser o booleano JSON `true`; qualquer outro valor é ignorado.

1485 1487 

1486Claude Code mostra o prompt de permissão dessa ferramenta em cada chamada, mesmo em [modos de permissão](/docs/pt/permissions#permission-modes) `acceptEdits`, `auto` e `bypassPermissions`, e não oferece uma opção "não perguntar novamente" para ela. [Regras de permissão](/docs/pt/permissions#permission-rule-syntax) que correspondem à ferramenta também não pulam o prompt. No modo `dontAsk`, que nunca solicita, Claude Code nega a chamada.1488Claude Code mostra o prompt de permissão dessa ferramenta em cada chamada, mesmo em [modos de permissão](/docs/pt/permissions#permission-modes) `acceptEdits`, `auto` e `bypassPermissions`, e não oferece uma opção "não perguntar novamente" para ela. [Regras de allow](/docs/pt/permissions#permission-rule-syntax) que correspondem à ferramenta também não pulam o prompt. No modo `dontAsk`, que nunca solicita, Claude Code nega a chamada.

1487 1489 

1488O prompt tem que chegar a uma pessoa. No modo não interativo com [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags), um resultado `allow` da ferramenta de prompt para uma ferramenta marcada é convertido em uma negação com a mensagem `MCP tool requires user interaction; not supported via --permission-prompt-tool`. O callback [`canUseTool`](/docs/pt/agent-sdk/permissions) do Agent SDK recebe essas chamadas e pode aprová-las, porque sua aplicação SDK é esperada que as mostre a um usuário.1490O prompt tem que chegar a uma pessoa. No modo não interativo com [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags), um resultado `allow` da ferramenta de prompt para uma ferramenta marcada é convertido em uma negação com a mensagem `MCP tool requires user interaction; not supported via --permission-prompt-tool`. O callback [`canUseTool`](/docs/pt/agent-sdk/permissions) do Agent SDK recebe essas chamadas e pode aprová-las, porque sua aplicação SDK é esperada que as mostre a um usuário.

1489 1491 


1501}1503}

1502```1504```

1503 1505 

1504A anotação `anthropic/requiresUserInteraction` requer Claude Code v2.1.199 ou posterior. Versões anteriores a ignoram e aplicam o fluxo de permissão padrão.

1505 

1506Algumas superfícies, como [Remote Control](/docs/pt/remote-control) e aplicações construídas no [Agent SDK](/docs/pt/agent-sdk/overview), normalmente permitem que você aprove chamadas de ferramentas com um toque. Para uma ferramenta marcada com essa anotação, Claude Code retém a ação de um toque e mostra o prompt de permissão completo da ferramenta, então a aprovação ainda vem de uma pessoa respondendo ao prompt em vez de um toque.1506Algumas superfícies, como [Remote Control](/docs/pt/remote-control) e aplicações construídas no [Agent SDK](/docs/pt/agent-sdk/overview), normalmente permitem que você aprove chamadas de ferramentas com um toque. Para uma ferramenta marcada com essa anotação, Claude Code retém a ação de um toque e mostra o prompt de permissão completo da ferramenta, então a aprovação ainda vem de uma pessoa respondendo ao prompt em vez de um toque.

1507 1507 

1508Claude Code retém a aprovação de um toque da mesma forma para qualquer solicitação de permissão que apenas o diálogo do terminal possa renderizar completamente, como uma que carrega um aviso de segurança ou uma opção de sempre permitir que a superfície remota não possa mostrar. Você responde essa solicitação no diálogo do terminal em vez de Remote Control. Requer Claude Code v2.1.214 ou posterior.1508Claude Code retém a aprovação de um toque da mesma forma para qualquer solicitação de permissão que apenas o diálogo do terminal possa renderizar completamente, como uma que carrega um aviso de segurança ou uma opção de sempre permitir que a superfície remota não possa mostrar. Você responde essa solicitação no diálogo do terminal em vez de Remote Control. Requer Claude Code v2.1.214 ou posterior.


1516Os servidores podem solicitar entrada de duas maneiras:1516Os servidores podem solicitar entrada de duas maneiras:

1517 1517 

1518* **Modo de formulário**: Claude Code mostra um diálogo com campos de formulário definidos pelo servidor (por exemplo, um prompt de nome de usuário e senha). Preencha os campos e envie.1518* **Modo de formulário**: Claude Code mostra um diálogo com campos de formulário definidos pelo servidor (por exemplo, um prompt de nome de usuário e senha). Preencha os campos e envie.

1519* **Modo de URL**: Claude Code pergunta se você deseja abrir um link no seu navegador e o abre quando você aceita. Os servidores usam este modo para um fluxo que é concluído fora do terminal, como entrada.1519* **Modo de URL**: Claude Code pergunta se você deseja abrir um link no seu navegador. Os servidores usam este modo para um fluxo que é concluído fora do terminal, como entrada.

1520 1520 

1521No modo de URL, Claude Code passa a URL como um argumento de linha de comando para o manipulador de URL do seu sistema e limita o tamanho desse argumento. Quando a URL, uma vez escapada para a linha de comando, ultrapassa esse limite, você só pode recusar a solicitação. Cada caractere que precisa ser escapado, como `%` ou `&`, conta quatro vezes em relação ao limite: seu próprio caractere mais três caracteres de escape. Uma URL sem nenhum deles atinge o limite em aproximadamente 8.000 caracteres. Uma URL construída principalmente com percent-escapes, onde cada terceiro caractere é um `%`, atinge em aproximadamente 4.000.1521No modo de URL, Claude Code passa a URL como um argumento de linha de comando para o manipulador de URL do seu sistema e limita o tamanho desse argumento. Quando a URL, uma vez escapada para a linha de comando, ultrapassa esse limite, você só pode recusar a solicitação. Cada caractere que precisa ser escapado, como `%` ou `&`, conta quatro vezes em relação ao limite: seu próprio caractere mais três caracteres de escape. Uma URL sem nenhum deles atinge o limite em aproximadamente 8.000 caracteres. Uma URL construída principalmente com percent-escapes, onde cada terceiro caractere é um `%`, atinge em aproximadamente 4.000.

1522 1522 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797Se você definir `ANTHROPIC_BASE_URL` para um [gateway LLM](/docs/pt/llm-gateway) ou outro proxy, Claude Code dá a cada modelo que reconhece a mesma janela de contexto que o modelo tem na Anthropic API. Fable 5.1, Fable 5, Sonnet 5 e posterior, e Opus 4.7 e posterior recebem a janela de 1M sem nenhuma variante `[1m]` para selecionar, e um modelo que alcança 1M apenas através de sua variante `[1m]`, como Opus 4.6, é executado em 200K sem ela. Claude Code não pode detectar um limite inferior que o gateway ou o servidor atrás dele impõe. Se seu gateway rejeita solicitações acima de 200K tokens, execute [`/autocompact 200k`](#set-the-auto-compact-window) para que as sessões compactem nesse limite.797Se você definir `ANTHROPIC_BASE_URL` para um [gateway de LLM](/docs/pt/llm-gateway) ou outro proxy, Claude Code dá a cada modelo que reconhece a mesma janela de contexto que o modelo tem na Anthropic API. Fable 5.1, Fable 5, Sonnet 5 e posterior, e Opus 4.7 e posterior recebem a janela de 1M sem nenhuma variante `[1m]` para selecionar, e um modelo que alcança 1M apenas através de sua variante `[1m]`, como Opus 4.6, é executado em 200K sem ela. Claude Code não pode detectar um limite inferior que o gateway ou o servidor atrás dele impõe. Se seu gateway rejeita requisições acima de 200K tokens, defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/pt/env-vars) no ambiente que inicia Claude Code, para que as sessões em cada modelo [compactem nesse limite](#set-the-auto-compact-window).

798 798 

799Para desativar contexto de 1M, defina `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code remove variantes de modelo de 1M do seletor de modelo. Em modelos com uma janela nativa de 1M, como Sonnet 5 e os modelos Fable, também trata o modelo como tendo uma janela de contexto de 200K:799Para desativar contexto de 1M, defina `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code remove variantes de modelo de 1M do seletor de modelo. Em modelos com uma janela nativa de 1M, como Sonnet 5 e os modelos Fable, também trata o modelo como tendo uma janela de contexto de 200K:

800 800 


840 Definir a janela de auto-compactação840 Definir a janela de auto-compactação

841</h3>841</h3>

842 842 

843Você pode definir a janela de auto-compactação em três lugares:843Você pode definir a janela de compactação automática nestes lugares:

844 844 

845* **Para esta sessão e posteriores**: execute `/autocompact` com um valor, como `/autocompact 500k`. Claude Code o salva em suas configurações de usuário como [`autoCompactWindow`](/docs/pt/settings-reference#autocompactwindow) e o aplica à sessão atual; se um [escopo de configurações](/docs/pt/settings#settings-precedence) de prioridade mais alta, como configurações gerenciadas, definir a chave, o comando salva seu valor, mas a sessão mantém a janela desse escopo, e o comando informa isso. Execute `/autocompact auto` para retornar à janela ajustada para seu modelo.845* **Para o modelo atual, nesta sessão e nas posteriores**: execute `/autocompact` com um valor, como `/autocompact 500k`. Claude Code o salva em suas configurações de usuário sob o modelo atual em [`modelSettings`](/docs/pt/settings-reference#modelsettings) e o aplica à sessão atual. Se um [escopo de configurações](/docs/pt/settings#settings-precedence) de prioridade mais alta, como configurações gerenciadas, definir sua própria janela para esse modelo ou para todos os modelos, o comando salva seu valor, mas a sessão mantém a janela desse escopo, e o comando informa isso. Execute `/autocompact auto` para retornar à janela ajustada para seu modelo. Antes da v2.1.288, o comando salvava uma única janela para todos os modelos, como a chave de nível superior `autoCompactWindow`.

846* **Para todos os modelos**: defina [`autoCompactWindow`](/docs/pt/settings-reference#autocompactwindow) em um arquivo de configurações, como `"autoCompactWindow": 200000` em `~/.claude/settings.json`. Uma janela que você salvou para um modelo com `/autocompact` tem precedência sobre essa chave no mesmo arquivo para esse modelo.

846* **Para um lançamento**: passe [`--autocompact`](/docs/pt/cli-reference#cli-flags) ao iniciar Claude Code. O sinalizador substitui sua configuração salva para esse lançamento sem alterá-la, e `claude --autocompact auto` executa a sessão na janela ajustada mesmo se sua configuração salva tiver um valor. Diferentemente de `/autocompact`, o sinalizador não é preemptado por um escopo de configurações de prioridade mais alta, como configurações gerenciadas.847* **Para um lançamento**: passe [`--autocompact`](/docs/pt/cli-reference#cli-flags) ao iniciar Claude Code. O sinalizador substitui sua configuração salva para esse lançamento sem alterá-la, e `claude --autocompact auto` executa a sessão na janela ajustada mesmo se sua configuração salva tiver um valor. Diferentemente de `/autocompact`, o sinalizador não é preemptado por um escopo de configurações de prioridade mais alta, como configurações gerenciadas.

847* **Em scripts e ambientes em nuvem**: defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars). Enquanto estiver definido, ele tem precedência sobre o comando, o sinalizador e a configuração, e `/autocompact` relata a substituição em vez de alterar a janela.848* **Em scripts e ambientes em nuvem**: defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/pt/env-vars). Enquanto estiver definido, ele tem precedência sobre o comando, o sinalizador e a configuração, e `/autocompact` relata a substituição em vez de alterar a janela.

848 849 

Details

785 Evento de prompt do usuário785 Evento de prompt do usuário

786</h4>786</h4>

787 787 

788Registrado quando um usuário envia um prompt.788Registrado quando um prompt é enviado, inclusive em turnos que o Claude Code inicia por conta própria.

789 789 

790**Nome do Evento**: `claude_code.user_prompt`790**Nome do Evento**: `claude_code.user_prompt`

791 791 

Details

578 578 

579Se você definir o modo `dontAsk`, Claude Code nega automaticamente toda chamada de ferramenta que de outra forma solicitaria você. Claude ainda executa ações que não precisam de aprovação no modo Manual, como leituras de arquivo dentro de seus diretórios de trabalho e [comandos Bash somente leitura](/docs/pt/permissions#read-only-commands), além de ações que correspondem às suas regras `permissions.allow` e chamadas aprovadas por um [hook PreToolUse](/docs/pt/permissions#extend-permissions-with-hooks). Use este modo para pipelines de CI ou ambientes restritos onde você pré-define o que Claude pode fazer; a sessão nunca aguarda entrada. A barra de status mostra `⏵⏵ don't ask on` enquanto este modo está ativo.579Se você definir o modo `dontAsk`, Claude Code nega automaticamente toda chamada de ferramenta que de outra forma solicitaria você. Claude ainda executa ações que não precisam de aprovação no modo Manual, como leituras de arquivo dentro de seus diretórios de trabalho e [comandos Bash somente leitura](/docs/pt/permissions#read-only-commands), além de ações que correspondem às suas regras `permissions.allow` e chamadas aprovadas por um [hook PreToolUse](/docs/pt/permissions#extend-permissions-with-hooks). Use este modo para pipelines de CI ou ambientes restritos onde você pré-define o que Claude pode fazer; a sessão nunca aguarda entrada. A barra de status mostra `⏵⏵ don't ask on` enquanto este modo está ativo.

580 580 

581Claude Code nega chamadas que correspondem às suas [regras `ask`](/docs/pt/permissions#manage-permissions) explícitas em vez de solicitar. Também nega a ferramenta integrada `AskUserQuestion` mesmo que suas regras de permissão correspondam a ela, e faz o mesmo para ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega a Claude Code. Nega ferramentas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) da mesma forma, porque seu cartão de aprovação precisa de uma resposta que este modo nunca coleta; isso requer Claude Code v2.1.199 ou posterior.581Claude Code nega chamadas que correspondem às suas [regras `ask`](/docs/pt/permissions#manage-permissions) explícitas em vez de solicitar. Também nega a ferramenta integrada `AskUserQuestion` mesmo que suas regras de permissão correspondam a ela, e faz o mesmo para ferramentas de conector [que sua organização definiu como `ask`](/docs/pt/mcp#organization-controls-on-connector-tools) em sessões onde essa configuração chega a Claude Code. Nega ferramentas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](/docs/pt/mcp#require-approval-for-a-specific-tool) da mesma forma, porque seu cartão de aprovação precisa de uma resposta que este modo nunca coleta.

582 582 

583Remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths), como `rm -rf /` e `rm -rf ~`, são negadas mesmo quando uma regra de permissão corresponde a elas ou um hook `PreToolUse` as permite.583Remoções `rm` e `rmdir` direcionadas a um [caminho crítico](#critical-paths), como `rm -rf /` e `rm -rf ~`, são negadas mesmo quando uma regra de permissão corresponde a elas ou um hook `PreToolUse` as permite.

584 584 

Details

371| `workspaceFolder` | Não | Caminho da pasta de workspace para o servidor |371| `workspaceFolder` | Não | Caminho da pasta de workspace para o servidor |

372| `startupTimeout` | Não | Milissegundos para esperar pela inicialização, um inteiro positivo |372| `startupTimeout` | Não | Milissegundos para esperar pela inicialização, um inteiro positivo |

373| `shutdownTimeout` | Não | Milissegundos para esperar por um desligamento gracioso, um inteiro positivo. Quando o tempo limite decorre, Claude Code encerra o processo do servidor. Quando não definido, nenhum tempo limite se aplica |373| `shutdownTimeout` | Não | Milissegundos para esperar por um desligamento gracioso, um inteiro positivo. Quando o tempo limite decorre, Claude Code encerra o processo do servidor. Quando não definido, nenhum tempo limite se aplica |

374| `requestTimeout` | Não | Milissegundos para esperar que o servidor responda a uma requisição, um inteiro positivo. Padrão é `60000`, então uma requisição que o servidor nunca responde falha após 60 segundos. Requer v2.1.288 ou posterior |

374| `restartOnCrash` | Não | Se deve reiniciar o servidor após ele falhar. Padrão é `true`. Defina como `false` para deixar um servidor que falhou parado em vez de reiniciá-lo |375| `restartOnCrash` | Não | Se deve reiniciar o servidor após ele falhar. Padrão é `true`. Defina como `false` para deixar um servidor que falhou parado em vez de reiniciá-lo |

375| `maxRestarts` | Não | Tentativas de reinicialização antes de desistir, zero ou mais |376| `maxRestarts` | Não | Tentativas de reinicialização antes de desistir, zero ou mais |

376| `diagnostics` | Não | Se deve enviar diagnósticos para o contexto após edições. Padrão é `true` |377| `diagnostics` | Não | Se deve enviar diagnósticos para o contexto após edições. Padrão é `true` |

Details

63 63 

64| Field | Type | Description |64| Field | Type | Description |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Identificador do marketplace: letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito, e sem `..`. Ele forma a metade após `@` de cada [plugin id](/docs/pt/plugins/loading#find-where-a-plugin-came-from) instalado do marketplace, então `claude plugin validate` falha com outros nomes. Veja [Reserved names](#reserved-names) |66| `name` | string | Identificador do marketplace: letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito, e sem `..`. `claude plugin validate` falha com qualquer outro nome, porque Claude Code não consegue instalar plugins de um marketplace que use um nome assim. Os usuários digitam o nome após `@` em um [plugin id](/docs/pt/plugins/loading#find-where-a-plugin-came-from) como `my-plugin@my-marketplace` ao instalar um plugin. Veja [Reserved names](#reserved-names) |

67| `owner` | object | Informações do mantenedor. `name` é obrigatório; `email` e `url` são opcionais |67| `owner` | object | Informações do mantenedor. `name` é obrigatório; `email` e `url` são opcionais |

68| `plugins` | array | [Plugin entries](#plugin-entries). Cada entrada é validada por conta própria, então uma entrada inválida não falha o marketplace |68| `plugins` | array | [Plugin entries](#plugin-entries). Cada entrada é validada por conta própria, então uma entrada inválida não falha o marketplace |

69| `$schema` | string | URL do JSON Schema para preenchimento automático do editor. Ignorado no tempo de carregamento |69| `$schema` | string | URL do JSON Schema para preenchimento automático do editor. Ignorado no tempo de carregamento |

Details

377 Compartilhe seu mod377 Compartilhe seu mod

378</h2>378</h2>

379 379 

380Um mod é um plugin, então você o versiona no manifest e as pessoas o instalam e atualizam com os comandos `/plugin`. Para dá-lo a outras pessoas, [adicione-o a um marketplace](/docs/pt/plugins/publish).380Um mod é um plugin, então você o versiona no manifest e as pessoas o instalam e atualizam com os comandos `/plugin`. A forma de compartilhá-lo depende de para quem ele é:

381 

382* **Algumas pessoas**: envie a elas o diretório do plugin ou um `.zip` dele. Consulte [Compartilhe um plugin sem um marketplace](/docs/pt/plugins/publish#share-a-plugin-without-a-marketplace)

383* **Sua equipe**: liste-o no [seu próprio marketplace](/docs/pt/plugins/publish#publish-through-your-own-marketplace), como um repositório privado com um diretório para cada plugin. Para adicionar esse marketplace para todos que trabalham em um repositório, [registre-o nas configurações do repositório](/docs/pt/plugins/host-marketplace#register-the-marketplace-for-everyone-in-a-repository)

384* **Toda a sua organização**: um administrador pode [instalar os mods da sua organização](/docs/pt/plugins/mods/admin#install-your-organizations-mods) por meio de configurações gerenciadas

385* **Qualquer pessoa**: torne público o repositório do seu marketplace ou [envie o plugin para o diretório da Anthropic](/docs/pt/plugins/publish#submit-to-anthropics-directory)

381 386 

382Antes de fazer isso, verifique o `name` do plugin: `claude plugin validate` falha em um nome que [parece um dos próprios da Anthropic](/docs/pt/plugins/manifest-reference#name), como um que começa com `claude-`. Os eventos e métodos podem mudar entre releases, então seu README é o lugar para dizer qual versão do Claude Code você testou.387Antes de fazer isso, verifique o `name` do plugin: `claude plugin validate` falha em um nome que [parece um dos próprios da Anthropic](/docs/pt/plugins/manifest-reference#name), como um que começa com `claude-`. Os eventos e métodos podem mudar entre releases, então seu README é o lugar para dizer qual versão do Claude Code você testou.

383 388 

Details

531| Para cima e Para baixo | Movem entre controles enquanto seu desenho cabe. Quando o painel ou faixa tem mais linhas do que pode mostrar, eles o rolam. |531| Para cima e Para baixo | Movem entre controles enquanto seu desenho cabe. Quando o painel ou faixa tem mais linhas do que pode mostrar, eles o rolam. |

532| Enter | Pressiona o `Button` focado, envia o `Input` focado ou escolhe em um `Select` |532| Enter | Pressiona o `Button` focado, envia o `Input` focado ou escolhe em um `Select` |

533| Atalho de teclado de um botão | Pressiona esse botão. Enquanto um `Input` tem o foco, cada tecla imprimível vai para o campo. |533| Atalho de teclado de um botão | Pressiona esse botão. Enquanto um `Input` tem o foco, cada tecla imprimível vai para o campo. |

534| Page Up, Page Down, Home e End | Rolam seu painel ou faixa quando ele tem mais linhas do que pode mostrar |

535| Ctrl+X depois uma seta | Redimensiona seu painel. Esquerda ou Para cima lhe dá mais espaço, e Direita ou Para baixo devolve o espaço. |

536| Ctrl+X depois X | Fecha seu painel, mesmo enquanto um de seus campos tem o foco |

534| Esc | Retorna o foco do teclado para o prompt. Com `closeOnEscape: true`, também fecha o painel. |537| Esc | Retorna o foco do teclado para o prompt. Com `closeOnEscape: true`, também fecha o painel. |

535 538 

536Um mod não pode vincular Tab ou as setas para nada mais, então um jogo direciona com `w`, `a`, `s` e `d`.539Um mod não pode vincular Tab ou as setas para nada mais, então um jogo direciona com `w`, `a`, `s` e `d`.

Details

63| :- | :- | :- |63| :- | :- | :- |

64| [`tool.call`](/docs/pt/plugins/mods/events#guard-or-change-a-tool-call) | Uma ferramenta está prestes a ser executada | `next(e)`, `{ deny: reason }` ou `{ result }` |64| [`tool.call`](/docs/pt/plugins/mods/events#guard-or-change-a-tool-call) | Uma ferramenta está prestes a ser executada | `next(e)`, `{ deny: reason }` ou `{ result }` |

65| [`tool.check`](/docs/pt/plugins/mods/events#where-settings-hooks-run-in-the-order) | O Claude Code decide se uma chamada de ferramenta pode ser executada, após os hooks `tool.call` e `PreToolUse`. `next(e)` resolve para a decisão a que chegaram as regras, o modo de permissão e esses hooks. | `{ decision }`, que é `allow`, `ask` ou `deny` |65| [`tool.check`](/docs/pt/plugins/mods/events#where-settings-hooks-run-in-the-order) | O Claude Code decide se uma chamada de ferramenta pode ser executada, após os hooks `tool.call` e `PreToolUse`. `next(e)` resolve para a decisão a que chegaram as regras, o modo de permissão e esses hooks. | `{ decision }`, que é `allow`, `ask` ou `deny` |

66| `tool.describe` | Uma vez para cada ferramenta, quando sua descrição é enviada pela primeira vez ao Claude | `{ description }` |66| `tool.describe` | Uma vez para cada ferramenta, quando sua descrição é enviada pela primeira vez ao Claude | `{ description }`, opcionalmente com `isDeferred` definido como `true` para colocar a ferramenta por trás da [busca de ferramentas](/docs/pt/mcp#scale-with-mcp-tool-search) ou `false` para carregá-la antecipadamente |

67 67 

68<h3 id="prompts-and-what-claude-reads">68<h3 id="prompts-and-what-claude-reads">

69 Prompts e o que o Claude lê69 Prompts e o que o Claude lê

plugins/publish.md +26 −11

Details

145 Envie para o diretório da Anthropic145 Envie para o diretório da Anthropic

146</h2>146</h2>

147 147 

148O diretório da Anthropic é o catálogo que as pessoas navegam no claude.ai e no Cowork para adicionar plugins e conectores. Uma listagem lá alcança pessoas no claude.ai, no Cowork e no Claude Code. Você envia pelo portal do desenvolvedor em [claude.ai/directory/manage](https://claude.ai/directory/manage); [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review) no claude.com descreve o que acontece com cada versão antes de ser publicada.148O [diretório da Anthropic](https://claude.ai/directory) é o catálogo que as pessoas navegam no claude.ai e no Cowork para adicionar plugins e conectores. Uma listagem lá alcança pessoas no claude.ai, no Cowork e no Claude Code. Você envia pelo portal do desenvolvedor em [claude.ai/directory/manage](https://claude.ai/directory/manage), e [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) no claude.com apresenta um passo a passo do portal.

149 149 

150O envio requer um plano pago do claude.ai. No Pro e Max você envia da sua própria conta. No Team e Enterprise, um Owner pode enviar, e no Enterprise um Owner também pode conceder a permissão **Directory** para outros membros através de uma função personalizada em **Organization settings > Roles**. Veja [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).150O marketplace oficial da Anthropic, `claude-plugins-official`, não aceita envios através do portal de diretório. Se você trabalha com um contato de parceiro da Anthropic, pergunte-lhes sobre uma listagem no marketplace oficial.

151 151 

152As etapas de envio, as verificações que cada versão deve passar e o que acontece após você publicar estão documentadas no claude.com, porque são as mesmas independentemente de qual superfície seus usuários estão:152Para enviar um plugin:

153 153 

154* [Publish to the directory](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): o que você pode enviar e quem pode enviá-lo154<Steps>

155* [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin): as etapas do portal e [updating a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="Confirme que você pode enviar">

156* [Plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): as verificações a executar e corrigir antes de enviar156 O envio requer um plano pago do claude.ai. No Pro e Max você envia da sua própria conta. No Team e Enterprise, um Owner pode enviar, e no Enterprise um Owner também pode conceder a permissão **Directory** para outros membros através de uma função personalizada em **Organization settings > Roles**. Veja [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

157* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): o que fazer se você enviou um plugin através de um dos formulários de envio anteriores, antes do portal existir157 </Step>

158 158 

159Antes de abrir o portal, valide localmente e verifique quais dos seus componentes carregam fora do Claude Code:159 <Step title="Valide o plugin localmente">

160 Execute `claude plugin validate ./your-plugin --strict` em seu shell. Substitua `./your-plugin` pelo caminho para seu diretório de plugin. O comando detecta erros de manifesto localmente; [plugin validate](/docs/pt/plugins/cli-reference#plugin-validate) lista quais arquivos cada execução lê. O portal aplica regras de diretório adicionais que o CLI não verifica, portanto uma execução local limpa não garante uma validação de portal limpa.

160 161 

161* **Execute `claude plugin validate ./your-plugin --strict` em seu shell**: substitua `./your-plugin` pelo caminho para seu diretório de plugin. O comando detecta erros de manifesto localmente; [plugin validate](/docs/pt/plugins/cli-reference#plugin-validate) lista quais arquivos cada execução lê. O portal aplica regras de diretório adicionais que o CLI não verifica, portanto uma execução local limpa não garante uma validação de portal limpa.162 O [plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit) no claude.com tem as verificações a executar e corrigir antes de enviar.

162* **Verifique o que carrega onde**: alguns componentes de plugin são apenas do Claude Code e não carregam no claude.ai ou no Cowork. A [component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) lista cada componente por aplicativo, para que você saiba o que os usuários fora do Claude Code receberão.163 </Step>

163 164 

164O marketplace oficial da Anthropic, `claude-plugins-official`, não aceita envios através do portal de diretório. Se você trabalha com um contato de parceiro da Anthropic, pergunte-lhes sobre uma listagem no marketplace oficial.165 <Step title="Verifique o que carrega onde">

166 Alguns componentes de plugin são apenas do Claude Code e não carregam no claude.ai ou no Cowork. A [component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) lista cada componente por aplicativo, para que você saiba o que os usuários fora do Claude Code receberão.

167 </Step>

168 

169 <Step title="Envie pelo portal do desenvolvedor">

170 Abra o portal do desenvolvedor em [claude.ai/directory/manage](https://claude.ai/directory/manage) e siga [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin) no claude.com.

171 </Step>

172</Steps>

173 

174O restante do processo está documentado no claude.com:

175 

176* [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review): o que acontece com cada versão antes de ser publicada

177* [Update a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin): como uma nova versão chega às pessoas que têm seu plugin

178* [Submit your plugin, and your MCP server as a connector](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector): o que você pode enviar

179* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): o que fazer se você enviou um plugin através de um dos formulários de envio anteriores, antes do portal existir

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 Como um plugin listado alcança usuários do Claude Code182 Como um plugin listado alcança usuários do Claude Code

routines.md +1 −1

Details

403 </Step>403 </Step>

404 404 

405 <Step title="Altere o nível de acesso à rede">405 <Step title="Altere o nível de acesso à rede">

406 Na caixa de diálogo **Editar ambiente em nuvem**, altere **Acesso à rede** para **Personalizado** e insira seus domínios em **Domínios permitidos**. Marque **Também incluir lista padrão de gerenciadores de pacotes comuns** para manter a [lista de permissões padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Completo** em vez disso para acesso irrestrito.406 Na caixa de diálogo **Editar ambiente**, altere **Acesso à rede** para **Personalizado** e insira seus domínios em **Domínios permitidos**. Marque **Também incluir lista padrão de gerenciadores de pacotes comuns** para manter a [allowlist padrão](/docs/pt/cloud-environments#default-allowed-domains) junto com seus domínios personalizados. Selecione **Completo** em vez disso para acesso irrestrito.

407 </Step>407 </Step>

408 408 

409 <Step title="Salvar">409 <Step title="Salvar">

sandboxing.md +2 −4

Details

459 Mascarar credenciais459 Mascarar credenciais

460</h3>460</h3>

461 461 

462Quando você mascara uma credencial, o Claude Code mostra aos comandos em sandbox um valor substituto por sessão chamado sentinela, e o [proxy do sandbox](#network-isolation) substitui o valor real nas requisições de saída para hosts que você permite. Uma entrada `deny` em [Proteger credenciais](#protect-credentials) bloqueia a credencial em vez disso. Para arquivos no macOS, o Claude Code [bloqueia o arquivo em vez de mascará-lo](#mask-credential-files).462Quando você mascara uma credencial, o Claude Code mostra aos comandos em sandbox um valor substituto por sessão chamado sentinela, e o [proxy do sandbox](#network-isolation) substitui o valor real nas requisições de saída para hosts que você permite. Uma entrada `deny` em [Proteger credenciais](#protect-credentials) bloqueia a credencial em vez disso. Para arquivos no macOS, o Claude Code [bloqueia o arquivo em vez de mascará-lo](#mask-credential-files). A referência de [`sandbox.credentials`](/docs/pt/settings-reference#sandbox-credentials) lista todos os campos.

463 

464Mascarar variáveis de ambiente requer o Claude Code v2.1.199 ou posterior. A referência de [`sandbox.credentials`](/docs/pt/settings-reference#sandbox-credentials) lista todos os campos.

465 463 

466O mascaramento requer o seguinte:464O mascaramento requer o seguinte:

467 465 


620Em uma regra `WebFetch(domain:...)`, o sandbox respeita duas formas de curinga: um `*.` inicial, como `*.example.com`, e um `*` isolado. A forma `*` isolada requer Claude Code v2.1.186 ou posterior. Um curinga em qualquer outra posição, como `WebFetch(domain:example.*)`, ainda corresponde a fetches, mas não tem efeito sobre comandos em sandbox.618Em uma regra `WebFetch(domain:...)`, o sandbox respeita duas formas de curinga: um `*.` inicial, como `*.example.com`, e um `*` isolado. A forma `*` isolada requer Claude Code v2.1.186 ou posterior. Um curinga em qualquer outra posição, como `WebFetch(domain:example.*)`, ainda corresponde a fetches, mas não tem efeito sobre comandos em sandbox.

621 619 

622<Note>620<Note>

623 O proxy integrado aplica a allowlist com base no hostname solicitado e, por padrão, não termina nem inspeciona o tráfego TLS. A configuração experimental [`network.tlsTerminate`](/docs/pt/settings-reference#sandbox-network-tlsterminate), disponível no Claude Code v2.1.199 e posterior, faz com que o próprio proxy integrado termine o TLS, o que as [entradas de credencial `mask`](#mask-credentials) exigem. Consulte [Limitações de segurança](#security-limitations) para as implicações do padrão e [Configuração de proxy personalizado](#custom-proxy-configuration) se o seu modelo de ameaças exigir inspeção de TLS.621 O proxy integrado aplica a allowlist com base no hostname solicitado e, por padrão, não termina nem inspeciona o tráfego TLS. A configuração experimental [`network.tlsTerminate`](/docs/pt/settings-reference#sandbox-network-tlsterminate) faz com que o próprio proxy integrado termine o TLS, o que as [entradas de credencial `mask`](#mask-credentials) exigem. Consulte [Limitações de segurança](#security-limitations) para as implicações do padrão e [Configuração de proxy personalizado](#custom-proxy-configuration) se o seu modelo de ameaças exigir inspeção de TLS.

624</Note>622</Note>

625 623 

626<h4 id="hosts-outside-your-allowed-domains">624<h4 id="hosts-outside-your-allowed-domains">

sessions.md +1 −1

Details

299 Excluir dados de sessão299 Excluir dados de sessão

300</h3>300</h3>

301 301 

302Os transcritos envelhecem sob as [regras de varredura de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Para excluir os transcritos de um projeto e o estado relacionado mais cedo, execute [`claude project purge`](/docs/pt/claude-directory#clear-local-data). Se você excluir uma [sessão em segundo plano](/docs/pt/agent-view) com [`claude rm <id>`](/docs/pt/agent-view#what-deleting-a-session-removes), seu transcrição permanece no disco e permanece disponível através de `claude --resume`.302As transcrições expiram sob as [regras de varredura de retenção](/docs/pt/claude-directory#cleaned-up-automatically). Para excluir as transcrições de um projeto e o estado relacionado mais cedo, execute [`claude purge`](/docs/pt/claude-directory#clear-local-data). Se você excluir uma [sessão em segundo plano](/docs/pt/agent-view) com [`claude rm <id>`](/docs/pt/agent-view#what-deleting-a-session-removes), sua transcrição permanece no disco e continua disponível através de `claude --resume`.

303 303 

304<h3 id="name-the-project-directory-yourself">304<h3 id="name-the-project-directory-yourself">

305 Nomear o diretório do projeto você mesmo305 Nomear o diretório do projeto você mesmo

Details

708| [`modelOverrides`](#modeloverrides) | [Mapeie IDs de modelo](/docs/pt/model-config#override-model-ids-per-version) para os IDs do seu provedor, como ARNs do Bedrock | Modelo e respostas | Any file |708| [`modelOverrides`](#modeloverrides) | [Mapeie IDs de modelo](/docs/pt/model-config#override-model-ids-per-version) para os IDs do seu provedor, como ARNs do Bedrock | Modelo e respostas | Any file |

709| [`modelPicker`](#modelpicker) | Escolha quais modelos o seletor [`/model`](/docs/pt/model-config#available-models) lista, em sua própria ordem e com seus próprios rótulos | Modelo e respostas | User or managed |709| [`modelPicker`](#modelpicker) | Escolha quais modelos o seletor [`/model`](/docs/pt/model-config#available-models) lista, em sua própria ordem e com seus próprios rótulos | Modelo e respostas | User or managed |

710| [`modelPricing`](#modelpricing) | Relate gastos nas taxas contratadas de sua organização em vez do preço de tabela | Modelo e respostas | Managed |710| [`modelPricing`](#modelpricing) | Relate gastos nas taxas contratadas de sua organização em vez do preço de tabela | Modelo e respostas | Managed |

711| [`modelSettings`](#modelsettings) | Mantenha um [nível de esforço](/docs/pt/model-config#adjust-effort-level) salvo por modelo, ou limite o esforço de um modelo | Modelo e respostas | Any file |711| [`modelSettings`](#modelsettings) | Mantenha um [nível de esforço](/docs/pt/model-config#adjust-effort-level) ou uma [janela de compactação automática](/docs/pt/model-config#set-the-auto-compact-window) salvos por modelo, ou limite o esforço de um modelo | Modelo e respostas | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | Gere cabeçalhos [OpenTelemetry](/docs/pt/monitoring-usage#dynamic-headers) rotativos com seu próprio comando | Autenticação e provedores | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | Gere cabeçalhos [OpenTelemetry](/docs/pt/monitoring-usage#dynamic-headers) rotativos com seu próprio comando | Autenticação e provedores | Any file |

713| [`outputStyle`](#outputstyle) | Altere o papel, tom e formato de saída de Claude com um [estilo de saída](/docs/pt/output-styles) | Modelo e respostas | Any file |713| [`outputStyle`](#outputstyle) | Altere o papel, tom e formato de saída de Claude com um [estilo de saída](/docs/pt/output-styles) | Modelo e respostas | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique ou descarte restrições que um [host SDK ou IDE](/docs/pt/managed-settings#let-an-embedding-host-add-policy) passa quando você implanta [configurações gerenciadas](/docs/pt/managed-settings) | Configurações empresariais e gerenciadas | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique ou descarte restrições que um [host SDK ou IDE](/docs/pt/managed-settings#let-an-embedding-host-add-policy) passa quando você implanta [configurações gerenciadas](/docs/pt/managed-settings) | Configurações empresariais e gerenciadas | Managed |


1282Para limitar o esforço de um modelo em vez de definir seu nível, adicione um campo [`maxEffortLevel`](#maxeffortlevel) à entrada desse modelo. O campo requer Claude Code v2.1.267 ou posterior.1282Para limitar o esforço de um modelo em vez de definir seu nível, adicione um campo [`maxEffortLevel`](#maxeffortlevel) à entrada desse modelo. O campo requer Claude Code v2.1.267 ou posterior.

1283 1283 

1284* **Escopo**: [`Qualquer arquivo`](#scopes)1284* **Escopo**: [`Qualquer arquivo`](#scopes)

1285* **Tipo**: objeto mapeando um nome de modelo para um objeto com um campo `effortLevel`, um de `"low"`, `"medium"`, `"high"` ou `"xhigh"`, um campo [`maxEffortLevel`](#maxeffortlevel) ou ambos1285* **Tipo**: objeto mapeando um nome de modelo para um objeto com qualquer um destes campos:

1286 * `effortLevel`: um de `"low"`, `"medium"`, `"high"` ou `"xhigh"`

1287 * [`maxEffortLevel`](#maxeffortlevel): o nível de esforço mais alto em que o modelo pode ser executado

1288 * `autoCompactWindow`: um número de tokens de `100000` a `1000000`, ou `"auto"` para a janela ajustada para o modelo. [`/autocompact`](/docs/pt/model-config#set-the-auto-compact-window) salva aqui. Para esse modelo, o valor tem precedência sobre um [`autoCompactWindow`](#autocompactwindow) de nível superior no mesmo arquivo de configurações. Requer Claude Code v2.1.288 ou posterior

1286* **Padrão**: sem definir1289* **Padrão**: sem definir

1287 1290 

1288Claude Code escreve cada entrada sob o nome canônico do modelo, como `claude-opus-5-5`, e corresponde ao alias desse modelo, com sufixo de data, `[1m]` e IDs específicos do provedor reconhecidos à mesma entrada.1291Claude Code escreve cada entrada sob o nome canônico do modelo, como `claude-opus-5-5`, e corresponde ao alias desse modelo, com sufixo de data, `[1m]` e IDs específicos do provedor reconhecidos à mesma entrada.


2478 `sandbox.credentials.envVars`2481 `sandbox.credentials.envVars`

2479</h3>2482</h3>

2480 2483 

2481Proteja variáveis de ambiente de comandos em sandbox. Com `"mode": "deny"`, Claude Code remove a variável do ambiente de comandos em sandbox. Com `"mode": "mask"`, comandos em sandbox veem um valor sentinela por sessão, e o proxy do sandbox substitui o valor real em requisições de saída para `injectHosts` dessa entrada, então ferramentas como `gh` e `npm` continuam autenticando sem nunca manter a credencial real. `"mode": "mask"` requer Claude Code v2.1.199 ou posterior.2484Proteja variáveis de ambiente de comandos em sandbox. Com `"mode": "deny"`, Claude Code remove a variável do ambiente de comandos em sandbox. Com `"mode": "mask"`, comandos em sandbox veem um valor sentinela por sessão, e o proxy do sandbox substitui o valor real em requisições de saída para `injectHosts` dessa entrada, então ferramentas como `gh` e `npm` continuam autenticando sem nunca manter a credencial real.

2482 2485 

2483* **Scope**: [`Any file`](#scopes). Claude Code descarta entradas `mask` de `.claude/settings.json` de projeto e `.claude/settings.local.json` local.2486* **Scope**: [`Any file`](#scopes). Claude Code descarta entradas `mask` de `.claude/settings.json` de projeto e `.claude/settings.local.json` local.

2484* **Type**: array de objetos, cada um com `name` e um `mode` de `"deny"` ou `"mask"`, mais os [campos mask opcionais para variáveis de ambiente](#mask-fields-for-environment-variables)2487* **Type**: array de objetos, cada um com `name` e um `mode` de `"deny"` ou `"mask"`, mais os [campos mask opcionais para variáveis de ambiente](#mask-fields-for-environment-variables)


2499}2502}

2500```2503```

2501 2504 

2502O `name` deve começar com uma letra ou sublinhado e conter apenas letras, dígitos e sublinhados. Claude Code mescla os arrays de todos os escopos de configurações que a sessão carrega e aplica `deny` quando a mesma variável aparece com ambos os modos. [Protect credentials](/docs/pt/sandboxing#protect-credentials) cobre o que ainda se aplica de fontes que você exclui com `--setting-sources`. Entradas `mask` requerem Claude Code v2.1.199 ou posterior.2505O `name` deve começar com uma letra ou sublinhado e conter apenas letras, dígitos e sublinhados. Claude Code mescla os arrays de todos os escopos de configurações que a sessão carrega e aplica `deny` quando a mesma variável aparece com ambos os modos. [Protect credentials](/docs/pt/sandboxing#protect-credentials) cobre o que ainda se aplica de fontes que você exclui com `--setting-sources`.

2503 2506 

2504A substituição `mask` é executada apenas através do proxy do sandbox, então defina [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de teste HTTP simples; consulte [Mask credentials](/docs/pt/sandboxing#mask-credentials). Claude Code aceita mas ignora os campos `mask` em uma entrada `deny`.2507A substituição `mask` é executada apenas através do proxy do sandbox, então defina [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) ou [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de teste HTTP simples; consulte [Mask credentials](/docs/pt/sandboxing#mask-credentials). Claude Code aceita mas ignora os campos `mask` em uma entrada `deny`.

2505 2508 


2525| `onExtractNoMatch` | `"warn"`, `"deny"` ou `"error"`; padrão `"warn"`. Em uma entrada com `decode`, apenas `"warn"` é aceito | O que acontece quando `extract` não corresponde a nada. `warn` passa a variável através desmascarada, `deny` a desdefine dentro do sandbox e `error` interrompe a configuração do sandbox até você corrigir a configuração. Requer v2.1.224 ou posterior |2528| `onExtractNoMatch` | `"warn"`, `"deny"` ou `"error"`; padrão `"warn"`. Em uma entrada com `decode`, apenas `"warn"` é aceito | O que acontece quando `extract` não corresponde a nada. `warn` passa a variável através desmascarada, `deny` a desdefine dentro do sandbox e `error` interrompe a configuração do sandbox até você corrigir a configuração. Requer v2.1.224 ou posterior |

2526| `decode` | a string `"jwt"` | Verifique se o valor inteiro é um JWT e substitua-o por um token falso estruturalmente válido, então código dentro do sandbox que decodifica o token continua funcionando; o proxy substitui o token real inteiro na saída. Um valor que não verifica passa através desmascarado com um aviso. Requer v2.1.224 ou posterior |2529| `decode` | a string `"jwt"` | Verifique se o valor inteiro é um JWT e substitua-o por um token falso estruturalmente válido, então código dentro do sandbox que decodifica o token continua funcionando; o proxy substitui o token real inteiro na saída. Um valor que não verifica passa através desmascarado com um aviso. Requer v2.1.224 ou posterior |

2527| `maskClaims` | array de strings, pelo menos um nome de claim; requer `decode` | Mascara apenas os claims de payload de nível superior nomeados dentro do JWT decodificado e reconstrói o token ao redor do payload modificado, então os outros claims permanecem legíveis. Quando nenhum claim nomeado corresponde, a variável passa através desmascarada com um aviso. Requer v2.1.224 ou posterior |2530| `maskClaims` | array de strings, pelo menos um nome de claim; requer `decode` | Mascara apenas os claims de payload de nível superior nomeados dentro do JWT decodificado e reconstrói o token ao redor do payload modificado, então os outros claims permanecem legíveis. Quando nenhum claim nomeado corresponde, a variável passa através desmascarada com um aviso. Requer v2.1.224 ou posterior |

2528| `injectHosts` | array de strings, cada um um host que [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) também admite | Restrinja os hosts onde o proxy do sandbox substitui o valor real. Quando não definido, o proxy o substitui em requisições para cada host em `sandbox.network.allowedDomains`. Escreva um destino IPv6 como o endereço comprimido nu, como `"::1"`, não a forma entre colchetes; consulte [IPv6 destinations in `injectHosts`](/docs/pt/sandboxing#ipv6-destinations-in-injecthosts). Requer v2.1.199 ou posterior |2531| `injectHosts` | array de strings, cada um um host que [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) também admite | Restrinja os hosts onde o proxy do sandbox substitui o valor real. Quando não definido, o proxy o substitui em requisições para cada host em `sandbox.network.allowedDomains`. Escreva um destino IPv6 como o endereço comprimido nu, como `"::1"`, não a forma entre colchetes; consulte [IPv6 destinations in `injectHosts`](/docs/pt/sandboxing#ipv6-destinations-in-injecthosts) |

2529 2532 

2530Isso mascara apenas a senha dentro de `DATABASE_URL`, desdefine a variável se o padrão não corresponder a nada e mascara um JWT em `SERVICE_JWT` enquanto deixa cada claim exceto `api_key` legível:2533Isso mascara apenas a senha dentro de `DATABASE_URL`, desdefine a variável se o padrão não corresponder a nada e mascara um JWT em `SERVICE_JWT` enquanto deixa cada claim exceto `api_key` legível:

2531 2534 


2556 `sandbox.credentials.allowPlaintextInject`2559 `sandbox.credentials.allowPlaintextInject`

2557</h3>2560</h3>

2558 2561 

2559Permita substituição `mask` em requisições HTTP simples bem como HTTPS terminado em TLS. Em HTTP simples a identidade upstream não é verificada e a credencial viaja em texto claro, então deixe isso desativado fora de redes de teste confiáveis. Requer Claude Code v2.1.199 ou posterior.2562Permita substituição `mask` em requisições HTTP simples bem como HTTPS terminado em TLS. Em HTTP simples a identidade upstream não é verificada e a credencial viaja em texto claro, então deixe isso desativado fora de redes de teste confiáveis.

2560 2563 

2561* **Scope**: [`User or managed`](#scopes)2564* **Scope**: [`User or managed`](#scopes)

2562* **Type**: Boolean2565* **Type**: Boolean


2574}2577}

2575```2578```

2576 2579 

2577Requer Claude Code v2.1.199 ou posterior.

2578 

2579<h3 id="sandbox-credentials-awspairs">2580<h3 id="sandbox-credentials-awspairs">

2580 `sandbox.credentials.awsPairs`2581 `sandbox.credentials.awsPairs`

2581</h3>2582</h3>


2919}2920}

2920```2921```

2921 2922 

2922Quando mais de uma fonte honrada a define, Claude Code usa o valor da fonte com maior precedência: configurações gerenciadas, depois a flag `--settings`, depois configurações de usuário. Requer Claude Code v2.1.199 ou posterior.2923Quando mais de uma fonte honrada a define, Claude Code usa o valor da fonte com maior precedência: configurações gerenciadas, depois a flag `--settings`, depois configurações de usuário.

2923 2924 

2924<span id="context-and-memory" />2925<span id="context-and-memory" />

2925 2926 


2967}2968}

2968```2969```

2969 2970 

2970Defina com o comando [`/autocompact`](/docs/pt/commands#all-commands), que escreve essa chave nas suas configurações de usuário. [Defina a janela auto-compact](/docs/pt/model-config#set-the-auto-compact-window) cobre como o comando, flag, variável e configuração interagem.2971O comando [`/autocompact`](/docs/pt/commands#all-commands) salva uma janela para o modelo atual em [`modelSettings`](#modelsettings), que tem precedência sobre essa chave no mesmo arquivo para esse modelo. [Defina a janela auto-compact](/docs/pt/model-config#set-the-auto-compact-window) cobre como o comando, flag, variável e configuração interagem.

2971 2972 

2972<h3 id="automemorydirectory">2973<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2974 `autoMemoryDirectory`

setup.md +5 −5

Details

45 <Tab title="Instalação Nativa (Recomendado)">45 <Tab title="Instalação Nativa (Recomendado)">

46 **macOS, Linux, WSL:**46 **macOS, Linux, WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

skills.md +106 −105

Details

198 Resolva skills que compartilham um nome198 Resolva skills que compartilham um nome

199</h3>199</h3>

200 200 

201Quando duas skills compartilham um nome de diretório ou arquivo, de onde cada uma veio decide qual `/name` executa. Para um nome definido pelo campo frontmatter `name`, veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name). A tabela cobre os locais enterprise, personal, project, nested, plugin e claude.ai, skills agrupadas e arquivos de comando:201Quando duas skills compartilham um nome de diretório ou arquivo, de onde cada uma veio decide qual `/name` executa. Para um nome definido pelo campo frontmatter `name`, veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name). A tabela cobre os locais enterprise, personal, project, nested, plugin e claude.ai, skills incluídas, comandos integrados e arquivos de comando:

202 202 

203| Mesmo nome em | Qual executa |203| Mesmo nome em | Qual executa |

204| :- | :- |204| :- | :- |

205| Dois de enterprise, personal e project | Enterprise sobre personal, e personal sobre project. Com `deploy` em ambos `~/.claude/skills/` e o `.claude/skills/` do projeto, `/deploy` executa o pessoal |205| Dois de enterprise, personal e project | Enterprise sobre personal, e personal sobre project. Com `deploy` em ambos `~/.claude/skills/` e o `.claude/skills/` do projeto, `/deploy` executa o pessoal |

206| Qualquer um desses locais e uma [skill agrupada](#bundled-skills) | Sua skill substitui o comando agrupado, mas não seus aliases. Uma skill `code-review` de projeto substitui `/code-review`, e o alias agrupado `/review` nunca executa sua skill |206| Qualquer um desses locais e uma [skill agrupada](#bundled-skills) | Sua skill substitui o comando agrupado, mas não seus aliases. Uma skill `code-review` de projeto substitui `/code-review`, e o alias agrupado `/review` nunca executa sua skill |

207| Qualquer um desses locais e um [comando integrado](/docs/pt/commands) | Em uma sessão de terminal local, sua skill substitui o comando integrado, mas não seus aliases. Uma skill `usage` de projeto substitui `/usage`, e o alias integrado `/cost` ainda executa o comando integrado |

207| Uma skill e um arquivo em `.claude/commands/` | A skill |208| Uma skill e um arquivo em `.claude/commands/` | A skill |

208| Uma skill raiz de projeto e uma skill aninhada | Ambas carregam. Veja [monorepos e subdiretórios](#discovery-from-parent-and-nested-directories) |209| Uma skill raiz de projeto e uma skill aninhada | Ambas carregam. Veja [monorepos e subdiretórios](#discovery-from-parent-and-nested-directories) |

209| Uma skill de plugin e uma skill em qualquer um dos locais acima | Ambas carregam, porque skills de plugin são nomeadas como `/plugin-name:skill-name` |210| Uma skill de plugin e uma skill em qualquer um dos locais acima | Ambas carregam, porque skills de plugin são nomeadas como `/plugin-name:skill-name` |


341 Configurar skills342 Configurar skills

342</h2>343</h2>

343 344 

344Skills são configuradas através de frontmatter YAML no topo de `SKILL.md` e no conteúdo markdown que segue.345As skills são configuradas por meio do frontmatter YAML no topo do `SKILL.md` e do conteúdo markdown que vem em seguida.

345 346 

346<h3 id="types-of-skill-content">347<h3 id="types-of-skill-content">

347 Tipos de conteúdo de skill348 Tipos de conteúdo de skill

348</h3>349</h3>

349 350 

350Arquivos de skill podem conter qualquer instrução, mas pensar em como você quer invocá-los ajuda a guiar o que incluir:351Os arquivos de skill podem conter quaisquer instruções, mas pensar em como você deseja invocá-las ajuda a orientar o que incluir:

351 352 

352**Conteúdo de referência** adiciona conhecimento que Claude aplica ao seu trabalho atual. Convenções, padrões, guias de estilo, conhecimento de domínio. Este conteúdo é executado inline para que Claude possa usá-lo junto com seu contexto de conversa.353**Conteúdo de referência** adiciona conhecimento que o Claude aplica ao seu trabalho atual. Convenções, padrões, guias de estilo, conhecimento de domínio. Esse conteúdo é executado inline para que o Claude possa usá-lo junto com o contexto da sua conversa.

353 354 

354```yaml theme={null}355```yaml theme={null}

355---356---


363- Include request validation364- Include request validation

364```365```

365 366 

366**Conteúdo de tarefa** fornece a Claude instruções passo a passo para uma ação específica, como deployments, commits ou geração de código. Estas são frequentemente ações que você quer invocar diretamente com `/skill-name` em vez de deixar Claude decidir quando executá-las. Adicione `disable-model-invocation: true` para evitar que Claude a dispare automaticamente. O exemplo abaixo adiciona `context: fork`, que executa a skill em seu próprio contexto de subagent; veja [Executar skills em um subagent](#run-skills-in-a-subagent).367**Conteúdo de tarefa** fornece ao Claude instruções passo a passo para uma ação específica, como deploys, commits ou geração de código. Geralmente são ações que você deseja invocar diretamente com `/skill-name` em vez de deixar o Claude decidir quando executá-las. Adicione `disable-model-invocation: true` para impedir que o Claude a acione automaticamente. O exemplo abaixo adiciona `context: fork`, que executa a skill em seu próprio contexto de subagente; consulte [Executar skills em um subagente](#run-skills-in-a-subagent).

367 368 

368```yaml theme={null}369```yaml theme={null}

369---370---


3793. Push to the deployment target3803. Push to the deployment target

380```381```

381 382 

382Mantenha o corpo em si conciso. Uma vez que uma skill é carregada, seu conteúdo [permanece em contexto entre turnos](#skill-content-lifecycle), então cada linha é um custo de token recorrente. Declare o que fazer em vez de narrar como ou por que, e aplique o mesmo teste de concisão que você faria para [conteúdo CLAUDE.md](/docs/pt/best-practices#write-an-effective-claude-md).383Mantenha o corpo em si conciso. Depois que uma skill é carregada, seu conteúdo [permanece no contexto ao longo dos turnos](#skill-content-lifecycle), então cada linha é um custo recorrente de tokens. Declare o que fazer em vez de narrar como ou por quê, e aplique o mesmo teste de concisão que você aplicaria ao [conteúdo do CLAUDE.md](/docs/pt/best-practices#write-an-effective-claude-md).

383 384 

384<h3 id="frontmatter-reference">385<h3 id="frontmatter-reference">

385 Referência de frontmatter386 Referência do frontmatter

386</h3>387</h3>

387 388 

388Configure uma skill com YAML [frontmatter](/docs/pt/glossary#frontmatter) entre marcadores `---` no topo de `SKILL.md`, e escreva as instruções da skill como Markdown após o `---` de fechamento. Os nomes de campo usam palavras minúsculas separadas por hífens, exceto `when_to_use`. Um [arquivo de comando](#where-skills-live) em `.claude/commands/` aceita os mesmos campos exceto `name` e `paths`. Este exemplo define quatro campos:389Configure uma skill com [frontmatter](/docs/pt/glossary#frontmatter) YAML entre marcadores `---` no topo do `SKILL.md` e escreva as instruções da skill em Markdown após o `---` de fechamento. Os nomes dos campos usam palavras em minúsculas separadas por hifens, exceto `when_to_use`. Um [arquivo de comando](#where-skills-live) em `.claude/commands/` aceita os mesmos campos, exceto `name` e `paths`. Este exemplo define quatro campos:

389 390 

390```yaml theme={null}391```yaml theme={null}

391---392---


398Your skill instructions here...399Your skill instructions here...

399```400```

400 401 

401Todos os campos são opcionais. Apenas `description` é recomendado para que Claude saiba quando usar a skill. Um nome de campo deve corresponder exatamente à tabela, hífens inclusos: Claude Code ignora um campo que não reconhece sem relatar um erro.402Todos os campos são opcionais. Apenas `description` é recomendado para que o Claude saiba quando usar a skill. O nome de um campo deve corresponder exatamente à tabela, incluindo hifens: o Claude Code ignora um campo que não reconhece sem relatar um erro.

402 403 

403Claude Code lê o frontmatter apenas quando a abertura `---` é a primeira linha do arquivo. Caso contrário, trata o arquivo inteiro, incluindo marcadores `---`, como conteúdo de skill. Se o YAML entre os marcadores não for analisado, a skill ainda carrega sem campos definidos; veja [Skill não disparando](#skill-not-triggering) para encontrar e corrigir o erro.404O Claude Code lê o frontmatter somente quando o `---` de abertura é a primeira linha do arquivo. Caso contrário, ele trata o arquivo inteiro, incluindo os marcadores `---`, como conteúdo da skill. Se o YAML entre os marcadores não puder ser analisado, a skill ainda é carregada sem nenhum campo definido; consulte [Skill não é acionada](#skill-not-triggering) para encontrar e corrigir o erro.

404 405 

405Campos booleanos aceitam `yes`, `no`, `on`, `off`, `1` e `0` em qualquer caso de letra, além de `true` e `false`. Antes da v2.1.218, Claude Code reconhecia apenas `true` e `false`.406Campos booleanos aceitam `yes`, `no`, `on`, `off`, `1` e `0` com qualquer combinação de maiúsculas e minúsculas, além de `true` e `false`. Antes da v2.1.218, o Claude Code reconhecia apenas `true` e `false`.

406 407 

407| Campo | Obrigatório | Descrição |408| Campo | Obrigatório | Descrição |

408| :- | :- | :- |409| :- | :- | :- |

409| `name` | Não | Nome de comando mostrado no menu `/`. Padrão é o nome do diretório. Veja [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name) para como o campo interage com o nome que você digita para invocar a skill. |410| `name` | Não | Nome do comando exibido no menu `/`. O padrão é o nome do diretório. Consulte [Como uma skill obtém seu nome de comando](#how-a-skill-gets-its-command-name) para ver como o campo interage com o nome que você digita para invocar a skill. |

410| `description` | Recomendado | O que a skill faz e quando usá-la. Claude usa isso para decidir quando aplicar a skill. Se omitido, usa a primeira linha não vazia do conteúdo markdown. Coloque o caso de uso principal primeiro: o texto combinado de `description` e `when_to_use` é truncado em 1.536 caracteres na listagem de skills para reduzir o uso de contexto. |411| `description` | Recomendado | O que a skill faz e quando usá-la. O Claude usa isso para decidir quando aplicar a skill. Se omitido, usa a primeira linha não vazia do conteúdo markdown. Coloque o caso de uso principal primeiro: o texto combinado de `description` e `when_to_use` é truncado em 1.536 caracteres na listagem de skills para reduzir o uso de contexto. |

411| `when_to_use` | Não | Contexto adicional para quando Claude deve invocar a skill, como frases de gatilho ou solicitações de exemplo. Anexado a `description` na listagem de skills e conta para o limite de 1.536 caracteres. |412| `when_to_use` | Não | Contexto adicional sobre quando o Claude deve invocar a skill, como frases de acionamento ou exemplos de solicitações. É anexado a `description` na listagem de skills e conta para o limite de 1.536 caracteres. |

412| `argument-hint` | Não | Dica mostrada durante o autocomplete para indicar argumentos esperados. Exemplo: `[issue-number]` ou `[filename] [format]`. |413| `argument-hint` | Não | Dica exibida durante o preenchimento automático para indicar os argumentos esperados. Exemplo: `[issue-number]` ou `[filename] [format]`. |

413| `arguments` | Não | Argumentos posicionais nomeados para [`$name` substitution](#available-string-substitutions) no conteúdo da skill. Aceita uma string separada por espaços ou uma lista YAML. Os nomes mapeiam para posições de argumento em ordem. |414| `arguments` | Não | Argumentos posicionais nomeados para [substituição `$name`](#available-string-substitutions) no conteúdo da skill. Aceita uma string separada por espaços ou uma lista YAML. Os nomes são mapeados para as posições dos argumentos em ordem. |

414| `disable-model-invocation` | Não | Defina como `true` para evitar que Claude carregue automaticamente esta skill. Use para workflows que você quer disparar manualmente com `/name`. Também evita que a skill seja [pré-carregada em subagents](/docs/pt/sub-agents#preload-skills-into-subagents). A partir da v2.1.196, também evita que a skill seja executada quando uma [tarefa agendada](/docs/pt/scheduled-tasks) dispara com a skill como seu prompt. Padrão: `false`. |415| `disable-model-invocation` | Não | Defina como `true` para impedir que o Claude carregue esta skill automaticamente. Use para fluxos de trabalho que você deseja acionar manualmente com `/name`. Também impede que a skill seja [pré-carregada em subagentes](/docs/pt/sub-agents#preload-skills-into-subagents). A partir da v2.1.196, também impede que a skill seja executada quando uma [tarefa agendada](/docs/pt/scheduled-tasks) é disparada com a skill como seu prompt. Padrão: `false`. |

415| `user-invocable` | Não | Defina como `false` quando apenas Claude deve invocar a skill: Claude Code a oculta do menu `/` e não a executa quando você digita `/name`. Use para conhecimento de fundo que os usuários não devem invocar diretamente. Padrão: `true`. |416| `user-invocable` | Não | Defina como `false` quando apenas o Claude deve invocar a skill: o Claude Code a oculta do menu `/` e não a executa quando você digita `/name`. Use para conhecimento de fundo que os usuários não devem invocar diretamente. Padrão: `true`. |

416| `allowed-tools` | Não | Ferramentas que Claude pode usar sem pedir permissão durante o turno que invoca esta skill. A concessão é limpa quando você envia sua próxima mensagem. Aceita uma string separada por espaço ou vírgula, ou uma lista YAML. Veja [Pré-aprovar ferramentas para uma skill](#pre-approve-tools-for-a-skill). |417| `allowed-tools` | Não | Ferramentas que o Claude pode usar sem pedir permissão durante o turno que invoca esta skill. A concessão é removida quando você envia sua próxima mensagem. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. Consulte [Pré-aprovar ferramentas para uma skill](#pre-approve-tools-for-a-skill). |

417| `disallowed-tools` | Não | Ferramentas removidas do pool disponível de Claude enquanto esta skill está ativa. Use para skills autônomas que nunca devem chamar certas ferramentas, como `AskUserQuestion` para um loop de fundo. Aceita uma string separada por espaço ou vírgula, ou uma lista YAML. A restrição é limpa quando você envia sua próxima mensagem. Como regras de negação, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. |418| `disallowed-tools` | Não | Ferramentas removidas do conjunto disponível do Claude enquanto esta skill está ativa. Use para skills autônomas que nunca devem chamar certas ferramentas, como `AskUserQuestion` para um loop em segundo plano. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. A restrição é removida quando você envia sua próxima mensagem. Assim como as regras deny, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. |

418| `model` | Não | Modelo a usar quando esta skill está ativa. A substituição se aplica pelo resto do turno atual e não é salva nas configurações. O modelo de sessão é retomado quando você envia seu próximo prompt. Aceita os mesmos valores que [`/model`](/docs/pt/model-config), ou `inherit` para manter o modelo ativo. Um valor excluído pela lista de permissões [`availableModels`](/docs/pt/model-config#restrict-model-selection) da sua organização não é usado, e a sessão mantém seu modelo atual. Em [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) e em [modo plano enquanto o classificador revisa comandos](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um modelo que o modo automático não suporta também não é usado, e a sessão mantém seu modelo atual. Com `context: fork`, o valor define o [modelo do subagent bifurcado](#run-skills-in-a-subagent) em vez disso, e um valor excluído segue as [mesmas regras que uma substituição de modelo de subagent](/docs/pt/model-config#restrict-model-selection). |419| `model` | Não | Modelo a ser usado quando esta skill está ativa. A substituição se aplica pelo restante do turno atual e não é salva nas configurações. O modelo da sessão é retomado quando você envia seu próximo prompt. Aceita os mesmos valores que [`/model`](/docs/pt/model-config), ou `inherit` para manter o modelo ativo. Um valor excluído pela allowlist [`availableModels`](/docs/pt/model-config#restrict-model-selection) da sua organização não é usado, e a sessão mantém seu modelo atual. No [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), e no [modo de planejamento enquanto o classificador revisa comandos](/docs/pt/permission-modes#analyze-before-you-edit-with-plan-mode), um modelo que o modo auto não suporta também não é usado, e a sessão mantém seu modelo atual. Com `context: fork`, o valor define o [modelo do subagente bifurcado](#run-skills-in-a-subagent), e um valor excluído segue as [mesmas regras de uma substituição de modelo de subagente](/docs/pt/model-config#restrict-model-selection). |

419| `effort` | Não | [Nível de esforço](/docs/pt/model-config#adjust-effort-level) quando esta skill está ativa. Substitui o nível de esforço da sessão. Padrão: herda da sessão. Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo. |420| `effort` | Não | [Nível de esforço](/docs/pt/model-config#adjust-effort-level) quando esta skill está ativa. Sobrescreve o nível de esforço da sessão. Quando você o omite, o nível vem da [ordem de resolução de esforço](/docs/pt/model-config#adjust-effort-level). Opções: `low`, `medium`, `high`, `xhigh`, `max`; os níveis disponíveis dependem do modelo. |

420| `context` | Não | Defina como `fork` para executar em um contexto de subagent bifurcado. Veja [Executar skills em um subagent](#run-skills-in-a-subagent). |421| `context` | Não | Defina como `fork` para executar em um contexto de subagente bifurcado. Consulte [Executar skills em um subagente](#run-skills-in-a-subagent). |

421| `agent` | Não | Qual tipo de subagent usar quando `context: fork` está definido. |422| `agent` | Não | Qual tipo de subagente usar quando `context: fork` está definido. |

422| `background` | Não | Aplica-se apenas com `context: fork`. Defina como `false` para aguardar o resultado do subagent bifurcado no turno que invocou a skill, em vez de [executá-lo em segundo plano](#run-skills-in-a-subagent). Padrão: `true`. Requer Claude Code v2.1.218 ou posterior. |423| `background` | Não | Aplica-se somente com `context: fork`. Defina como `false` para aguardar o resultado do subagente bifurcado no turno que invocou a skill, em vez de [executá-lo em segundo plano](#run-skills-in-a-subagent). Padrão: `true`. Requer Claude Code v2.1.218 ou posterior. |

423| `hooks` | Não | Hooks que Claude Code registra quando a skill é invocada e continua executando pelo resto da sessão. Veja [Hooks em skills e agents](/docs/pt/hooks#hooks-in-skills-and-agents) para o formato de configuração e a opção `once`. |424| `hooks` | Não | Hooks que o Claude Code registra quando a skill é invocada e mantém em execução pelo restante da sessão. Consulte [Hooks em skills e agentes](/docs/pt/hooks#hooks-in-skills-and-agents) para o formato de configuração e a opção `once`. |

424| `paths` | Não | Padrões Glob que limitam quando esta skill é ativada. Aceita uma string separada por vírgula ou uma lista YAML. Quando definido, Claude carrega a skill automaticamente apenas ao trabalhar com arquivos que correspondem aos padrões. Usa o mesmo formato que [regras específicas de caminho](/docs/pt/memory#path-specific-rules). |425| `paths` | Não | Padrões glob que limitam quando esta skill é ativada. Aceita uma string separada por vírgulas ou uma lista YAML. Quando definido, o Claude carrega a skill automaticamente somente ao trabalhar com arquivos que correspondem aos padrões. Usa o mesmo formato das [regras específicas de caminho](/docs/pt/memory#path-specific-rules). |

425| `shell` | Não | Shell a usar para `` !`command` `` e blocos ` ```! ` nesta skill. Aceita `bash` (padrão) ou `powershell`. Definir `powershell` executa comandos shell inline via PowerShell quando a [ferramenta PowerShell](/pt/tools-reference#powershell-tool) está habilitada: está ativada por padrão no Windows sem Git Bash, ativada por padrão com Git Bash para contas claude.ai e Console, e precisa de `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` em sessões Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry e em macOS, Linux e WSL. Defina como `0` para desativar a ferramenta. |426| `shell` | Não | Shell a ser usado para blocos `` !`command` `` e ` ```! ` nesta skill. Aceita `bash` (padrão) ou `powershell`. Definir `powershell` executa comandos de shell inline via PowerShell quando a [ferramenta PowerShell](/pt/tools-reference#powershell-tool) está habilitada: ela fica ativada por padrão no Windows sem Git Bash, ativada por padrão com Git Bash para contas claude.ai e Console, e precisa de `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` em sessões do Amazon Bedrock, do Agent Platform do Google Cloud e do Microsoft Foundry, e no macOS, Linux e WSL. Defina como `0` para desativar a ferramenta. |

426| `metadata` | Não | Mapa YAML de forma livre para seus próprios dados de chave-valor, como campos de direito ou catálogo, lidos por sua própria ferramenta a partir de `SKILL.md`. Claude Code não age sobre seu conteúdo e descarta um valor que não é um mapa. Não reutilize nomes de campos de frontmatter como `paths` como chaves. |427| `metadata` | Não | Mapa YAML de formato livre para seus próprios dados de chave-valor, como campos de direitos de uso ou de catálogo, lidos pelas suas próprias ferramentas a partir do `SKILL.md`. O Claude Code não age sobre seu conteúdo e descarta um valor que não seja um mapa. Não reutilize nomes de campos do frontmatter, como `paths`, como chaves. |

427| `license` | Não | Licença que cobre a skill. Parte da especificação [Agent Skills](https://agentskills.io); veja [Usando frontmatter de skill fora do Claude Code](#using-skill-frontmatter-outside-claude-code). Claude Code aceita o campo mas não age sobre ele. |428| `license` | Não | Licença que cobre a skill. Faz parte da especificação [Agent Skills](https://agentskills.io); consulte [Usar o frontmatter de skills fora do Claude Code](#using-skill-frontmatter-outside-claude-code). O Claude Code aceita o campo, mas não age sobre ele. |

428| `compatibility` | Não | Requisitos de ambiente para a skill, como produtos pretendidos ou pré-requisitos do sistema, conforme definido pela especificação [Agent Skills](https://agentskills.io); veja [Usando frontmatter de skill fora do Claude Code](#using-skill-frontmatter-outside-claude-code). Aceita uma string de até 500 caracteres. Claude Code aceita o campo mas não age sobre ele. |429| `compatibility` | Não | Requisitos de ambiente para a skill, como produtos pretendidos ou pré-requisitos de sistema, conforme definido pela especificação [Agent Skills](https://agentskills.io); consulte [Usar o frontmatter de skills fora do Claude Code](#using-skill-frontmatter-outside-claude-code). Aceita uma string de até 500 caracteres. O Claude Code aceita o campo, mas não age sobre ele. |

429 430 

430<h4 id="using-skill-frontmatter-outside-claude-code">431<h4 id="using-skill-frontmatter-outside-claude-code">

431 Usando frontmatter de skill fora do Claude Code432 Usar o frontmatter de skills fora do Claude Code

432</h4>433</h4>

433 434 

434Claude Code aceita todos os campos na tabela acima. Fora do Claude Code, você pode usar apenas os campos na especificação [Agent Skills](https://agentskills.io):435O Claude Code aceita todos os campos da tabela acima. Fora do Claude Code, você pode usar apenas os campos da especificação [Agent Skills](https://agentskills.io):

435 436 

436| Caminho de distribuição | Campos de frontmatter que você pode usar |437| Caminho de distribuição | Campos de frontmatter que você pode usar |

437| :- | :- |438| :- | :- |

438| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugin](/docs/pt/plugins/overview) | Todos os campos na tabela acima |439| Skills do Claude Code em [qualquer nível](#where-skills-live), incluindo skills de [plugins](/docs/pt/plugins/overview) | Todos os campos da tabela acima |

439| Uploads de skills do claude.ai, a Skills API e empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |440| Uploads de skills no claude.ai, a API de Skills e o empacotamento com `package_skill.py` de [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |

440 441 

441Quando você habilita uma skill pessoal para sua conta claude.ai, por exemplo para usá-la em [sessões Cowork e cloud](#skills-in-cowork-and-cloud-sessions) e rotinas, você a carrega no claude.ai, então as mesmas regras se aplicam.442Quando você habilita uma skill pessoal para sua conta do claude.ai, por exemplo para usá-la em [sessões do Cowork e na nuvem](#skills-in-cowork-and-cloud-sessions) e em rotinas, você a envia para o claude.ai, então as mesmas regras se aplicam.

442 443 

443Se você incluir qualquer campo que a especificação não permite, o empacotamento ou upload falha com um erro difícil em vez de ignorar o campo:444Se você incluir qualquer campo que a especificação não permite, o empacotamento ou o upload falha com um erro grave em vez de ignorar o campo:

444 445 

445```446```

446Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name447Unexpected key(s) in SKILL.md frontmatter: argument-hint. Allowed properties are: allowed-tools, compatibility, description, license, metadata, name

447```448```

448 449 

449Restringir o frontmatter aos seis campos da especificação evita o erro de chave inesperada acima. A [especificação Agent Skills](https://agentskills.io) e os [requisitos da Skills API](https://docs.claude.com/en/api/skills-guide) definem tudo mais que esses caminhos validam. Recursos de corpo específicos do Claude Code, como [injeção de contexto dinâmico](#inject-dynamic-context), não funcionam no chat claude.ai ou através da API. Claude Code aceita todos os seis campos, então o frontmatter que segue a especificação carrega no Claude Code sem alterações.450Restringir o frontmatter aos seis campos da especificação evita o erro de chave inesperada acima. A [especificação Agent Skills](https://agentskills.io) e os [requisitos da API de Skills](https://docs.claude.com/en/api/skills-guide) definem todo o resto que esses caminhos validam. Recursos de corpo exclusivos do Claude Code, como a [injeção de contexto dinâmico](#inject-dynamic-context), não funcionam no chat do claude.ai nem pela API. O Claude Code aceita todos os seis campos, então um frontmatter que segue a especificação é carregado no Claude Code sem alterações.

450 451 

451<h4 id="how-a-skill-gets-its-command-name">452<h4 id="how-a-skill-gets-its-command-name">

452 Como uma skill obtém seu nome de comando453 Como uma skill obtém seu nome de comando

453</h4>454</h4>

454 455 

455O comando que você digita para invocar uma skill vem de onde o arquivo de skill vive e, para diretórios de skill e skills de plugin, do campo frontmatter `name`. Em um diretório de skill pessoal ou de projeto, `name` define o comando que o menu `/` mostra e que você digita, a menos que outro comando já use esse nome. O nome do diretório também invoca a skill. Em uma skill de plugin, `name` define o último segmento do comando e o prefixo do plugin permanece no lugar.456O comando que você digita para invocar uma skill vem do local onde o arquivo da skill está e, para diretórios de skills e skills de plugins, do campo `name` do frontmatter. Em um diretório de skills pessoal ou de projeto, `name` define o comando que o menu `/` exibe e que você digita, a menos que outro comando já use esse nome. O nome do diretório também invoca a skill. Em uma skill de plugin, `name` define o último segmento do comando e o prefixo do plugin permanece.

456 457 

457A tabela abaixo mostra de onde o nome do comando vem para cada layout:458A tabela abaixo mostra de onde vem o nome do comando para cada estrutura:

458 459 

459| Local da skill | Fonte do nome do comando | Exemplo |460| Local da skill | Origem do nome do comando | Exemplo |

460| :- | :- | :- |461| :- | :- | :- |

461| Diretório de skill sob `~/.claude/skills/` ou `.claude/skills/` | Frontmatter `name` ou o nome do diretório | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`, ou `/deploy` com `name: deploy` |462| Diretório de skill em `~/.claude/skills/` ou `.claude/skills/` | `name` do frontmatter ou o nome do diretório | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`, ou `/deploy` com `name: deploy` |

462| [Aninhado](#where-skills-live) diretório `.claude/skills/`, quando o nome do diretório entra em conflito com outra skill | Caminho do subdiretório relativo ao diretório de trabalho, depois o nome do diretório de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |463| Diretório `.claude/skills/` [aninhado](#where-skills-live), quando o nome do diretório conflita com outra skill | Caminho do subdiretório relativo ao diretório de trabalho, seguido do nome do diretório da skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

463| Arquivo sob `.claude/commands/` | Nome do arquivo sem extensão | `.claude/commands/deploy.md` → `/deploy` |464| Arquivo em `.claude/commands/` | Nome do arquivo sem extensão | `.claude/commands/deploy.md` → `/deploy` |

464| Arquivo em um subdiretório de `.claude/commands/` | Caminho do subdiretório relativo a `commands/` com cada `/` substituído por `:`, depois o nome do arquivo sem extensão | `.claude/commands/frontend/component.md` → `/frontend:component` |465| Arquivo em um subdiretório de `.claude/commands/` | Caminho do subdiretório relativo a `commands/` com cada `/` substituída por `:`, seguido do nome do arquivo sem extensão | `.claude/commands/frontend/component.md` → `/frontend:component` |

465| Subdiretório `skills/` do plugin | Frontmatter `name` ou o nome do diretório, com namespace pelo plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, ou `/my-plugin:fancy` com `name: fancy` |466| Subdiretório `skills/` de plugin | `name` do frontmatter ou o nome do diretório, com namespace do plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, ou `/my-plugin:fancy` com `name: fancy` |

466| `SKILL.md` raiz do plugin | Frontmatter `name`, com o nome do diretório do plugin como fallback | `my-plugin/SKILL.md` com `name: review` → `/my-plugin:review`. Veja [uma única skill na raiz do plugin](/docs/pt/plugins/components#skills) |467| `SKILL.md` na raiz do plugin | `name` do frontmatter, com o nome do diretório do plugin como fallback | `my-plugin/SKILL.md` com `name: review` → `/my-plugin:review`. Consulte [uma única skill na raiz do plugin](/docs/pt/plugins/components#skills) |

467| Skill [sincronizada do claude.ai](#how-synced-skills-behave) | O nome da skill em sua conta claude.ai, prefixado com `anthropic-skills:` | Skill de conta `deploy` → `/anthropic-skills:deploy`, ou `/deploy` enquanto nenhum outro comando usa esse nome |468| Skill [sincronizada do claude.ai](#how-synced-skills-behave) | O nome da skill na sua conta do claude.ai, com o prefixo `anthropic-skills:` | Skill da conta `deploy` → `/anthropic-skills:deploy`, ou `/deploy` enquanto nenhum outro comando usar esse nome |

468 469 

469Em uma skill de plugin, o frontmatter `name` substitui o nome do diretório no último segmento do comando, então `my-plugin/skills/review/SKILL.md` com `name: fancy` se torna `/my-plugin:fancy`. O comando `/fancy` simples também invoca a skill a menos que outro comando já use esse nome. Se o `name` que você escreve já começa com o próprio prefixo do plugin, Claude Code não adiciona o prefixo novamente na v2.1.246 ou posterior. Por exemplo, `name: my-plugin:fancy` ainda se torna `/my-plugin:fancy`. Da v2.1.216 até v2.1.245, Claude Code duplicava o prefixo quando o `name` já o carregava.470Em uma skill de plugin, o `name` do frontmatter substitui o nome do diretório no último segmento do comando, então `my-plugin/skills/review/SKILL.md` com `name: fancy` se torna `/my-plugin:fancy`. O `/fancy` simples também invoca a skill, a menos que outro comando já use esse nome. Se o `name` que você escreve já começa com o próprio prefixo do plugin, o Claude Code não adiciona o prefixo novamente na v2.1.246 ou posterior. Por exemplo, `name: my-plugin:fancy` ainda se torna `/my-plugin:fancy`. Da v2.1.216 até a v2.1.245, o Claude Code duplicava o prefixo quando o `name` já o continha.

470 471 

471Em [sessões não-interativas](/docs/pt/headless), os nomes `help` e `feedback` não são reservados para seus comandos built-in apenas de terminal, então uma skill de plugin com um desses nomes mantém seu comando simples lá. Todos os outros built-ins apenas de terminal, como `/login`, permanecem reservados mesmo que o comando não possa ser executado nessas sessões.472Em [sessões não interativas](/docs/pt/headless), os nomes `help` e `feedback` não são reservados para seus comandos integrados exclusivos do terminal, então uma skill de plugin com um desses nomes mantém seu comando simples nessas sessões. O nome de todos os outros comandos integrados exclusivos do terminal, como `/login`, permanece reservado, mesmo que o comando não possa ser executado nessas sessões.

472 473 

473Para um `SKILL.md` raiz de plugin, não há diretório de skill para obter o nome, então `name` fornece o segmento final inteiro. Sem um campo `name`, Claude Code volta para o nome do diretório do plugin.474Para um `SKILL.md` na raiz do plugin, não há diretório de skill de onde obter o nome, então `name` fornece todo o segmento final. Sem um campo `name`, o Claude Code usa o nome do diretório do plugin como fallback.

474 475 

475<h4 id="available-string-substitutions">476<h4 id="available-string-substitutions">

476 Substituições de string disponíveis477 Substituições de string disponíveis

477</h4>478</h4>

478 479 

479Skills suportam substituição de string para valores dinâmicos no conteúdo da skill:480As skills suportam substituição de strings para valores dinâmicos no conteúdo da skill:

480 481 

481| Variável | Descrição |482| Variável | Descrição |

482| :- | :- |483| :- | :- |

483| `$ARGUMENTS` | Todos os argumentos passados ao invocar a skill. Quando nenhum placeholder recebe um argumento, Claude Code os anexa como `ARGUMENTS: <value>`. Veja [Passar argumentos para skills](#pass-arguments-to-skills). |484| `$ARGUMENTS` | Todos os argumentos passados ao invocar a skill. Quando nenhum placeholder recebe um argumento, o Claude Code os anexa como `ARGUMENTS: <value>`. Consulte [Passar argumentos para skills](#pass-arguments-to-skills). |

484| `$ARGUMENTS[N]` | Acesse um argumento específico por índice baseado em 0, como `$ARGUMENTS[0]` para o primeiro argumento. |485| `$ARGUMENTS[N]` | Acessa um argumento específico por índice baseado em 0, como `$ARGUMENTS[0]` para o primeiro argumento. |

485| `$N` | Abreviação para `$ARGUMENTS[N]`, como `$0` para o primeiro argumento ou `$1` para o segundo. |486| `$N` | Forma abreviada de `$ARGUMENTS[N]`, como `$0` para o primeiro argumento ou `$1` para o segundo. |

486| `$name` | Argumento nomeado declarado na lista de frontmatter [`arguments`](#frontmatter-reference). Os nomes mapeiam para posições em ordem, então com `arguments: [issue, branch]` o placeholder `$issue` se expande para o primeiro argumento e `$branch` para o segundo. |487| `$name` | Argumento nomeado declarado na lista [`arguments`](#frontmatter-reference) do frontmatter. Os nomes são mapeados para as posições em ordem, então com `arguments: [issue, branch]` o placeholder `$issue` se expande para o primeiro argumento e `$branch` para o segundo. |

487| `${CLAUDE_SESSION_ID}` | O ID da sessão atual. Útil para logging, criação de arquivos específicos de sessão ou correlação de saída de skill com sessões. |488| `${CLAUDE_SESSION_ID}` | O ID da sessão atual. Útil para registro em log, criação de arquivos específicos da sessão ou correlação da saída da skill com sessões. |

488| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh` ou `max`. Use isso para adaptar instruções de skill à configuração de esforço ativo. |489| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh` ou `max`. Use para adaptar as instruções da skill à configuração de esforço ativa. |

489| `${CLAUDE_SKILL_DIR}` | O diretório contendo o arquivo `SKILL.md` da skill. Para skills de plugin, este é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use isso em comandos de injeção bash para referenciar scripts ou arquivos agrupados com a skill, independentemente do diretório de trabalho atual. |490| `${CLAUDE_SKILL_DIR}` | O diretório que contém o arquivo `SKILL.md` da skill. Para skills de plugins, é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use em comandos de injeção bash para referenciar scripts ou arquivos incluídos com a skill, independentemente do diretório de trabalho atual. |

490| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. Este é o mesmo caminho que [hooks](/docs/pt/hooks#reference-scripts-by-path) e servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use isso para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill está instalada. |491| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. É o mesmo caminho que os [hooks](/docs/pt/hooks#reference-scripts-by-path) e os servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill esteja instalada. |

491| `${CLAUDE_PLUGIN_ROOT}` | O diretório de instalação do plugin. Substituído apenas em skills de plugin. Use isso para referenciar scripts ou arquivos agrupados em qualquer lugar do plugin, incluindo recursos compartilhados entre as skills do plugin. Veja [variáveis de ambiente do plugin](/docs/pt/plugins/manifest-reference#environment-variables). |492| `${CLAUDE_PLUGIN_ROOT}` | O diretório de instalação do plugin. Substituído somente em skills de plugins. Use para referenciar scripts ou arquivos incluídos em qualquer lugar do plugin, incluindo recursos compartilhados entre as skills do plugin. Consulte [variáveis de ambiente de plugins](/docs/pt/plugins/manifest-reference#environment-variables). |

492| `${CLAUDE_PLUGIN_DATA}` | O [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) do plugin, que sobrevive a atualizações de plugin. Substituído apenas em skills de plugin. Use isso para referenciar dependências instaladas, arquivos gerados ou caches que devem sobreviver a uma atualização. |493| `${CLAUDE_PLUGIN_DATA}` | O [diretório de dados persistentes](/docs/pt/plugins/components#path-variables-and-persistent-data) do plugin, que sobrevive às atualizações do plugin. Substituído somente em skills de plugins. Use para referenciar dependências instaladas, arquivos gerados ou caches que devem sobreviver a uma atualização. |

493 494 

494Claude Code substitui `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` em dois lugares: o conteúdo markdown da skill e regras Bash no frontmatter [`allowed-tools`](#frontmatter-reference). Em uma skill de plugin, Claude Code substitui `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` nos mesmos dois lugares. Usar a mesma variável em ambos os lugares permite que uma skill execute um script agrupado sem um prompt de permissão. A skill a seguir mostra o padrão:495O Claude Code substitui `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` em dois lugares: no conteúdo markdown da skill e nas regras de Bash no frontmatter [`allowed-tools`](#frontmatter-reference). Em uma skill de plugin, o Claude Code substitui `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` nesses mesmos dois lugares. Usar a mesma variável em ambos os lugares permite que uma skill execute um script incluído sem um prompt de permissão. A skill a seguir mostra o padrão:

495 496 

496```yaml theme={null}497```yaml theme={null}

497---498---


503Run `${CLAUDE_SKILL_DIR}/scripts/render.sh <csv-file>` to render the chart.504Run `${CLAUDE_SKILL_DIR}/scripts/render.sh <csv-file>` to render the chart.

504```505```

505 506 

506Se esta skill está instalada em `~/.claude/skills/render-chart/`, ambas as ocorrências de `${CLAUDE_SKILL_DIR}` se expandem para esse diretório. A regra `allowed-tools` então corresponde ao comando exato que o corpo da skill diz a Claude para executar, então o script é executado sem avisar.507Se esta skill estiver instalada em `~/.claude/skills/render-chart/`, ambas as ocorrências de `${CLAUDE_SKILL_DIR}` se expandem para esse diretório. A regra de `allowed-tools` então corresponde exatamente ao comando que o corpo da skill instrui o Claude a executar, então o script é executado sem solicitar confirmação.

507 508 

508A substituição `${CLAUDE_PROJECT_DIR}` requer Claude Code v2.1.196 ou posterior.509A substituição de `${CLAUDE_PROJECT_DIR}` requer Claude Code v2.1.196 ou posterior.

509 510 

510Argumentos indexados usam quoting estilo shell, então envolva valores com múltiplas palavras em aspas para passá-los como um único argumento. Por exemplo, `/my-skill "hello world" second` faz `$0` se expandir para `hello world` e `$1` para `second`. O placeholder `$ARGUMENTS` sempre se expande para a string de argumento completa conforme digitada.511Os argumentos indexados usam aspas no estilo shell, então coloque valores com várias palavras entre aspas para passá-los como um único argumento. Por exemplo, `/my-skill "hello world" second` faz `$0` se expandir para `hello world` e `$1` para `second`. O placeholder `$ARGUMENTS` sempre se expande para a string completa de argumentos conforme digitada.

511 512 

512Um placeholder indexado sem argumento correspondente, como `$2` quando apenas um argumento foi passado, permanece no conteúdo inalterado. Um placeholder nomeado do frontmatter [`arguments`](#frontmatter-reference) sem argumento correspondente se expande para uma string vazia.513Um placeholder indexado sem argumento correspondente, como `$2` quando apenas um argumento foi passado, permanece inalterado no conteúdo. Um placeholder nomeado do frontmatter [`arguments`](#frontmatter-reference) sem argumento correspondente se expande para uma string vazia.

513 514 

514Se você passar um valor de argumento que em si contém texto como `$1` ou `$ARGUMENTS`, Claude Code o insere como texto literal e não o expande. Por exemplo, se o corpo de uma skill contém `Summarize $0` e você executa `/summarize "$ARGUMENTS from yesterday"`, Claude recebe `Summarize $ARGUMENTS from yesterday`. Claude Code ainda substitui variáveis `${CLAUDE_*}` como `${CLAUDE_SKILL_DIR}` depois de inserir os argumentos.515Se você passar um valor de argumento que contém texto como `$1` ou `$ARGUMENTS`, o Claude Code o insere como texto literal e não o expande. Por exemplo, se o corpo de uma skill contém `Summarize $0` e você executa `/summarize "$ARGUMENTS from yesterday"`, o Claude recebe `Summarize $ARGUMENTS from yesterday`. O Claude Code ainda substitui variáveis `${CLAUDE_*}`, como `${CLAUDE_SKILL_DIR}`, depois de inserir os argumentos.

515 516 

516Para incluir um `$` literal antes de um dígito, `ARGUMENTS` ou um nome de argumento declarado, como `$1.00` em prosa, escape-o com uma barra invertida: `\$1.00`. Uma barra invertida antes de qualquer outro `$` é deixada inalterada. Apenas uma única barra invertida diretamente antes do token a escapa. Uma barra invertida duplicada como `\\$1` deixa ambas as barras invertidas no lugar, e `$1` ainda se expande para o valor do argumento. O escape de barra invertida cobre apenas esses placeholders de argumento. Uma barra invertida não evita a substituição de uma variável `${CLAUDE_*}` onde a variável se aplica.517Para incluir um `$` literal antes de um dígito, de `ARGUMENTS` ou de um nome de argumento declarado, como `$1.00` em texto corrido, escape-o com uma barra invertida: `\$1.00`. Uma barra invertida antes de qualquer outro `$` permanece inalterada. Apenas uma única barra invertida diretamente antes do token o escapa. Uma barra invertida dupla, como `\\$1`, mantém ambas as barras invertidas, e `$1` ainda se expande para o valor do argumento. O escape com barra invertida cobre apenas esses placeholders de argumentos. Uma barra invertida não impede a substituição de uma variável `${CLAUDE_*}` onde a variável se aplica.

517 518 

518**Exemplo usando substituições:**519**Exemplo usando substituições:**

519 520 


529```530```

530 531 

531<h3 id="add-supporting-files">532<h3 id="add-supporting-files">

532 Adicionar arquivos de suporte533 Adicionar arquivos de apoio

533</h3>534</h3>

534 535 

535Skills podem incluir múltiplos arquivos em seu diretório. Isso mantém `SKILL.md` focado no essencial enquanto permite que Claude acesse material de referência detalhado apenas quando necessário. Documentos de referência grandes, especificações de API ou coleções de exemplos não precisam carregar em contexto toda vez que a skill é executada.536As skills podem incluir vários arquivos em seu diretório. Isso mantém o `SKILL.md` focado no essencial, enquanto permite que o Claude acesse material de referência detalhado somente quando necessário. Documentos de referência grandes, especificações de API ou coleções de exemplos não precisam ser carregados no contexto toda vez que a skill é executada.

536 537 

537```text theme={null}538```text theme={null}

538my-skill/539my-skill/


543 └── helper.py (utility script - executed, not loaded)544 └── helper.py (utility script - executed, not loaded)

544```545```

545 546 

546Referencie arquivos de suporte de `SKILL.md` para que Claude saiba o que cada arquivo contém e quando carregá-lo:547Referencie os arquivos de apoio a partir do `SKILL.md` para que o Claude saiba o que cada arquivo contém e quando carregá-lo:

547 548 

548```markdown theme={null}549```markdown theme={null}

549## Additional resources550## Additional resources


552- For usage examples, see [examples.md](examples.md)553- For usage examples, see [examples.md](examples.md)

553```554```

554 555 

555<Tip>Mantenha `SKILL.md` sob 500 linhas. Mova material de referência detalhado para arquivos separados.</Tip>556<Tip>Mantenha o `SKILL.md` com menos de 500 linhas. Mova o material de referência detalhado para arquivos separados.</Tip>

556 557 

557<h3 id="control-who-invokes-a-skill">558<h3 id="control-who-invokes-a-skill">

558 Controlar quem invoca uma skill559 Controlar quem invoca uma skill

559</h3>560</h3>

560 561 

561Por padrão, você e Claude podem invocar qualquer skill. Você pode digitar `/skill-name` para invocá-la diretamente, e Claude pode carregá-la automaticamente quando relevante para sua conversa. Dois campos de frontmatter permitem que você restrinja isso:562Por padrão, tanto você quanto o Claude podem invocar qualquer skill. Você pode digitar `/skill-name` para invocá-la diretamente, e o Claude pode carregá-la automaticamente quando for relevante para sua conversa. Dois campos do frontmatter permitem restringir isso:

562 563 

563* **`disable-model-invocation: true`**: Apenas você pode invocar a skill. Use isso para workflows com efeitos colaterais ou que você quer controlar o timing, como `/commit`, `/deploy` ou `/send-slack-message`. Você não quer que Claude decida fazer deploy porque seu código parece pronto.564* **`disable-model-invocation: true`**: Somente você pode invocar a skill. Use para fluxos de trabalho com efeitos colaterais ou cujo momento você deseja controlar, como `/commit`, `/deploy` ou `/send-slack-message`. Você não quer que o Claude decida fazer deploy só porque seu código parece pronto.

564 565 

565* **`user-invocable: false`**: Apenas Claude pode invocar a skill. Use isso para conhecimento de fundo que não é acionável como um comando. Uma skill `legacy-system-context` explica como um sistema antigo funciona. Claude deve saber disso quando relevante, mas `/legacy-system-context` não é uma ação significativa para os usuários tomarem.566* **`user-invocable: false`**: Somente o Claude pode invocar a skill. Use para conhecimento de fundo que não é acionável como comando. Uma skill `legacy-system-context` explica como um sistema antigo funciona. O Claude deve saber disso quando for relevante, mas `/legacy-system-context` não é uma ação significativa para os usuários executarem.

566 567 

567Este exemplo cria uma skill de deploy que apenas você pode disparar. Se você definir `disable-model-invocation: true`, Claude não pode executar a skill automaticamente:568Este exemplo cria uma skill de deploy que somente você pode acionar. Se você definir `disable-model-invocation: true`, o Claude não poderá executar a skill automaticamente:

568 569 

569```yaml theme={null}570```yaml theme={null}

570---571---


5814. Verify the deployment succeeded5824. Verify the deployment succeeded

582```583```

583 584 

584Se Claude tentar mesmo assim, Claude Code bloqueia a chamada e o instrui a não reproduzir os passos de deploy de outra forma, então espere que Claude sugira executar `/deploy` você mesmo.585Se o Claude tentar mesmo assim, o Claude Code bloqueia a chamada e o instrui a não reproduzir as etapas de deploy de outra forma, então espere que o Claude sugira que você mesmo execute `/deploy`.

585 586 

586Aqui está como os dois campos afetam invocação e carregamento de contexto:587Veja como os dois campos afetam a invocação e o carregamento de contexto:

587 588 

588| Frontmatter | Você pode invocar | Claude pode invocar | Quando carregado em contexto |589| Frontmatter | Você pode invocar | O Claude pode invocar | Quando é carregado no contexto |

589| :- | :- | :- | :- |590| :- | :- | :- | :- |

590| (padrão) | Sim | Sim | Descrição sempre em contexto, skill completa carrega quando invocada |591| (padrão) | Sim | Sim | Descrição sempre no contexto, skill completa carregada quando invocada |

591| `disable-model-invocation: true` | Sim | Não | Descrição não em contexto, skill completa carrega quando você invoca |592| `disable-model-invocation: true` | Sim | Não | Descrição fora do contexto, skill completa carregada quando você a invoca |

592| `user-invocable: false` | Não | Sim | Descrição sempre em contexto, skill completa carrega quando invocada |593| `user-invocable: false` | Não | Sim | Descrição sempre no contexto, skill completa carregada quando invocada |

593 594 

594<Note>595<Note>

595 Em uma sessão regular, descrições de skills são carregadas em contexto para que Claude saiba o que está disponível, mas conteúdo de skill completo apenas carrega quando invocado. [Subagents com skills pré-carregadas](/docs/pt/sub-agents#preload-skills-into-subagents) funcionam diferentemente: o conteúdo de skill completo é injetado na inicialização.596 Em uma sessão normal, as descrições das skills são carregadas no contexto para que o Claude saiba o que está disponível, mas o conteúdo completo da skill só é carregado quando invocado. [Subagentes com skills pré-carregadas](/docs/pt/sub-agents#preload-skills-into-subagents) funcionam de forma diferente: o conteúdo completo da skill é injetado na inicialização.

596</Note>597</Note>

597 598 

598<h3 id="skill-content-lifecycle">599<h3 id="skill-content-lifecycle">

599 Ciclo de vida do conteúdo de skill600 Ciclo de vida do conteúdo da skill

600</h3>601</h3>

601 602 

602Quando você ou Claude invocam uma skill, o conteúdo `SKILL.md` renderizado entra na conversa como uma única mensagem e permanece lá entre turnos posteriores. Esta persistência se aplica às instruções da skill, não suas permissões: uma concessão [`allowed-tools`](#pre-approve-tools-for-a-skill) é limpa quando você envia sua próxima mensagem. Claude Code não relê o arquivo de skill em turnos posteriores, então escreva orientação que deve se aplicar ao longo de uma tarefa como instruções permanentes em vez de passos únicos.603Quando você ou o Claude invocam uma skill, o conteúdo renderizado do `SKILL.md` entra na conversa como uma única mensagem e permanece lá nos turnos seguintes. Essa persistência se aplica às instruções da skill, não às suas permissões: uma concessão de [`allowed-tools`](#pre-approve-tools-for-a-skill) é removida quando você envia sua próxima mensagem. O Claude Code não relê o arquivo da skill em turnos posteriores, então escreva as orientações que devem se aplicar ao longo de uma tarefa como instruções permanentes, e não como etapas únicas.

603 604 

604Quando Claude reinvoca uma skill cujo conteúdo renderizado é idêntico à cópia já em contexto, Claude Code adiciona uma nota curta que a skill já está carregada em vez de uma segunda cópia do conteúdo. Quando o conteúdo renderizado difere, porque os argumentos mudaram ou um comando [contexto dinâmico](#inject-dynamic-context) produziu nova saída, Claude Code anexa o conteúdo completo novamente.605Quando o Claude invoca novamente uma skill cujo conteúdo renderizado é idêntico à cópia já presente no contexto, o Claude Code adiciona uma breve nota de que a skill já está carregada, em vez de uma segunda cópia do conteúdo. Quando o conteúdo renderizado difere, porque os argumentos mudaram ou um comando de [contexto dinâmico](#inject-dynamic-context) produziu uma nova saída, o Claude Code anexa o conteúdo completo novamente.

605 606 

606[Auto-compactação](/docs/pt/how-claude-code-works#when-context-fills-up) leva skills invocadas adiante dentro de um orçamento de token. Quando a conversa é resumida para liberar contexto, Claude Code reanexa a invocação mais recente de cada skill após o resumo, mantendo os primeiros 5.000 tokens de cada. Skills reanexa compartilham um orçamento combinado de 25.000 tokens. Claude Code preenche este orçamento começando pela skill invocada mais recentemente, então skills mais antigas podem ser descartadas inteiramente após compactação se você invocou muitas em uma sessão.607A [compactação automática](/docs/pt/how-claude-code-works#when-context-fills-up) mantém as skills invocadas dentro de um orçamento de tokens. Quando a conversa é resumida para liberar contexto, o Claude Code reanexa a invocação mais recente de cada skill após o resumo, mantendo os primeiros 5.000 tokens de cada uma. As skills reanexadas compartilham um orçamento combinado de 25.000 tokens. O Claude Code preenche esse orçamento começando pela skill invocada mais recentemente, então skills mais antigas podem ser descartadas inteiramente após a compactação se você tiver invocado muitas em uma sessão.

607 608 

608Se Claude stops following a skill partway through a session, see [Claude stops following a skill](#claude-stops-following-a-skill).609Se o Claude parar de seguir uma skill no meio de uma sessão, consulte [O Claude para de seguir uma skill](#claude-stops-following-a-skill).

609 610 

610<h3 id="pre-approve-tools-for-a-skill">611<h3 id="pre-approve-tools-for-a-skill">

611 Pré-aprovar ferramentas para uma skill612 Pré-aprovar ferramentas para uma skill

612</h3>613</h3>

613 614 

614O campo `allowed-tools` concede permissão para as ferramentas listadas durante o turno que invoca a skill, para que Claude possa usá-las sem avisar você para aprovação. A concessão é limpa quando você envia sua próxima mensagem, mesmo que o conteúdo da skill [permaneça em contexto](#skill-content-lifecycle); invocar a skill novamente reaplica-a para esse turno. Não restringe quais ferramentas estão disponíveis: toda ferramenta permanece chamável, e suas [configurações de permissão](/docs/pt/permissions) ainda governam ferramentas que não estão listadas. Para pré-aprovar ferramentas para a sessão inteira em vez de um único turno, adicione regras de permissão a essas configurações de permissão em vez disso.615O campo `allowed-tools` concede permissão para as ferramentas listadas durante o turno que invoca a skill, para que o Claude possa usá-las sem solicitar sua aprovação. A concessão é removida quando você envia sua próxima mensagem, mesmo que o conteúdo da skill [permaneça no contexto](#skill-content-lifecycle); invocar a skill novamente a reaplica para aquele turno. Ele não restringe quais ferramentas estão disponíveis: todas as ferramentas continuam podendo ser chamadas, e suas [configurações de permissão](/docs/pt/permissions) ainda regem as ferramentas não listadas. Para pré-aprovar ferramentas para a sessão inteira em vez de um único turno, adicione regras allow a essas configurações de permissão.

615 616 

616Confiança de workspace não bloqueia este campo. Claude Code aplica `allowed-tools` de uma skill de projeto mesmo em uma execução `-p` em uma pasta que você nunca confiou. Uma skill pode conceder a si mesma acesso amplo a ferramentas, então revise `allowed-tools` de skills incluídas em um repositório antes de executar Claude Code lá. Para retirar o campo de skills de repositório em toda a sua organização, veja [Quando apenas regras de permissão gerenciadas se aplicam](#when-only-managed-permission-rules-apply).617A confiança no workspace não restringe esse campo. O Claude Code aplica o `allowed-tools` de uma skill de projeto mesmo em uma execução `-p` em uma pasta na qual você nunca confiou. Uma skill pode conceder a si mesma amplo acesso a ferramentas, então revise o `allowed-tools` das skills incluídas em um repositório antes de executar o Claude Code nele. Para ignorar o campo nas skills de repositórios em toda a sua organização, consulte [Quando apenas regras de permissão gerenciadas se aplicam](#when-only-managed-permission-rules-apply).

617 618 

618Esta skill permite que Claude execute comandos git sem aprovação por uso sempre que você invoca:619Esta skill permite que o Claude execute comandos git sem aprovação a cada uso sempre que você a invoca:

619 620 

620```yaml theme={null}621```yaml theme={null}

621---622---


626---627---

627```628```

628 629 

629Para remover ferramentas do pool disponível de Claude enquanto uma skill está ativa, liste-as em `disallowed-tools` no frontmatter da skill. A restrição é limpa quando você envia sua próxima mensagem. Como regras de negação, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. Para bloquear ferramentas em todas as skills e prompts, adicione regras de negação em suas [configurações de permissão](/docs/pt/permissions).630Para remover ferramentas do conjunto disponível do Claude enquanto uma skill está ativa, liste-as em `disallowed-tools` no frontmatter da skill. A restrição é removida quando você envia sua próxima mensagem. Assim como as regras deny, o campo não pode remover [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior) enquanto qualquer outra ferramenta permanecer. Para bloquear ferramentas em todas as skills e prompts, adicione regras deny nas suas [configurações de permissão](/docs/pt/permissions).

630 631 

631<h4 id="when-only-managed-permission-rules-apply">632<h4 id="when-only-managed-permission-rules-apply">

632 Quando apenas regras de permissão gerenciadas se aplicam633 Quando apenas regras de permissão gerenciadas se aplicam

633</h4>634</h4>

634 635 

635Quando sua organização define `allowManagedPermissionRulesOnly` nas configurações gerenciadas, Claude Code ignora `allowed-tools` em skills de projeto e pessoais e nas [outras fontes listadas na entrada da configuração](/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Isso requer Claude Code v2.1.282 ou posterior.636Quando sua organização define `allowManagedPermissionRulesOnly` nas configurações gerenciadas, o Claude Code ignora `allowed-tools` em skills de projeto e pessoais e nas [outras fontes listadas na entrada da configuração](/docs/pt/settings-reference#allowmanagedpermissionrulesonly). Isso requer Claude Code v2.1.282 ou posterior.

636 637 

637As ferramentas que uma skill afetada lista passam, em vez disso, pelas regras gerenciadas da sua organização e pelo prompt de permissão normal. Execute `/status` para listar cada skill cujo `allowed-tools` Claude Code ignorou até agora na sessão. Um comando injetado na skill que nenhuma regra gerenciada permite segue [Verificações de permissão em comandos injetados](#permission-checks-on-injected-commands).638As ferramentas que uma skill afetada lista passam, em vez disso, pelas regras gerenciadas da sua organização e pelo prompt de permissão normal. Execute `/status` para listar cada skill cujo `allowed-tools` o Claude Code ignorou até o momento na sessão. Um comando injetado na skill que nenhuma regra gerenciada permite segue [Verificações de permissão em comandos injetados](#permission-checks-on-injected-commands).

638 639 

639<h3 id="pass-arguments-to-skills">640<h3 id="pass-arguments-to-skills">

640 Passar argumentos para skills641 Passar argumentos para skills

641</h3>642</h3>

642 643 

643Você e Claude podem passar argumentos ao invocar uma skill. Argumentos estão disponíveis via placeholder `$ARGUMENTS`.644Tanto você quanto o Claude podem passar argumentos ao invocar uma skill. Os argumentos ficam disponíveis por meio do placeholder `$ARGUMENTS`.

644 645 

645Esta skill corrige um problema do GitHub por número. O placeholder `$ARGUMENTS` é substituído por qualquer coisa que siga o nome da skill:646Esta skill corrige uma issue do GitHub pelo número. O placeholder `$ARGUMENTS` é substituído pelo que vier depois do nome da skill:

646 647 

647```yaml theme={null}648```yaml theme={null}

648---649---


6605. Create a commit6615. Create a commit

661```662```

662 663 

663Quando você executa `/fix-issue 123`, Claude recebe "Fix GitHub issue 123 following our coding standards..."664Quando você executa `/fix-issue 123`, o Claude recebe "Fix GitHub issue 123 following our coding standards..."

664 665 

665Se você invocar uma skill com argumentos mas nenhum placeholder no conteúdo da skill recebe um, Claude Code anexa `ARGUMENTS: <your input>` ao final do conteúdo da skill para que Claude ainda veja o que você digitou. Um placeholder é `$ARGUMENTS`, uma forma indexada como `$1` ou um argumento nomeado. Um placeholder indexado sem argumento em sua posição permanece como texto literal e não conta como recebendo um. Um placeholder nomeado conta mesmo quando sua posição não tem argumento, porque se expande para uma string vazia.666Se você invocar uma skill com argumentos, mas nenhum placeholder no conteúdo da skill receber um, o Claude Code anexa `ARGUMENTS: <your input>` ao final do conteúdo da skill para que o Claude ainda veja o que você digitou. Um placeholder é `$ARGUMENTS`, uma forma indexada como `$1` ou um argumento nomeado. Um placeholder indexado sem argumento em sua posição permanece como texto literal e não conta como tendo recebido um. Um placeholder nomeado conta mesmo quando sua posição não tem argumento, porque ele se expande para uma string vazia.

666 667 

667Você também pode empilhar várias skills no início de uma mensagem. Digitar `/write-tests /fix-issue 123` carrega ambas as skills e passa o texto final `123` como `$ARGUMENTS` para cada uma delas. Antes da v2.1.199, apenas a primeira skill carregava e recebia `/fix-issue 123` como texto de argumento literal.668Você também pode empilhar várias skills no início de uma mensagem. Digitar `/write-tests /fix-issue 123` carrega ambas as skills e passa o texto final `123` como `$ARGUMENTS` para cada uma delas.

668 669 

669Claude Code expande a primeira skill mais até cinco mais empilhadas depois dela. A expansão para no primeiro token que não é uma skill invocável pelo usuário inline, então uma skill que é executada como um [subagent bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/pt/code-review#review-a-diff-locally), ou uma cujos argumentos podem em si começar com um comando slash, como `/loop`, também termina a execução lá. Esse token e tudo depois dele se tornam o texto de argumento para cada skill expandida. `/code-review` é executado como um subagent bifurcado a partir da v2.1.218; em versões anteriores era executado inline e empilhado.670O Claude Code expande a primeira skill mais até cinco outras empilhadas depois dela. A expansão para no primeiro token que não seja uma skill inline invocável pelo usuário, então uma skill que é executada como um [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/pt/code-review#review-a-diff-locally), ou uma cujos argumentos podem começar com um comando de barra, como `/loop`, também encerra a sequência ali. Esse token e tudo o que vem depois dele se tornam o texto de argumentos para cada skill expandida. `/code-review` é executada como um subagente bifurcado a partir da v2.1.218; em versões anteriores, ela era executada inline e empilhada.

670 671 

671Para acessar argumentos individuais por posição, use `$ARGUMENTS[N]` ou o mais curto `$N`:672Para acessar argumentos individuais por posição, use `$ARGUMENTS[N]` ou a forma mais curta `$N`:

672 673 

673```yaml theme={null}674```yaml theme={null}

674---675---


680Preserve all existing behavior and tests.681Preserve all existing behavior and tests.

681```682```

682 683 

683Executar `/migrate-component SearchBar JavaScript TypeScript` substitui `$ARGUMENTS[0]` com `SearchBar`, `$ARGUMENTS[1]` com `JavaScript` e `$ARGUMENTS[2]` com `TypeScript`. A mesma skill usando a abreviação `$N`:684Executar `/migrate-component SearchBar JavaScript TypeScript` substitui `$ARGUMENTS[0]` por `SearchBar`, `$ARGUMENTS[1]` por `JavaScript` e `$ARGUMENTS[2]` por `TypeScript`. A mesma skill usando a forma abreviada `$N`:

684 685 

685```yaml theme={null}686```yaml theme={null}

686---687---


923 924 

924O menu `/skills` rotula o estado `"user-invocable-only"` como `user-only`.925O menu `/skills` rotula o estado `"user-invocable-only"` como `user-only`.

925 926 

926A partir da v2.1.199, `"off"` também oculta a skill das listas de comandos anunciadas para clientes [Remote Control](/docs/pt/remote-control) e para chamadores [Agent SDK](/docs/pt/agent-sdk/skills#discover-available-commands), além do menu `/` do terminal. Invocar uma skill oculta pelo seu nome completo ainda retorna o erro `skillOverrides` em vez de executá-la.927`"off"` também oculta a skill das listas de comandos anunciadas para clientes [Remote Control](/docs/pt/remote-control) e para chamadores [Agent SDK](/docs/pt/agent-sdk/skills#discover-available-commands), além do menu `/` do terminal. Invocar uma skill oculta pelo seu nome completo retorna o erro `skillOverrides` em vez de executá-la.

927 928 

928Uma skill ausente de `skillOverrides` é tratada como `"on"`. O exemplo abaixo colapsa uma skill para seu nome e desativa outra completamente:929Uma skill ausente de `skillOverrides` é tratada como `"on"`. O exemplo abaixo colapsa uma skill para seu nome e desativa outra completamente:

929 930 

sub-agents.md +2 −2

Details

986 986 

987Quando algo [interrompe a resposta de um subagente no meio do fluxo](/docs/pt/errors#the-response-above-may-be-incomplete), e a resposta parcial contém texto mas nenhuma chamada de ferramenta, Claude Code solicita ao subagente que continue em vez de encerrar a execução. Isso também acontece em sessões interativas. A execução termina no erro apenas uma vez que essas continuações são usadas.987Quando algo [interrompe a resposta de um subagente no meio do fluxo](/docs/pt/errors#the-response-above-may-be-incomplete), e a resposta parcial contém texto mas nenhuma chamada de ferramenta, Claude Code solicita ao subagente que continue em vez de encerrar a execução. Isso também acontece em sessões interativas. A execução termina no erro apenas uma vez que essas continuações são usadas.

988 988 

989A partir da v2.1.199, um subagente cuja execução termina em um erro de API, como um limite de uso ou um erro de servidor repetido, relata essa falha de volta a Claude em vez de retornar o texto de erro como se fossem as descobertas do subagente. O que Claude recebe depende de onde o subagente foi executado:989Um subagente cuja execução termina em um erro de API, como um limite de uso ou um erro de servidor repetido, relata essa falha de volta a Claude. O que Claude recebe depende de onde o subagente foi executado:

990 990 

991* **Primeiro plano**: se um rate limit, sobrecarga ou erro de servidor interromper um subagente que já produziu saída de texto, a ferramenta Agent retorna essa saída parcial com uma nota de que o subagente foi interrompido e não completou sua tarefa. Um subagente que não produziu nada, ou cuja única saída foram chamadas de ferramenta, falha com [`Agent terminated early due to an API error`](/docs/pt/errors#agent-terminated-early-due-to-an-api-error), seguido pelo detalhe do erro. Na v2.1.199, um rate limit, sobrecarga ou erro de servidor que interrompeu a forma de chamadas de ferramenta apenas retornou um resultado parcial vazio contendo apenas a nota de interrupção.991* **Primeiro plano**: se um rate limit, sobrecarga ou erro de servidor interromper um subagente que já produziu saída de texto, a ferramenta Agent retorna essa saída parcial com uma nota de que o subagente foi interrompido e não completou sua tarefa. Um subagente que não produziu nada, ou cuja única saída foram chamadas de ferramenta, falha com [`Agent terminated early due to an API error`](/docs/pt/errors#agent-terminated-early-due-to-an-api-error), seguido pelo detalhe do erro. Na v2.1.199, um rate limit, sobrecarga ou erro de servidor que interrompeu a forma de chamadas de ferramenta apenas retornou um resultado parcial vazio contendo apenas a nota de interrupção.

992* **Segundo plano**: o subagente é marcado como com falha, e a mensagem que Claude recebe quando termina nomeia o erro de API e inclui a última saída do subagente, para que o trabalho parcial não seja perdido.992* **Segundo plano**: o subagente é marcado como com falha, e a mensagem que Claude recebe quando termina nomeia o erro de API e inclui a última saída do subagente, para que o trabalho parcial não seja perdido.


1188 1188 

1189Retomar inicia uma nova execução do agente sob o mesmo ID, então um subagente que já havia falhado ou sido concluído mostra como em execução novamente na lista de tarefas e nos eventos de tarefa do Agent SDK. Antes da v2.1.205, ele mantinha seu status anterior de falha ou conclusão enquanto a execução retomada estava funcionando.1189Retomar inicia uma nova execução do agente sob o mesmo ID, então um subagente que já havia falhado ou sido concluído mostra como em execução novamente na lista de tarefas e nos eventos de tarefa do Agent SDK. Antes da v2.1.205, ele mantinha seu status anterior de falha ou conclusão enquanto a execução retomada estava funcionando.

1190 1190 

1191A partir da v2.1.199, `SendMessage` verifica que um nome ainda se refere ao mesmo agente que alcançou anteriormente na conversa. Se um agente mais novo assumiu o nome, como um agente em segundo plano re-gerado que o reutilizou, Claude Code recusa o envio em vez de entregá-lo ao agente errado, e o erro relata qual agente o nome agora alcança para que Claude possa redirecionar. Para alcançar o agente anterior enquanto ainda está em execução, Claude o endereça pelo ID do agente que recebeu quando gerou esse agente. A verificação é restrita à conversa atual e é redefinida em `/clear`.1191`SendMessage` verifica que um nome ainda se refere ao mesmo agente que alcançou anteriormente na conversa. Se um agente mais novo assumiu o nome, como um agente em segundo plano re-gerado que o reutilizou, Claude Code recusa o envio em vez de entregá-lo ao agente errado, e o erro relata qual agente o nome agora alcança para que Claude possa redirecionar. Para alcançar o agente anterior enquanto ainda está em execução, Claude o endereça pelo ID do agente que recebeu quando gerou esse agente. A verificação é restrita à conversa atual e é redefinida em `/clear`.

1192 1192 

1193Um subagente trata mensagens do agente que o lançou como direção de tarefa normal, incluindo correções de curso no meio da tarefa, e age sobre elas dentro de suas próprias configurações de permissão. Dois limites se mantêm independentemente de quem enviou a mensagem: nenhuma mensagem de qualquer agente conta como sua aprovação para um prompt de permissão pendente, e nenhuma mensagem de agente pode alterar as configurações de permissão, `CLAUDE.md` ou configuração de um subagente. Apenas o sistema de permissão ou suas próprias mensagens podem conceder aprovação.1193Um subagente trata mensagens do agente que o lançou como direção de tarefa normal, incluindo correções de curso no meio da tarefa, e age sobre elas dentro de suas próprias configurações de permissão. Dois limites se mantêm independentemente de quem enviou a mensagem: nenhuma mensagem de qualquer agente conta como sua aprovação para um prompt de permissão pendente, e nenhuma mensagem de agente pode alterar as configurações de permissão, `CLAUDE.md` ou configuração de um subagente. Apenas o sistema de permissão ou suas próprias mensagens podem conceder aprovação.

1194 1194 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |135| Pro | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

136| Max | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |136| Max | 3 execuções gratuitas | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

137| Team e Enterprise | nenhuma | cobrado como [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

138 137 

139* **Execuções gratuitas**: as três execuções Pro e Max são uma alocação única por conta e não são renovadas.138* **Execuções gratuitas**: as três execuções Pro e Max são uma alocação única por conta e não são renovadas.

140* **Custo por revisão**: após usar as execuções gratuitas, normalmente \$5 a \$25 em créditos de uso dependendo do tamanho da mudança, correspondendo à estimativa que o diálogo de lançamento mostra antes de cada execução.139* **Custo por revisão**: após usar as execuções gratuitas, normalmente \$5 a \$25 em créditos de uso dependendo do tamanho da mudança, correspondendo à estimativa que o diálogo de lançamento mostra antes de cada execução.

141* **Quando uma execução é contada**: assim que a sessão na nuvem é iniciada. Uma revisão que você interrompe no início ou que falha em ser concluída ainda usa uma execução gratuita; uma revisão paga é cobrada apenas pela parte que foi executada.140* **Quando uma execução é contada**: assim que a sessão na nuvem é iniciada. Uma revisão que você interrompe no início ou que falha em ser concluída ainda usa uma execução gratuita; uma revisão paga é cobrada apenas pela parte que foi executada.

142 141 

143Como ultrareview sempre é cobrado como créditos de uso fora das execuções gratuitas, sua conta ou organização deve ter créditos de uso habilitados antes de poder iniciar uma revisão paga. Se os créditos de uso não estiverem habilitados, Claude Code bloqueia o lançamento, e como você os ativa depende do seu acesso de faturamento:142Como ultrareview sempre é cobrado como créditos de uso fora das execuções gratuitas, sua conta ou organização deve ter créditos de uso habilitados antes de poder iniciar uma revisão paga. Se os créditos de uso não estiverem habilitados, Claude Code bloqueia o lançamento. Se você puder gerenciar o faturamento da sua conta, Claude Code o direciona às configurações de faturamento onde você pode ativar os créditos de uso.

144 

145* Se você puder gerenciar o faturamento da sua conta, Claude Code o vincula às configurações de faturamento onde você pode ativar os créditos de uso.

146* Nos planos Team e Enterprise, membros sem acesso de faturamento enviam uma solicitação da CLI pedindo ao seu administrador para ativar os créditos de uso.

147 143 

148Você também pode executar `/usage-credits` para verificar ou alterar sua configuração de créditos de uso.144Você também pode executar `/usage-credits` para verificar ou alterar sua configuração de créditos de uso.

149 145 

Details

184 184 

185Problemas comuns quando o ditado por voz não é ativado ou não grava:185Problemas comuns quando o ditado por voz não é ativado ou não grava:

186 186 

187* **`Voice mode requires a Claude.ai account`**: você está autenticado com uma chave API ou um provedor de terceiros. Execute `/login` para entrar com uma conta Claude.ai.187* **`Unknown command: /voice`**: `/voice` está disponível apenas enquanto uma conta claude.ai for o seu login ativo. Se você não estiver conectado com uma, execute `/login`. Se `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, uma configuração `apiKeyHelper` ou um [provedor de terceiros](#requirements) estiver em uso, ele tem precedência sobre um login claude.ai, portanto remova-o e reinicie o Claude Code.

188* **`Voice mode requires a Claude.ai account`**: o Claude Code não conseguiu encontrar um login claude.ai utilizável quando você executou `/voice` ou começou a gravar. Execute `/login` para entrar novamente.

188* **`Voice mode is disabled by your organization's policy`**: uma política de administrador da sua organização desativa o ditado por voz. Entre em contato com o administrador da sua organização para confirmar se o ditado por voz está disponível para sua organização.189* **`Voice mode is disabled by your organization's policy`**: uma política de administrador da sua organização desativa o ditado por voz. Entre em contato com o administrador da sua organização para confirmar se o ditado por voz está disponível para sua organização.

189* **`Microphone access is denied`**: conceda permissão de microfone ao seu terminal nas configurações do sistema. No macOS, vá para Configurações do Sistema → Privacidade e Segurança → Microfone e ative seu aplicativo de terminal, depois execute `/voice` novamente. No Windows, vá para Configurações → Privacidade e segurança → Microfone e ative o acesso ao microfone para aplicativos de desktop, depois execute `/voice` novamente. Se seu terminal não estiver listado nas configurações de Microfone do macOS, consulte [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).190* **`Microphone access is denied`**: conceda permissão de microfone ao seu terminal nas configurações do sistema. No macOS, vá para Configurações do Sistema → Privacidade e Segurança → Microfone e ative seu aplicativo de terminal, depois execute `/voice` novamente. No Windows, vá para Configurações → Privacidade e segurança → Microfone e ative o acesso ao microfone para aplicativos de desktop, depois execute `/voice` novamente. Se seu terminal não estiver listado nas configurações de Microfone do macOS, consulte [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).

190* **`Voice mode requires SoX for audio recording` no Linux**: o módulo de áudio nativo não conseguiu carregar e nenhum fallback está instalado. Instale SoX com o comando mostrado na mensagem de erro, por exemplo `sudo apt-get install sox`.191* **`Voice mode requires SoX for audio recording` no Linux**: o módulo de áudio nativo não conseguiu carregar e nenhum fallback está instalado. Instale SoX com o comando mostrado na mensagem de erro, por exemplo `sudo apt-get install sox`.