SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 06:58 UTC

52 files changed +836 −499. View all changes and history on the product overview
2026
Wed 30 06:58 Tue 29 23:58 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

agent-view.md +28 −2

Details

64 </Step>64 </Step>

65</Steps>65</Steps>

66 66 

67Você pode usar `claude agents` como seu ponto de entrada principal em vez de `claude`: despache cada tarefa da visualização do agente, anexe quando quiser a conversa completa e pressione `←` para retornar à tabela.

68 

69Dentro de uma sessão regular `claude`, a dica `←` do rodapé do prompt conta os agentes em background que estão aguardando você, como `← 2 agents`, e retorna para `← for agents` quando nenhum precisa de entrada. Contagens acima de 99 aparecem como `99+`. A contagem é atualizada aproximadamente a cada dez segundos enquanto o terminal está em foco e imediatamente quando o foco retorna. Ela muda brevemente de cor quando se move e quando um agente é concluído, e quando uma sessão em background é concluída enquanto nenhuma precisa de sua entrada, ela brevemente mostra o número concluído, como `← 2 done`. Ambos os flashes estão desativados quando a configuração [`prefersReducedMotion`](/docs/pt/settings-reference#prefersreducedmotion) está ativada, e a dica fica oculta no [modo leitor de tela](/docs/pt/accessibility).67Dentro de uma sessão regular `claude`, a dica `←` do rodapé do prompt conta os agentes em background que estão aguardando você, como `← 2 agents`, e retorna para `← for agents` quando nenhum precisa de entrada. Contagens acima de 99 aparecem como `99+`. A contagem é atualizada aproximadamente a cada dez segundos enquanto o terminal está em foco e imediatamente quando o foco retorna. Ela muda brevemente de cor quando se move e quando um agente é concluído, e quando uma sessão em background é concluída enquanto nenhuma precisa de sua entrada, ela brevemente mostra o número concluído, como `← 2 done`. Ambos os flashes estão desativados quando a configuração [`prefersReducedMotion`](/docs/pt/settings-reference#prefersreducedmotion) está ativada, e a dica fica oculta no [modo leitor de tela](/docs/pt/accessibility).

70 68 

69<h3 id="open-agent-view-by-default">

70 Abrir visualização do agente por padrão

71</h3>

72 

73Para ter `claude` sem argumentos abrir a visualização do agente em vez de uma nova conversa, ative uma configuração `/config`.

74 

75<Steps>

76 <Step title="Ativar a configuração">

77 Em uma sessão regular `claude`, execute `/config` e ative **Abrir visualização de agentes por padrão**. Para pular o menu, defina a chave [`defaultToAgentsView`](/docs/pt/settings-reference#defaulttoagentsview) diretamente:

78 

79 ```text theme={null}

80 /config defaultToAgentsView=true

81 ```

82 </Step>

83 

84 <Step title="Iniciar Claude Code">

85 Saia da sessão e execute `claude` sem argumentos:

86 

87 ```bash theme={null}

88 claude

89 ```

90 

91 A visualização do agente abre no lugar de uma nova conversa.

92 </Step>

93</Steps>

94 

95Para iniciar uma sessão regular enquanto a configuração está ativada, passe um prompt: `claude "fix the login test"`. Para desativar a configuração, execute `/config defaultToAgentsView=false` em uma sessão regular ou em uma que você anexe a partir da visualização do agente.

96 

71<h2 id="monitor-sessions-with-agent-view">97<h2 id="monitor-sessions-with-agent-view">

72 Monitorar sessões com agent view98 Monitorar sessões com agent view

73</h2>99</h2>

Details

482 482 

483Claude Sonnet 5, Opus 4.6 e posteriores, e Sonnet 4.6 suportam a [janela de contexto de 1M de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#context-window-sizes-by-model) no Amazon Bedrock. Sonnet 5 sempre é executado com a janela de 1M tanto na API Invoke quanto no [endpoint Mantle](#use-the-mantle-endpoint), sem nenhuma variante `[1m]` para selecionar. Para os outros modelos na API Invoke, Claude Code habilita automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo de 1M.483Claude Sonnet 5, Opus 4.6 e posteriores, e Sonnet 4.6 suportam a [janela de contexto de 1M de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#context-window-sizes-by-model) no Amazon Bedrock. Sonnet 5 sempre é executado com a janela de 1M tanto na API Invoke quanto no [endpoint Mantle](#use-the-mantle-endpoint), sem nenhuma variante `[1m]` para selecionar. Para os outros modelos na API Invoke, Claude Code habilita automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo de 1M.

484 484 

485O [assistente de configuração](#sign-in-with-bedrock) oferece uma opção de contexto de 1M quando fixa modelos. Para habilitá-lo para um modelo fixado manualmente em vez disso, acrescente `[1m]` ao ID do modelo. Veja [Fixar modelos para implantações de terceiros](/docs/pt/model-config#pin-models-for-third-party-deployments) para detalhes.485O [assistente de configuração](#sign-in-with-bedrock) oferece uma opção de contexto de 1M quando fixa modelos. Para habilitá-lo para um modelo fixado manualmente em vez disso, acrescente `[1m]` ao ID do modelo. Veja [Fixar modelos para implantações de terceiros](/docs/pt/model-config#pin-models-for-third-party-deployments) para detalhes, incluindo como usar a janela de 1M sem alterar a fixação.

486 486 

487<h2 id="service-tiers">487<h2 id="service-tiers">

488 Camadas de serviço488 Camadas de serviço

artifacts.md +11 −11

Details

100Quem você pode compartilhar depende do seu plano:100Quem você pode compartilhar depende do seu plano:

101 101 

102* **Dentro de sua organização**: nos planos Team e Enterprise, conceda acesso a pessoas específicas em sua organização, ou a todos nela. Os visualizadores se conectam ao claude.ai como membros de sua organização para ver a página.102* **Dentro de sua organização**: nos planos Team e Enterprise, conceda acesso a pessoas específicas em sua organização, ou a todos nela. Os visualizadores se conectam ao claude.ai como membros de sua organização para ver a página.

103* **Publicamente**: compartilhe um link que qualquer pessoa na internet possa abrir, sem necessidade de conexão ao claude.ai. Nos planos Pro e Max, um link público é a única maneira de compartilhar um artefato. Nos planos Team e Enterprise, o compartilhamento público está desativado até que um Proprietário [o ative para a organização](#control-public-sharing).103* **Publicamente**: compartilhe um link que qualquer pessoa na internet possa abrir, sem necessidade de conexão ao claude.ai. Nos planos Team e Enterprise, o compartilhamento público está desativado até que um Proprietário [o ative para a organização](#control-public-sharing).

104 104 

105<h3 id="let-someone-edit-with-you">105<h3 id="let-someone-edit-with-you">

106 Deixar alguém editar com você106 Deixar alguém editar com você


122 Coletar comentários em um artefato122 Coletar comentários em um artefato

123</h2>123</h2>

124 124 

125Quando você compartilha um artefato dentro de sua organização, as pessoas com as quais você o compartilha podem deixar comentários na página, e você pode fazer com que Claude leia esses comentários e responda a eles. Você precisa do Claude Code v2.1.221 ou posterior e de um plano Team ou Enterprise, porque apenas um artefato que você [compartilha dentro de sua organização](#share-an-artifact) recebe comentários. Claude lê os comentários em dois casos:125Quando você compartilha um artefato dentro de sua organização, as pessoas com as quais você o compartilha podem deixar comentários na página, e você pode fazer com que Claude leia esses comentários e responda a eles. Você precisa do Claude Code v2.1.221 ou posterior. Claude lê os comentários em dois casos:

126 126 

127* **Você pede a Claude para lê-los**: forneça a Claude a URL do artefato e peça pelos comentários. Claude lista cada thread e marca os comentários que alguém que pode editar o artefato enviou para ele.127* **Você pede a Claude para lê-los**: forneça a Claude a URL do artefato e peça pelos comentários. Claude lista cada thread e marca os comentários que alguém que pode editar o artefato enviou para ele.

128* **Alguém que pode editar o artefato envia um comentário para Claude**: em uma thread na página, ele envia um comentário com **Send to Claude**, ou menciona `@claude` em um. De qualquer forma, ele ativa a thread.128* **Alguém que pode editar o artefato envia um comentário para Claude**: em uma thread na página, ele envia um comentário com **Send to Claude**, ou menciona `@claude` em um. De qualquer forma, ele ativa a thread.

129 129 

130Claude pode responder ou resolver apenas uma thread ativada. Outras threads permanecem abertas até que uma pessoa as resolva na página. Os visualizadores veem cada resposta atribuída a Claude, por meio de você.130Claude pode responder ou resolver apenas uma thread ativada. Outras threads permanecem abertas até que uma pessoa as resolva na página. Os visualizadores veem cada resposta atribuída a Claude, por meio de você.

131 131 

132Se você compartilhar um artefato publicamente, os visualizadores não poderão comentar nele: a página diz `Comments aren't available while this Artifact is shared publicly.` Para mudar um artefato que já tem threads de comentários para um link público, delete as threads primeiro.132Se você compartilhar um artefato publicamente, as pessoas cujo único acesso é o link público não veem seus comentários e não podem adicionar nenhum. As threads de comentários existentes permanecem no artefato, e você e seus editores ainda podem lê-las e responder a elas.

133 133 

134Para pedir os comentários você mesmo, forneça a Claude a URL:134Para pedir os comentários você mesmo, forneça a Claude a URL:

135 135 


195 195 

196Quando você planeja compartilhar uma página com suporte de conectores, peça a Claude para incluir uma mensagem de fallback em cada seção ao vivo que nomeie o conector que ela precisa. Um visualizador que não tem a conexão vê o que conectar em vez de uma seção vazia.196Quando você planeja compartilhar uma página com suporte de conectores, peça a Claude para incluir uma mensagem de fallback em cada seção ao vivo que nomeie o conector que ela precisa. Um visualizador que não tem a conexão vê o que conectar em vez de uma seção vazia.

197 197 

198Um artefato que chama conectores não pode ser compartilhado para um link público em nenhum plano. Nos planos Team e Enterprise, você pode mantê-lo privado ou [compartilhá-lo dentro de sua organização](#share-an-artifact). Nos planos Pro e Max, onde um link público é a única maneira de compartilhar, um artefato com suporte de conectores permanece privado para você.198Você pode [compartilhar uma página com suporte de conectores](#share-an-artifact) dentro de sua organização ou publicamente, conforme seu plano e configurações de organização permitirem. Chamadas de conectores não são executadas para um visualizador que abre o link público sem fazer login em claude.ai, ou de fora de sua organização. Esse visualizador vê a página sem suas seções ao vivo.

199 199 

200<h3 id="the-page-shows-no-live-data-for-a-viewer">200<h3 id="the-page-shows-no-live-data-for-a-viewer">

201 A página não mostra dados ao vivo para um visualizador201 A página não mostra dados ao vivo para um visualizador

202</h3>202</h3>

203 203 

204Quando uma página com suporte de conectores é renderizada mas suas seções ao vivo permanecem vazias para alguém com quem você a compartilhou, trabalhe através dessas causas:204Quando uma página com suporte de conectores é renderizada mas suas seções ao vivo permanecem vazias para um visualizador em sua organização, trabalhe através dessas causas:

205 205 

206* **O visualizador não conectou o conector**: conectores são por conta, então cada visualizador precisa de sua própria conexão para cada conector que a página chama. Ele pode adicionar um em **Settings > Connectors** em claude.ai e depois recarregar a página.206* **O visualizador não conectou o conector**: conectores são por conta, então cada visualizador precisa de sua própria conexão para cada conector que a página chama. Ele pode adicionar um em **Settings > Connectors** em claude.ai e depois recarregar a página.

207* **O visualizador recusou a solicitação de permissão**: uma recusa dura pelo resto desse carregamento de página. Recarregar a página traz a solicitação de permissão de volta.207* **O visualizador recusou a solicitação de permissão**: uma recusa dura pelo resto desse carregamento de página. Recarregar a página traz a solicitação de permissão de volta.


375 375 

376| Requisito | Disponível quando |376| Requisito | Disponível quando |

377| :- | :- |377| :- | :- |

378| Plano | Pro, Max, Team ou Enterprise. Em planos Pro e Max, artefatos são privados para você até que você os compartilhe, e nenhuma gestão de admin se aplica. Em planos Team, artefatos estão ativados por padrão. Em planos Enterprise, um Owner [os habilita](#manage-artifacts-for-your-organization) nas configurações de admin do claude.ai. |378| Plano | Pro, Max, Team ou Enterprise. Em planos Pro e Max, artefatos são privados para você até que você os compartilhe, e nenhuma gestão de admin se aplica. Em planos Team e Enterprise, artefatos estão ativados por padrão, e um Owner pode [desativá-los para a organização](#manage-artifacts-for-your-organization) nas configurações de admin do claude.ai. |

379| Autenticação | A sessão é apoiada por uma conta claude.ai: faça login com `/login` na CLI ou aplicativo de desktop. Sessões Claude Tag são conectadas através da identidade do agente, portanto nenhuma etapa é necessária. Sessões usando uma chave de API, [token de gateway](/docs/pt/llm-gateway) ou credencial de provedor de nuvem não podem publicar. |379| Autenticação | A sessão é apoiada por uma conta claude.ai: faça login com `/login` na CLI ou aplicativo de desktop. Sessões Claude Tag são conectadas através da identidade do agente, portanto nenhuma etapa é necessária. Sessões usando uma chave de API, [token de gateway](/docs/pt/llm-gateway) ou credencial de provedor de nuvem não podem publicar. |

380| Provedor de modelo | API Anthropic. Não disponível em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) ou [Microsoft Foundry](/docs/pt/microsoft-foundry). |380| Provedor de modelo | API Anthropic. Não disponível em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) ou [Microsoft Foundry](/docs/pt/microsoft-foundry). |

381| Política da organização | Chaves de criptografia gerenciadas pelo cliente (CMEK), HIPAA e [Retenção Zero de Dados](/docs/pt/zero-data-retention) não estão habilitadas para a organização. |381| Política da organização | Chaves de criptografia gerenciadas pelo cliente (CMEK), HIPAA e [Retenção Zero de Dados](/docs/pt/zero-data-retention) não estão habilitadas para a organização. |


408 Gerenciar artefatos para sua organização408 Gerenciar artefatos para sua organização

409</h2>409</h2>

410 410 

411Proprietários em planos Team e Enterprise controlam artefatos a partir das [configurações de admin do claude.ai](https://claude.ai/admin-settings/claude-code). O conteúdo do artefato é armazenado em infraestrutura operada pela Anthropic e é visível apenas para membros autenticados da organização de publicação, a menos que o artefato seja [compartilhado publicamente](#control-public-sharing).411Proprietários em planos Team e Enterprise controlam artefatos a partir das [configurações de admin do claude.ai](https://claude.ai/admin-settings/artifacts). O conteúdo do artefato é armazenado em infraestrutura operada pela Anthropic e é visível apenas para membros autenticados da organização de publicação e as pessoas com as quais o compartilham, a menos que o artefato seja [compartilhado publicamente](#control-public-sharing).

412 412 

413<h3 id="enable-or-disable-artifacts">413<h3 id="enable-or-disable-artifacts">

414 Habilitar ou desabilitar artefatos414 Habilitar ou desabilitar artefatos

415</h3>415</h3>

416 416 

417Para habilitar ou desabilitar artefatos para toda a organização, vá para [**Settings > Claude Code > Capabilities**](https://claude.ai/admin-settings/claude-code) e use a alternância **Artifacts**. Em planos Enterprise com controle de acesso baseado em função, você pode escopo adicional de artefatos para funções específicas: vá para [**Settings > Roles**](https://claude.ai/admin-settings/roles), edite uma função e defina a permissão **Artifacts** sob o grupo **Claude Code**.417Para habilitar ou desabilitar artefatos para toda a organização, vá para [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) e use a alternância **Artifacts**. Em planos Enterprise com controle de acesso baseado em função, você pode escopo adicional de artefatos para funções específicas: vá para [**Organization settings > Roles**](https://claude.ai/admin-settings/roles), edite uma função e defina a permissão **Artifacts**.

418 418 

419<h3 id="control-connector-calls-from-artifacts">419<h3 id="control-connector-calls-from-artifacts">

420 Controlar chamadas de conector a partir de artefatos420 Controlar chamadas de conector a partir de artefatos

421</h3>421</h3>

422 422 

423[Chamadas de conector a partir de artefatos](#pull-live-data-with-mcp-connectors) têm sua própria alternância, separada da alternância **Artifacts** que ativa ou desativa artefatos. Vá para [**Settings > Capabilities**](https://claude.ai/admin-settings/capabilities) e use a alternância **Enable artifact connectors**. A mesma alternância governa chamadas de conector a partir de artefatos criados em conversas do claude.ai, razão pela qual fica sob **Settings > Capabilities** em vez de **Settings > Claude Code**.423[Chamadas de conector a partir de artefatos](#pull-live-data-with-mcp-connectors) têm sua própria alternância, separada da alternância **Artifacts** que ativa ou desativa artefatos. Vá para [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) e use a alternância **Enable artifact connectors**. A mesma alternância governa chamadas de conector a partir de artefatos criados em conversas do claude.ai.

424 424 

425<h3 id="control-public-sharing">425<h3 id="control-public-sharing">

426 Controlar compartilhamento público426 Controlar compartilhamento público

427</h3>427</h3>

428 428 

429O compartilhamento público está desativado por padrão em planos Team e Enterprise, portanto os membros podem compartilhar artefatos apenas dentro da organização até que um Proprietário o ative. Para permitir que os membros publiquem artefatos em links públicos que qualquer pessoa possa visualizar sem fazer login, vá para **Settings > Claude Code > Capabilities** e ative **External sharing** sob a alternância **Artifacts**. Desativá-lo novamente bloqueia o acesso através de links públicos existentes sem alterar o público de cada artefato; o acesso é retomado se você reativá-lo.429O compartilhamento público está desativado por padrão em planos Team e Enterprise. Para permitir que os membros publiquem artefatos em links públicos que qualquer pessoa possa visualizar sem fazer login, vá para [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) e ative **External sharing** sob a alternância **Artifacts**. Desativá-lo novamente bloqueia o acesso através de links públicos existentes sem alterar o público de cada artefato; o acesso é retomado se você reativá-lo.

430 430 

431<h3 id="set-a-retention-policy">431<h3 id="set-a-retention-policy">

432 Definir uma política de retenção432 Definir uma política de retenção

433</h3>433</h3>

434 434 

435Para definir quanto tempo os artefatos são mantidos antes da exclusão automática, vá para [**Settings > Data & privacy controls**](https://claude.ai/admin-settings/data-privacy-controls). Você pode definir períodos de retenção separados para artefatos que ainda são privados para seu autor e artefatos que foram compartilhados.435Para definir quanto tempo os artefatos são mantidos antes da exclusão automática, vá para [**Organization settings > Data and privacy**](https://claude.ai/admin-settings/data-privacy-controls). Você pode definir períodos de retenção separados para artefatos que ainda são privados para seu autor e artefatos que foram compartilhados.

436 436 

437<h3 id="review-the-audit-log">437<h3 id="review-the-audit-log">

438 Revisar o log de auditoria438 Revisar o log de auditoria

Details

163 O payload chega em seu contexto Claude como uma tag `<channel>`:163 O payload chega em seu contexto Claude como uma tag `<channel>`:

164 164 

165 ```text theme={null}165 ```text theme={null}

166 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>166 <channel source="webhook" path="/" method="POST">

167 build failed on main: https://ci.example.com/run/1234

168 </channel>

167 ```169 ```

168 170 

169 Seu terminal renderiza o evento como um resumo de uma linha, `← webhook: build failed on main: https://ci.example.com/run/1234`, em vez da tag bruta. Você verá então Claude começar a responder: lendo arquivos, executando comandos ou o que a mensagem exigir. Este é um channel unidirecional, então Claude age em sua sessão mas não envia nada de volta através do webhook. Para adicionar respostas, consulte [Expor uma ferramenta de resposta](#expose-a-reply-tool).171 Seu terminal renderiza o evento como um resumo de uma linha, `← webhook: build failed on main: https://ci.example.com/run/1234`, em vez da tag bruta. Você verá então Claude começar a responder: lendo arquivos, executando comandos ou o que a mensagem exigir. Este é um channel unidirecional, então Claude age em sua sessão mas não envia nada de volta através do webhook. Para adicionar respostas, consulte [Expor uma ferramenta de resposta](#expose-a-reply-tool).

chrome.md +5 −2

Details

98* **Not now**: continua a tarefa sem ferramentas do navegador. Claude Code pode perguntar novamente em uma sessão posterior.98* **Not now**: continua a tarefa sem ferramentas do navegador. Claude Code pode perguntar novamente em uma sessão posterior.

99* **Don't ask again**: interrompe o prompt em futuras sessões. Você ainda pode configurar a integração a qualquer momento com `/chrome`.99* **Don't ask again**: interrompe o prompt em futuras sessões. Você ainda pode configurar a integração a qualquer momento com `/chrome`.

100 100 

101Se sua organização bloqueia o servidor MCP `claude-in-chrome` com a [configuração gerenciada `deniedMcpServers`](/docs/pt/managed-mcp#policy-based-control-with-allowlists-and-denylists), Claude Code não mostra o prompt de instalação.101Duas políticas MCP gerenciadas desativam o prompt:

102 

103* Se sua organização bloqueia o servidor MCP `claude-in-chrome` com a [configuração gerenciada `deniedMcpServers`](/docs/pt/managed-mcp#policy-based-control-with-allowlists-and-denylists), Claude Code não mostra o prompt de instalação.

104* Se sua organização implanta um arquivo [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) sem [permitir Claude in Chrome junto com o conjunto gerenciado](/docs/pt/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set), Claude Code não mostra o prompt de instalação.

102 105 

103<h3 id="enable-chrome-by-default">106<h3 id="enable-chrome-by-default">

104 Ativar Chrome por padrão107 Ativar Chrome por padrão


118 Gerenciar permissões de site121 Gerenciar permissões de site

119</h3>122</h3>

120 123 

121As permissões no nível do site são herdadas da extensão Chrome. Gerencie permissões nas configurações da extensão Chrome para controlar quais sites Claude pode navegar, clicar e digitar.124As permissões no nível do site são herdadas da extensão Chrome. Gerencie permissões nas configurações da extensão Chrome para controlar quais sites Claude pode navegar, clicar e digitar. No [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode), quando o próprio classificador do modo automático aprova uma chamada do navegador para um site, a extensão pula sua própria verificação por site para essa chamada, a menos que suas regras de permissão neguem qualquer site a Claude em Chrome.

122 125 

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

124 Ferramentas do navegador no modo de plano127 Ferramentas do navegador no modo de plano

Details

360 360 

361Máquinas que executam apenas Claude Desktop precisam dela. Claude Desktop aplica a lista de modelos e a lista de ferramentas desabilitadas às sessões incorporadas em si, mas a lista de permissões de egresso as alcança apenas como configurações pai, na forma de regras de domínio `WebFetch` e regras de rede sandbox. Sem a aceitação, essas sessões são executadas sem a restrição de egresso, e nada o avisa. O gateway ainda rejeita solicitações de inferência para modelos que a política não concede.361Máquinas que executam apenas Claude Desktop precisam dela. Claude Desktop aplica a lista de modelos e a lista de ferramentas desabilitadas às sessões incorporadas em si, mas a lista de permissões de egresso as alcança apenas como configurações pai, na forma de regras de domínio `WebFetch` e regras de rede sandbox. Sem a aceitação, essas sessões são executadas sem a restrição de egresso, e nada o avisa. O gateway ainda rejeita solicitações de inferência para modelos que a política não concede.

362 362 

363Uma lista de permissões de marketplace de plugin também alcança sessões incorporadas apenas como configurações pai. Quando você desativa marketplaces de plugin adicionados pelo usuário na configuração gerenciada do Claude Desktop, Claude Desktop 2.16120.0 ou posterior oculta marketplaces que sua organização não provisionou e recusa instalações deles. Para impedir que sessões incorporadas carreguem plugins já instalados desses marketplaces, ele envia uma lista `strictKnownMarketplaces` como configurações pai. Sem a aceitação, Claude Code ignora essa lista, e esses plugins continuam carregando.

364 

363Máquinas onde desenvolvedores fazem login através de `/login` não precisam dela; cada sessão Claude Code busca sua política do gateway.365Máquinas onde desenvolvedores fazem login através de `/login` não precisam dela; cada sessão Claude Code busca sua política do gateway.

364 366 

365Frotas cujo [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas não podem usá-la: Claude Code nunca mescla configurações pai nessas frotas, porque lê configurações gerenciadas apenas da saída do helper.367Frotas cujo [`policyHelper`](/docs/pt/settings-reference#policyhelper) fornece configurações gerenciadas não podem usá-la: Claude Code nunca mescla configurações pai nessas frotas, porque lê configurações gerenciadas apenas da saída do helper.


453* **`forceLoginOrgUUID`**: Claude Code honra um valor fornecido pelo pai quando a fonte de administrador de prioridade mais alta não define um UUID de organização. O sign-in do gateway não verifica essa chave. Um UUID de organização na fonte de administrador de prioridade mais alta bloqueia o valor do pai e é aquele que Claude Code aplica.455* **`forceLoginOrgUUID`**: Claude Code honra um valor fornecido pelo pai quando a fonte de administrador de prioridade mais alta não define um UUID de organização. O sign-in do gateway não verifica essa chave. Um UUID de organização na fonte de administrador de prioridade mais alta bloqueia o valor do pai e é aquele que Claude Code aplica.

454* **`allowedMcpServers`**: Claude Code honra uma lista de permissões fornecida pelo pai quando nenhuma lista de administrador está em vigor. `allowManagedMcpServersOnly` não a bloqueia, porque o bloqueio aplica qualquer lista que vença como o valor gerenciado, incluindo uma lista fornecida pelo pai quando nenhuma fonte de administrador fornece uma lista. Uma lista na fonte de administrador de prioridade mais alta bloqueia a do pai e é a lista que Claude Code aplica, então defina `allowedMcpServers` lá, ao lado do bloqueio. Antes da v2.1.223, um valor para qualquer chave em qualquer fonte de administrador bloqueava a do pai.456* **`allowedMcpServers`**: Claude Code honra uma lista de permissões fornecida pelo pai quando nenhuma lista de administrador está em vigor. `allowManagedMcpServersOnly` não a bloqueia, porque o bloqueio aplica qualquer lista que vença como o valor gerenciado, incluindo uma lista fornecida pelo pai quando nenhuma fonte de administrador fornece uma lista. Uma lista na fonte de administrador de prioridade mais alta bloqueia a do pai e é a lista que Claude Code aplica, então defina `allowedMcpServers` lá, ao lado do bloqueio. Antes da v2.1.223, um valor para qualquer chave em qualquer fonte de administrador bloqueava a do pai.

455* **`availableModels`**: Claude Code honra uma lista de modelos fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Se sua frota restringe modelos, defina `availableModels` na fonte vencedora.457* **`availableModels`**: Claude Code honra uma lista de modelos fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Se sua frota restringe modelos, defina `availableModels` na fonte vencedora.

456* **`strictKnownMarketplaces`**: Claude Code honra uma lista de permissões de marketplace de plugin fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Se sua frota restringe marketplaces, defina `strictKnownMarketplaces` na fonte vencedora. Requer Claude Code v2.1.282 ou posterior.458* **`strictKnownMarketplaces`**: Claude Code honra uma lista de permissões de marketplace de plugin fornecida pelo pai quando a fonte gerenciada vencedora não define uma. Claude Desktop 2.16120.0 ou posterior envia uma quando sua configuração gerenciada desativa marketplaces de plugin adicionados pelo usuário. Se sua frota restringe marketplaces, defina `strictKnownMarketplaces` na fonte vencedora. Requer Claude Code v2.1.282 ou posterior.

457* **`blockedMarketplaces`**: uma lista de bloqueio de marketplace fornecida pelo pai passa e adiciona a qualquer lista de bloqueio que uma fonte gerenciada define, já que uma lista de bloqueio pode apenas restringir ainda mais. Requer Claude Code v2.1.282 ou posterior.459* **`blockedMarketplaces`**: uma lista de bloqueio de marketplace fornecida pelo pai passa e adiciona a qualquer lista de bloqueio que uma fonte gerenciada define, já que uma lista de bloqueio pode apenas restringir ainda mais. Requer Claude Code v2.1.282 ou posterior.

458* **`strictPluginOnlyCustomization`**: essa chave passa pelo filtro independentemente de qualquer bloqueio, e faz Claude Code ignorar a customização própria do desenvolvedor, incluindo hooks protetores. Nenhum bloqueio a bloqueia.460* **`strictPluginOnlyCustomization`**: essa chave passa pelo filtro independentemente de qualquer bloqueio, e faz Claude Code ignorar a customização própria do desenvolvedor, incluindo hooks protetores. Nenhum bloqueio a bloqueia.

459 461 

Details

303| - | - | - |303| - | - | - |

304| Inferência (prompts, conclusões) | CLI → gateway → seu upstream | Apenas se a API Anthropic for um upstream configurado |304| Inferência (prompts, conclusões) | CLI → gateway → seu upstream | Apenas se a API Anthropic for um upstream configurado |

305| Telemetria (métricas OTLP, mais [logs e rastreamentos opcionais](/docs/pt/claude-apps-gateway-config#telemetry)) | CLI → gateway → seu coletor | Nunca |305| Telemetria (métricas OTLP, mais [logs e rastreamentos opcionais](/docs/pt/claude-apps-gateway-config#telemetry)) | CLI → gateway → seu coletor | Nunca |

306| Identidade (email, grupos, sub) | IdP → gateway → JWT → CLI; o CLI o carimba em exportações OTLP. Se você ativar [`forward_user_identity`](/docs/pt/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run), o gateway também envia o email do desenvolvedor e o assunto do IdP como cabeçalhos para seu proxy | Nunca |306| Identidade (email, grupos, sub) | IdP → gateway → CLI; o CLI o carimba em exportações OTLP. Se você ativar [`forward_user_identity`](/docs/pt/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run), o gateway também envia o email do desenvolvedor e o assunto do IdP como cabeçalhos para seu proxy | Nunca |

307| Configurações gerenciadas | Seu YAML de gateway → CLI | Nunca |307| Configurações gerenciadas | Seu YAML de gateway → CLI | Nunca |

308| Log de auditoria | Gateway stderr → seu agregador | Nunca |308| Log de auditoria | Gateway stderr → seu agregador | Nunca |

309 309 

Details

516 Telemetria516 Telemetria

517</h2>517</h2>

518 518 

519O gateway oferece métricas de uso por desenvolvedor sem qualquer configuração OTEL por máquina. Claude Code emite métricas, logs e traces OpenTelemetry (OTLP) opcionais; [Monitorar uso](/docs/pt/monitoring-usage) cobre tudo que o CLI relata. Em sessões de gateway o CLI carimba cada exportação com os atributos de identidade IdP autenticados `user.id`, `user.email` e `user.groups`, portanto o uso se acumula por desenvolvedor sem encanamento `OTEL_RESOURCE_ATTRIBUTES`.519O gateway oferece métricas de uso por desenvolvedor sem qualquer configuração OTEL por máquina. Claude Code emite métricas, logs e traces OpenTelemetry (OTLP) opcionais; [Monitorar uso](/docs/pt/monitoring-usage) cobre tudo que o CLI relata. Em sessões conectadas através de `/login`, o CLI carimba cada exportação com os atributos de identidade IdP autenticados `user.id`, `user.email` e `user.groups`, portanto o uso se acumula por desenvolvedor.

520 520 

521O gateway em si é um relé OTLP autenticado. Defina [`telemetry.forward_to`](/docs/pt/claude-apps-gateway-config#telemetry) junto com `listen.public_url`, e ele empurra as configurações do exportador OTEL para cada cliente conectado e encaminha seu tráfego OTLP verbatim para cada destino que você lista. Cada destino opta por métricas, logs e traces independentemente, e o padrão é apenas métricas; consulte a [referência `telemetry`](/docs/pt/claude-apps-gateway-config#telemetry) para os campos por sinal e seus tradeoffs de sensibilidade. O gateway não armazena em buffer, agrega ou armazena telemetria, portanto onde os dados chegam é inteiramente a configuração do exportador do coletor.521O gateway em si é um relé OTLP autenticado. Defina [`telemetry.forward_to`](/docs/pt/claude-apps-gateway-config#telemetry) junto com `listen.public_url`, e ele empurra as configurações do exportador OTEL para cada cliente conectado e encaminha seu tráfego OTLP verbatim para cada destino que você lista. Cada destino opta por métricas, logs e traces independentemente, e o padrão é apenas métricas; consulte a [referência `telemetry`](/docs/pt/claude-apps-gateway-config#telemetry) para os campos por sinal e seus tradeoffs de sensibilidade. O gateway não armazena em buffer, agrega ou armazena telemetria, portanto onde os dados chegam é inteiramente a configuração do exportador do coletor.

522 522 

Details

1569| `feedback/drafts/` | [Feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) enfileirado aguardando sua revisão em `/feedback`. Varrido após `cleanupPeriodDays` ou 30 dias, o que for menor. Quando a fila está no seu limite de 10 rascunhos, Claude Code deleta o rascunho mais antigo para liberar espaço. |1569| `feedback/drafts/` | [Feedback redigido por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior) enfileirado aguardando sua revisão em `/feedback`. Varrido após `cleanupPeriodDays` ou 30 dias, o que for menor. Quando a fila está no seu limite de 10 rascunhos, Claude Code deleta o rascunho mais antigo para liberar espaço. |

1570| `usage-data/` | `report.html` e cópias de relatório com timestamp escritas por [`/insights`](/docs/pt/costs#analyze-your-usage-patterns), mais dados de análise em cache por sessão usados para construí-los |1570| `usage-data/` | `report.html` e cópias de relatório com timestamp escritas por [`/insights`](/docs/pt/costs#analyze-your-usage-patterns), mais dados de análise em cache por sessão usados para construí-los |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins/loading#synced-plugins) que a sincronização de claude.ai removeu, como depois que você desativa um em claude.ai ou para de sincronizar. Os arquivos ficam aqui para que você possa recuperá-los até a varredura deletá-los |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/pt/skills#how-synced-skills-behave) e [plugins](/docs/pt/plugins/loading#synced-plugins) que a sincronização de claude.ai removeu, como depois que você desativa um em claude.ai ou para de sincronizar. Os arquivos ficam aqui para que você possa recuperá-los até a varredura deletá-los |

1572| `plugins/installed_plugins.set-aside.<date>.<hash>.json`, `plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Cópias datadas que Claude Code faz antes de reescrever [`installed_plugins.json`](/docs/pt/plugins/loading#find-plugins-on-disk): registros de instalação que ele descartou, e o conteúdo de um arquivo que não conseguiu ler. |

1572| `todos/`, `statsig/`, `logs/` | Diretórios legados de versões mais antigas. Não são mais escritos. A varredura remove seu conteúdo e depois o diretório vazio. |1573| `todos/`, `statsig/`, `logs/` | Diretórios legados de versões mais antigas. Não são mais escritos. A varredura remove seu conteúdo e depois o diretório vazio. |

1573 1574 

1574Arquivos de sessão em `sessions/`, memória automática, e transcrições de Claude Desktop e Cowork seguem cada uma sua própria regra de retenção:1575Arquivos de sessão em `sessions/`, memória automática, e transcrições de Claude Desktop e Cowork seguem cada uma sua própria regra de retenção:


1715| `~/.claude/policy-limits.json` | Nada. Atualizado automaticamente. |1716| `~/.claude/policy-limits.json` | Nada. Atualizado automaticamente. |

1716| `~/.claude/tasks/` | Listas de tarefas que uma sessão retomada pegaria |1717| `~/.claude/tasks/` | Listas de tarefas que uma sessão retomada pegaria |

1717| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | A chance de recuperar [skills sincronizadas](/docs/pt/skills#how-synced-skills-behave) e [plugins sincronizados](/docs/pt/plugins/loading#synced-plugins) que Claude Code removeu |1718| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | A chance de recuperar [skills sincronizadas](/docs/pt/skills#how-synced-skills-behave) e [plugins sincronizados](/docs/pt/plugins/loading#synced-plugins) que Claude Code removeu |

1719| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | As cópias dos registros de instalação de plugin que Claude Code descartou ou não conseguiu ler. Nada as lê de volta |

1718| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada voltado para o usuário |1720| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada voltado para o usuário |

1719| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nada. Diretórios legados não escritos pelas versões atuais. |1721| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nada. Diretórios legados não escritos pelas versões atuais. |

1720 1722 

Details

4 4 

5# Digitalize seu código em busca de vulnerabilidades5# Digitalize seu código em busca de vulnerabilidades

6 6 

7> Instale o plugin Claude Security para digitalizar seu código em busca de vulnerabilidades em uma sessão Claude Code e transforme as descobertas em patches que você revisa e aplica.7> Instale o plugin de Segurança Claude para digitalizar seu código em busca de vulnerabilidades em uma sessão Claude Code e transforme as descobertas em patches que você revisa e aplica.

8 8 

9O plugin Claude Security executa uma digitalização de vulnerabilidades multi-agente de seu código em uma sessão Claude Code. Uma equipe de agentes Claude mapeia sua arquitetura, constrói um modelo de ameaça, procura por vulnerabilidades e revisa independentemente cada descoberta antes de escrever o relatório. Use o plugin para digitalizar um repositório inteiro ou [apenas um conjunto de alterações](#scan-only-your-changes), como o diff de uma branch, o diff de uma solicitação de pull ou um único commit, depois transforme as descobertas que você escolher em patches que você revisa e aplica você mesmo.9O plugin de Segurança Claude executa uma digitalização de vulnerabilidades multi-agente de seu código em uma sessão Claude Code. Uma equipe de agentes Claude mapeia sua arquitetura, constrói um modelo de ameaça, procura por vulnerabilidades e revisa independentemente cada descoberta antes de escrever o relatório. Use o plugin para digitalizar um repositório inteiro ou [apenas um conjunto de alterações](#scan-only-your-changes), como o diff de uma branch, o diff de uma solicitação de pull ou um único commit, depois transforme as descobertas que você escolher em patches que você revisa e aplica você mesmo.

10 10 

11O plugin é executado localmente em sua sessão, usa quaisquer modelos aos quais você tenha acesso no Claude Code, e cada digitalização conta contra os limites de uso do seu plano. Se você deseja um serviço gerenciado que monitore seus repositórios, ou deseja executar digitalizações no [Claude Mythos 5](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulte o produto [Claude Security](https://claude.com/product/claude-security), disponível no plano Enterprise. O plugin alcança código que o produto gerenciado não consegue alcançar, como repositórios hospedados no GitLab ou Bitbucket, ou em redes que não permitem conexões de entrada.11O plugin é executado localmente em sua sessão, usa [quaisquer modelos aos quais você tenha acesso no Claude Code](#models-and-providers), e cada digitalização conta para seu [uso](/docs/pt/costs). Se você deseja um serviço gerenciado que monitore seus repositórios, ou deseja executar digitalizações no [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), consulte o produto [Claude Security](https://claude.com/product/claude-security), disponível no plano Enterprise. O plugin alcança código que o produto gerenciado não consegue alcançar, como repositórios hospedados no GitLab ou Bitbucket, ou em redes que não permitem conexões de entrada.

12 12 

13O plugin também é distinto das ferramentas de revisão já presentes no Claude Code: o [plugin de orientação de segurança](/docs/pt/security-guidance) revisa o código conforme Claude o escreve, [`/security-review`](/docs/pt/commands#all-commands) executa uma única passagem em sua branch, e [Code Review](/docs/pt/code-review) revisa solicitações de pull. Para saber como as camadas se empilham, consulte [Como o plugin se encaixa com outras ferramentas de segurança](#how-the-plugin-fits-with-other-security-tools).13O plugin também é distinto das ferramentas de revisão já presentes no Claude Code: o [plugin de orientação de segurança](/docs/pt/security-guidance) revisa o código conforme Claude o escreve, [`/security-review`](/docs/pt/commands#all-commands) executa uma única passagem em sua branch, e [Code Review](/docs/pt/code-review) revisa solicitações de pull. Para saber como as camadas se empilham, consulte [Como o plugin se encaixa com outras ferramentas de segurança](#how-the-plugin-fits-with-other-security-tools).

14 14 


18 18 

19Para executar o plugin, você precisa de:19Para executar o plugin, você precisa de:

20 20 

21* Um plano pago, para os [fluxos de trabalho dinâmicos](/docs/pt/workflows) que a digitalização usa para orquestrar seus agentes. No Pro, ative-os a partir da linha Dynamic workflows em `/config`.21* Um plano pago, acesso à API Anthropic ou um [provedor de terceiros](#models-and-providers), para os [fluxos de trabalho dinâmicos](/docs/pt/workflows) que a varredura usa para orquestrar seus agentes. No Pro, ative-os na linha Dynamic workflows em `/config`.

22* Python 3.9 ou posterior disponível em seu `PATH` como `python3`. Verifique com `python3 --version`. A ferramenta do plugin usa apenas a biblioteca padrão do Python, portanto nada é instalado.22* Python 3.9 ou posterior disponível em seu `PATH` como `python3`. Verifique com `python3 --version`. A ferramenta do plugin usa apenas a biblioteca padrão do Python, portanto nada é instalado.

23* Linux, macOS ou Windows.23* Linux, macOS ou Windows.

24* Git, para digitalizações de alterações e para transformar descobertas em patches; esses trabalhos não suportam outros sistemas de controle de versão. Uma digitalização completa funciona em qualquer diretório, com ou sem controle de versão.24* Git, para varreduras de alterações e para transformar descobertas em patches; esses trabalhos não suportam outros sistemas de controle de versão. Uma varredura completa funciona em qualquer diretório, com ou sem controle de versão.

25 

26<h2 id="models-and-providers">

27 Modelos e provedores

28</h2>

29 

30Uma verificação é executada dentro de sua sessão Claude Code. O plugin não faz chamadas de modelo por conta própria, portanto não há configuração separada de chave de API ou provedor para configurar.

31 

32* **Modelo**: os agentes que procuram vulnerabilidades, verificam descobertas e escrevem e revisam patches são executados no [modelo de sua sessão](/docs/pt/sub-agents#choose-a-model). Para alterá-lo, execute [`/model`](/docs/pt/model-config#setting-your-model) em sua sessão antes de iniciar uma verificação. Algumas etapas de suporte, como mapeamento do repositório, usam o [alias `sonnet`](/docs/pt/model-config#model-aliases) em vez disso.

33* **Provedor**: as verificações são executadas em um plano pago, com acesso à API Anthropic, ou em um [provedor de terceiros](/docs/pt/third-party-integrations) como [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai), ou [Microsoft Foundry](/docs/pt/microsoft-foundry).

34 

35Em um provedor de terceiros, o alias `sonnet` pode ser resolvido para uma versão diferente daquela na API Anthropic. Se sua conta não puder usar essa versão, [fixe suas versões de modelo](/docs/pt/model-config#pin-models-for-third-party-deployments), incluindo `ANTHROPIC_DEFAULT_SONNET_MODEL`.

36 

37[Fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback) executa novamente uma solicitação que as proteções de um modelo sinalizam. No Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, a solicitação pode terminar com uma mensagem de recusa, dependendo de [como sua implantação está configurada](/docs/pt/model-config#enable-fallback-on-bedrock-agent-platform-and-foundry).

25 38 

26<h2 id="install-the-plugin">39<h2 id="install-the-plugin">

27 Instale o plugin40 Instale o plugin


156 169 

157**O menu `/claude-security` abre com um aviso do Python.** O plugin precisa de `python3` 3.9 ou posterior em seu `PATH`. Quando não consegue encontrar `python3` em tudo, o menu avisa que Claude Security não funcionará até que um seja instalado; quando o primeiro `python3` em seu `PATH` é mais antigo, o aviso nomeia a versão que encontrou. Instale Python 3, ou coloque um `python3` mais novo primeiro em seu `PATH`, depois inicie uma nova sessão.170**O menu `/claude-security` abre com um aviso do Python.** O plugin precisa de `python3` 3.9 ou posterior em seu `PATH`. Quando não consegue encontrar `python3` em tudo, o menu avisa que Claude Security não funcionará até que um seja instalado; quando o primeiro `python3` em seu `PATH` é mais antigo, o aviso nomeia a versão que encontrou. Instale Python 3, ou coloque um `python3` mais novo primeiro em seu `PATH`, depois inicie uma nova sessão.

158 171 

159**Você pode ver um aviso "safeguards flagged this message" ao digitalizar em um modelo Fable.** A mensagem nomeia o modelo, por exemplo "Fable 5.1's safeguards flagged this message". Os classificadores de segurança cibernética do Fable sinalizam certas solicitações, e Claude Code re-executa uma solicitação sinalizada em um modelo Opus através do [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback). Isso é esperado, e a digitalização ainda deve ser concluída com sucesso.172**Você pode ver um aviso "safeguards flagged this message" ao digitalizar em um modelo Fable.** A mensagem nomeia o modelo que você está executando. Os classificadores de segurança cibernética do Fable sinalizam certas solicitações, e Claude Code re-executa uma solicitação sinalizada em um modelo Opus através do [fallback automático de modelo](/docs/pt/model-config#automatic-model-fallback). Isso é esperado. Quando a solicitação é re-executada, a digitalização ainda deve ser concluída com sucesso.

160 173 

161<h2 id="related-resources">174<h2 id="related-resources">

162 Recursos relacionados175 Recursos relacionados

Details

566 * platform.claude.com566 * platform.claude.com

567 * code.claude.com567 * code.claude.com

568 * claude.ai568 * claude.ai

569 * claude.com

570 * support.claude.com

571 * anthropic.com

572 * [www.anthropic.com](http://www.anthropic.com)

569 </Accordion>573 </Accordion>

570 574 

571 <Accordion title="Controle de versão">575 <Accordion title="Controle de versão">


596 * hub.docker.com600 * hub.docker.com

597 * [www.docker.com](http://www.docker.com)601 * [www.docker.com](http://www.docker.com)

598 * production.cloudflare.docker.com602 * production.cloudflare.docker.com

603 * production.cloudfront.docker.com

599 * download.docker.com604 * download.docker.com

600 * gcr.io605 * gcr.io

601 * \*.gcr.io606 * \*.gcr.io

commands.md +4 −1

Details

56| `/add-dir <path>` | Adicione um diretório de trabalho para acesso a arquivos durante a sessão atual. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. A maioria da configuração `.claude/` [não é descoberta](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) do diretório adicionado. Você não pode adicionar a maioria dos [caminhos de rede](/docs/pt/errors#working-directory-is-a-network-path), como `\\server\share`. Após uma adição bem-sucedida, seus [hooks `DirectoryAdded`](/docs/pt/hooks#directoryadded) são executados. Quando você o executa enquanto Claude está respondendo, Claude Code pede que você confirme o diretório imediatamente, e uma vez confirmado, a próxima chamada de ferramenta do Claude na mesma volta pode acessá-lo. Antes da v2.1.234, Claude Code enfileirava o comando até que a volta terminasse |56| `/add-dir <path>` | Adicione um diretório de trabalho para acesso a arquivos durante a sessão atual. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. A maioria da configuração `.claude/` [não é descoberta](/docs/pt/permissions#additional-directories-grant-file-access-not-configuration) do diretório adicionado. Você não pode adicionar a maioria dos [caminhos de rede](/docs/pt/errors#working-directory-is-a-network-path), como `\\server\share`. Após uma adição bem-sucedida, seus [hooks `DirectoryAdded`](/docs/pt/hooks#directoryadded) são executados. Quando você o executa enquanto Claude está respondendo, Claude Code pede que você confirme o diretório imediatamente, e uma vez confirmado, a próxima chamada de ferramenta do Claude na mesma volta pode acessá-lo. Antes da v2.1.234, Claude Code enfileirava o comando até que a volta terminasse |

57| `/advisor [model\|off]` | Ative ou desative a [ferramenta advisor](/docs/pt/advisor), que consulta um segundo modelo para orientação em momentos-chave durante uma tarefa. Aceita `fable`, `opus`, `sonnet` ou um ID de modelo completo. `fable` requer [acesso a Fable](/docs/pt/advisor#choose-an-advisor-model). Sem um argumento, abre um seletor. Em uma sessão sem terminal interativo, ou sobre [Remote Control](/docs/pt/remote-control#limitations), passe o modelo ou `off` como um argumento; sem argumento lá, o comando imprime o advisor atual como texto. Esses formulários requerem Claude Code v2.1.260 ou posterior |57| `/advisor [model\|off]` | Ative ou desative a [ferramenta advisor](/docs/pt/advisor), que consulta um segundo modelo para orientação em momentos-chave durante uma tarefa. Aceita `fable`, `opus`, `sonnet` ou um ID de modelo completo. `fable` requer [acesso a Fable](/docs/pt/advisor#choose-an-advisor-model). Sem um argumento, abre um seletor. Em uma sessão sem terminal interativo, ou sobre [Remote Control](/docs/pt/remote-control#limitations), passe o modelo ou `off` como um argumento; sem argumento lá, o comando imprime o advisor atual como texto. Esses formulários requerem Claude Code v2.1.260 ou posterior |

58| `/agents` | A partir da v2.1.198, executar `/agents` imprime um lembrete para pedir ao Claude que crie ou gerencie [subagentes](/docs/pt/sub-agents), ou para editar `.claude/agents/` ou `~/.claude/agents/` diretamente. Na v2.1.197 e anterior, abre uma interface interativa para criar e gerenciar configurações de subagentes |58| `/agents` | A partir da v2.1.198, executar `/agents` imprime um lembrete para pedir ao Claude que crie ou gerencie [subagentes](/docs/pt/sub-agents), ou para editar `.claude/agents/` ou `~/.claude/agents/` diretamente. Na v2.1.197 e anterior, abre uma interface interativa para criar e gerenciar configurações de subagentes |

59| `/artifact-capabilities` | **[Skill](/docs/pt/skills#bundled-skills).** Carregue a referência para os recursos de tempo de execução que um [artefato](/docs/pt/artifacts) publicado pode usar, como [chamar seus conectores](/docs/pt/artifacts#pull-live-data-with-mcp-connectors) ou [oferecer um download de arquivo](/docs/pt/artifacts#offer-a-file-download), incluindo quais você tem. Claude normalmente o carrega por conta própria antes de construir uma página que usa um. Disponível onde [artefatos](/docs/pt/artifacts#availability) estão |

60| `/artifact-diagramming` | **[Skill](/docs/pt/skills#bundled-skills).** Carregue orientação de diagramação para Claude seguir em [artefatos](/docs/pt/artifacts): quando um diagrama ajuda, o que desenhar e como escrever SVG inline que permanece legível em temas claros e escuros. Requer Claude Code v2.1.221 ou posterior |

59| `/artifacts` | Liste os [artefatos](/docs/pt/artifacts#find-an-artifact-again) que você possui ou que são compartilhados com você, depois anexe um à sessão, abra-o no seu navegador ou copie seu link. Disponível onde [artefatos](/docs/pt/artifacts#availability) estão. Requer Claude Code v2.1.208 ou posterior; anexar com `Enter` requer v2.1.216 |61| `/artifacts` | Liste os [artefatos](/docs/pt/artifacts#find-an-artifact-again) que você possui ou que são compartilhados com você, depois anexe um à sessão, abra-o no seu navegador ou copie seu link. Disponível onde [artefatos](/docs/pt/artifacts#availability) estão. Requer Claude Code v2.1.208 ou posterior; anexar com `Enter` requer v2.1.216 |

60| `/auto-mode-setup` | [Rascunhe entradas `autoMode.environment`](/docs/pt/auto-mode-config#generate-environment-entries) do seu projeto e sessões recentes, depois revise o rascunho e salve-o nas suas configurações de usuário. Requer um plano Pro, Max ou Team e Claude Code v2.1.228 ou posterior. No Windows nativo, requer v2.1.233 ou posterior |62| `/auto-mode-setup` | [Rascunhe entradas `autoMode.environment`](/docs/pt/auto-mode-config#generate-environment-entries) do seu projeto e sessões recentes, depois revise o rascunho e salve-o nas suas configurações de usuário. Requer um plano Pro, Max ou Team e Claude Code v2.1.228 ou posterior. No Windows nativo, requer v2.1.233 ou posterior |

61| `/autocompact [auto\|<tokens>]` | Defina a janela de auto-compactação: o quão cheio fica a janela de contexto antes de Claude Code compactar automaticamente. Passe um tamanho como `500k`, ou `auto` para retornar à janela ajustada para seu modelo. Claude Code salva o valor nas configurações de usuário e o aplica à sessão atual. Consulte [Defina a janela de auto-compactação](/docs/pt/model-config#set-the-auto-compact-window) para valores aceitos e o que a substitui. Sem um argumento, abre um diálogo que mostra a janela atual. Requer Claude Code v2.1.221 ou posterior |63| `/autocompact [auto\|<tokens>]` | Defina a janela de auto-compactação: o quão cheio fica a janela de contexto antes de Claude Code compactar automaticamente. Passe um tamanho como `500k`, ou `auto` para retornar à janela ajustada para seu modelo. Claude Code salva o valor nas configurações de usuário e o aplica à sessão atual. Consulte [Defina a janela de auto-compactação](/docs/pt/model-config#set-the-auto-compact-window) para valores aceitos e o que a substitui. Sem um argumento, abre um diálogo que mostra a janela atual. Requer Claude Code v2.1.221 ou posterior |


68| `/cd <path>` | Mova esta sessão para um novo diretório de trabalho, mantendo a conversa. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. As sugestões requerem Claude Code v2.1.206 ou posterior. Para o que Claude Code aplica do novo diretório assim que você se move, e como `/cd` difere de `/add-dir`, consulte [Mova a sessão para outro diretório](/docs/pt/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Mova esta sessão para um novo diretório de trabalho, mantendo a conversa. Digite um caminho parcial para ver sugestões de diretório correspondentes; pressione `Tab` para aceitar uma. As sugestões requerem Claude Code v2.1.206 ou posterior. Para o que Claude Code aplica do novo diretório assim que você se move, e como `/cd` difere de `/add-dir`, consulte [Mova a sessão para outro diretório](/docs/pt/permissions#move-the-session-to-another-directory) |

69| `/chrome` | Configure as configurações de [Claude em Chrome](/docs/pt/chrome) |71| `/chrome` | Configure as configurações de [Claude em Chrome](/docs/pt/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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`. Execute `migrate` para atualizar código Claude API existente para um modelo mais novo. Execute `upgrade` para mover a dependência do SDK Anthropic do seu projeto através de uma versão principal, atualmente o pacote Python `anthropic` de 0.x para 1.x. Execute `managed-agents-onboard` para um passo a passo que cria um novo Managed Agent. Execute `prompt-audit` para sinalizar instruções escritas para modelos mais antigos em seus prompts, skills e descrições de ferramentas e propor correções como um diff. Execute `cost-optimize` para perfilar para onde vai o gasto de Claude API do seu projeto e propor economias de opções como prompt caching, aparar tokens de entrada e saída desnecessários, processamento em lote, esforço e escolha de modelo, uma mudança por vez. Execute `build-eval` para construir um conjunto de avaliação para seu aplicativo alimentado por Claude, e `hillclimb` para melhorar iterativamente o aplicativo contra uma avaliação existente. O subcomando `prompt-audit` requer Claude Code v2.1.221 ou posterior, `upgrade` requer v2.1.236 ou posterior, `cost-optimize` requer v2.1.247 ou posterior, e `build-eval` e `hillclimb` requerem v2.1.259 ou posterior |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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`. Execute `migrate` para atualizar código Claude API existente para um modelo mais novo. Execute `upgrade` para mover a dependência do SDK Anthropic do seu projeto através de uma versão principal, atualmente o pacote Python `anthropic` de 0.x para 1.x. Execute `managed-agents-onboard` para um passo a passo que cria um novo Managed Agent. Execute `prompt-audit` para sinalizar instruções escritas para modelos mais antigos em seus prompts, skills e descrições de ferramentas e propor correções como um diff. Execute `cost-optimize` para perfilar para onde vai o gasto de Claude API do seu projeto e propor economias de opções como prompt caching, aparar tokens de entrada e saída desnecessários, processamento em lote, esforço e escolha de modelo, uma mudança por vez. Execute `build-eval` para construir um conjunto de avaliação para seu aplicativo alimentado por Claude, e `hillclimb` para melhorar iterativamente o aplicativo contra uma avaliação existente. O subcomando `prompt-audit` requer Claude Code v2.1.221 ou posterior, `upgrade` requer v2.1.236 ou posterior, `cost-optimize` requer v2.1.247 ou posterior, e `build-eval` e `hillclimb` requerem v2.1.259 ou posterior |

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) |

71| `/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` |

72| `/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 em 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] [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 em 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` |

73| `/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 |


91| `/fast [on\|off]` | Alterne o [modo rápido](/docs/pt/fast-mode) ativado ou desativado. Execute-o enquanto Claude está respondendo e Claude Code alterna o modo rápido sem esperar que a volta termine, embora a volta em execução termine na sua velocidade original. Antes da v2.1.242, Claude Code decidiu de um sinalizador de recurso que buscou do Anthropic se executaria o comando no meio da volta ou o enfileiraria até que a volta terminasse, e sempre o enfileirava em uma sessão que não [busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching). A disponibilidade em modo não interativo com `-p` é limitada; consulte [Alterne o modo rápido](/docs/pt/fast-mode#toggle-fast-mode). Requer Claude Code v2.1.205 ou posterior |94| `/fast [on\|off]` | Alterne o [modo rápido](/docs/pt/fast-mode) ativado ou desativado. Execute-o enquanto Claude está respondendo e Claude Code alterna o modo rápido sem esperar que a volta termine, embora a volta em execução termine na sua velocidade original. Antes da v2.1.242, Claude Code decidiu de um sinalizador de recurso que buscou do Anthropic se executaria o comando no meio da volta ou o enfileiraria até que a volta terminasse, e sempre o enfileirava em uma sessão que não [busca sinalizadores de recurso](/docs/pt/env-vars#features-that-need-feature-flag-fetching). A disponibilidade em modo não interativo com `-p` é limitada; consulte [Alterne o modo rápido](/docs/pt/fast-mode#toggle-fast-mode). Requer Claude Code v2.1.205 ou posterior |

92| `/feedback [report]` | Envie feedback de produto sobre Claude Code. Abre o mesmo diálogo que [`/bug`](#all-commands), com a mesma etapa de consentimento, regras de envio e comportamento no meio da volta. Em sessões com [feedback rascunhado por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), `/feedback` sem argumento abre a fila de rascunhos, onde você revisa, edita, envia ou descarta os rascunhos que Claude enfileirou; a fila inclui uma opção para escrever um novo relatório no diálogo. Com um argumento, e para `/bug` sempre, o diálogo abre diretamente |95| `/feedback [report]` | Envie feedback de produto sobre Claude Code. Abre o mesmo diálogo que [`/bug`](#all-commands), com a mesma etapa de consentimento, regras de envio e comportamento no meio da volta. Em sessões com [feedback rascunhado por Claude](/docs/pt/tools-reference#sendfeedback-tool-behavior), `/feedback` sem argumento abre a fila de rascunhos, onde você revisa, edita, envia ou descarta os rascunhos que Claude enfileirou; a fila inclui uma opção para escrever um novo relatório no diálogo. Com um argumento, e para `/bug` sempre, o diálogo abre diretamente |

93| `/fewer-permission-prompts` | **[Skill](/docs/pt/skills#bundled-skills).** Escaneie suas transcrições para chamadas de ferramentas Bash e MCP somente leitura comuns, depois adicione uma lista de permissões priorizada ao `.claude/settings.json` do projeto para reduzir prompts de permissão |96| `/fewer-permission-prompts` | **[Skill](/docs/pt/skills#bundled-skills).** Escaneie suas transcrições para chamadas de ferramentas Bash e MCP somente leitura comuns, depois adicione uma lista de permissões priorizada ao `.claude/settings.json` do projeto para reduzir prompts de permissão |

94| `/focus` | Alterne a visualização de foco, que mostra apenas seu último prompt, um resumo de chamada de ferramenta de uma linha com estatísticas de diff de edição e a resposta final. O resumo de chamada de ferramenta também conta os subagentes iniciados na volta e recolhe notificações de tarefas de fundo concluídas em uma única contagem. A seleção persiste entre sessões; defina [`viewMode`](/docs/pt/settings-reference#viewmode) nas configurações para substituí-la. Disponível apenas em [renderização tela cheia](/docs/pt/fullscreen). A [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box) oferece sua própria visualização Focus como um toggle de menu de comando, armazenado como uma configuração de extensão, independente de `viewMode` |97| `/focus` | Alterne a visualização de foco, que mostra apenas seu último prompt, um resumo de chamada de ferramenta de uma linha com estatísticas de diff de edição e a resposta final. O resumo de chamada de ferramenta também conta os subagentes iniciados na volta e recolhe notificações de tarefas de fundo concluídas em uma única contagem. A seleção persiste entre sessões; defina [`viewMode`](/docs/pt/settings-reference#viewmode) nas configurações para substituí-la. Disponível apenas em [renderização tela cheia](/docs/pt/fullscreen). De um cliente [Remote Control](/docs/pt/remote-control), execute `/focus [on\|off]` para ativar ou desativar a visualização de foco para a sessão atual apenas, sem alterar sua seleção salva; isso requer Claude Code v2.1.281 ou posterior. A [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box) oferece sua própria visualização Focus como um toggle de menu de comando, armazenado como uma configuração de extensão, independente de `viewMode` |

95| `/fork [prompt]` | [Copie a conversa atual](/docs/pt/agent-view#copy-the-session-with-%2Ffork) em uma nova sessão de fundo e continue trabalhando aqui. Passe um prompt e a cópia começa a trabalhar nele imediatamente; sem um, aguarda na visualização de agente para seu primeiro prompt. Exceto quando a cópia [edita no local](/docs/pt/agent-view#how-file-edits-are-isolated), Claude Code a instrui a criar um worktree próprio antes de fazer mudanças de código; a instrução de isolamento requer Claude Code v2.1.221 ou posterior. Para entregar uma tarefa lateral a um subagente cujo resultado volta para esta conversa, use `/subtask`; para mudar para uma cópia você mesmo, use `/branch`. Requer Claude Code v2.1.212 ou posterior; na v2.1.161 através v2.1.211, e sempre que [a visualização de agente está desativada](/docs/pt/agent-view#turn-off-agent-view), `/fork` inicia um [subagente bifurcado](/docs/pt/sub-agents#fork-the-current-conversation) |98| `/fork [prompt]` | [Copie a conversa atual](/docs/pt/agent-view#copy-the-session-with-%2Ffork) em uma nova sessão de fundo e continue trabalhando aqui. Passe um prompt e a cópia começa a trabalhar nele imediatamente; sem um, aguarda na visualização de agente para seu primeiro prompt. Exceto quando a cópia [edita no local](/docs/pt/agent-view#how-file-edits-are-isolated), Claude Code a instrui a criar um worktree próprio antes de fazer mudanças de código; a instrução de isolamento requer Claude Code v2.1.221 ou posterior. Para entregar uma tarefa lateral a um subagente cujo resultado volta para esta conversa, use `/subtask`; para mudar para uma cópia você mesmo, use `/branch`. Requer Claude Code v2.1.212 ou posterior; na v2.1.161 através v2.1.211, e sempre que [a visualização de agente está desativada](/docs/pt/agent-view#turn-off-agent-view), `/fork` inicia um [subagente bifurcado](/docs/pt/sub-agents#fork-the-current-conversation) |

96| `/goal [condition\|clear]` | Defina uma [meta](/docs/pt/goal): Claude continua trabalhando entre voltas até que a condição seja atendida ou a meta [limpe por outro motivo](/docs/pt/goal#how-evaluation-works). Sem argumento, mostra a meta atual ou mais recentemente alcançada. `clear`, `stop`, `off`, `reset`, `none` ou `cancel` remove uma meta ativa antecipadamente |99| `/goal [condition\|clear]` | Defina uma [meta](/docs/pt/goal): Claude continua trabalhando entre voltas até que a condição seja atendida ou a meta [limpe por outro motivo](/docs/pt/goal#how-evaluation-works). Sem argumento, mostra a meta atual ou mais recentemente alcançada. `clear`, `stop`, `off`, `reset`, `none` ou `cancel` remove uma meta ativa antecipadamente |

97| `/heapdump` | Escreva um snapshot de heap JavaScript e um detalhamento de memória em `~/Desktop`, ou seu diretório inicial no Linux sem uma pasta Desktop, para diagnosticar alto uso de memória. Anexe apenas o arquivo `-diagnostics.json` ao relatar um problema de memória; o `.heapsnapshot` contém sua conversa completa e credenciais, então não o compartilhe. [Oculto do menu de comando](#how-the-command-menu-matches-what-you-type); digite-o por completo. Consulte [o que fazer com a saída](/docs/pt/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Escreva um snapshot de heap JavaScript e um detalhamento de memória em `~/Desktop`, ou seu diretório inicial no Linux sem uma pasta Desktop, para diagnosticar alto uso de memória. Anexe apenas o arquivo `-diagnostics.json` ao relatar um problema de memória; o `.heapsnapshot` contém sua conversa completa e credenciais, então não o compartilhe. [Oculto do menu de comando](#how-the-command-menu-matches-what-you-type); digite-o por completo. Consulte [o que fazer com a saída](/docs/pt/troubleshooting#high-cpu-or-memory-usage) |

costs.md +2 −0

Details

96 96 

97Execute [`/insights`](/docs/pt/commands#all-commands) para um relatório sobre como você trabalha em vez de quantos tokens você usou. Ele analisa suas sessões recentes nesta máquina e escreve um relatório HTML cobrindo no que você trabalha, pontos de fricção como solicitações mal compreendidas ou código com bugs, e sugestões para usar Claude Code mais efetivamente. Uma única execução analisa até 200 sessões que não viu antes e pula as muito curtas. Quando sessões são deixadas de fora, o cabeçalho do relatório mostra a contagem analisada com o total entre parênteses, por exemplo `200 sessions (412 total)`.97Execute [`/insights`](/docs/pt/commands#all-commands) para um relatório sobre como você trabalha em vez de quantos tokens você usou. Ele analisa suas sessões recentes nesta máquina e escreve um relatório HTML cobrindo no que você trabalha, pontos de fricção como solicitações mal compreendidas ou código com bugs, e sugestões para usar Claude Code mais efetivamente. Uma única execução analisa até 200 sessões que não viu antes e pula as muito curtas. Quando sessões são deixadas de fora, o cabeçalho do relatório mostra a contagem analisada com o total entre parênteses, por exemplo `200 sessions (412 total)`.

98 98 

99Quando [modo automático](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) está disponível para a sessão e suas sessões recentes foram executadas principalmente sem ele, o relatório também pode incluir uma estimativa de quantos prompts de permissão o modo automático poderia ter tratado nessas sessões.

100 

99Claude Code escreve o relatório mais recente em `~/.claude/usage-data/report.html` e salva uma cópia com timestamp de cada execução no mesmo diretório, portanto, relatórios anteriores não são sobrescritos. Claude Code exclui relatórios no mesmo cronograma que o resto de seus dados de sessão: na inicialização, ele remove arquivos mais antigos que [`cleanupPeriodDays`](/docs/pt/claude-directory#cleaned-up-automatically), 30 dias por padrão.101Claude Code escreve o relatório mais recente em `~/.claude/usage-data/report.html` e salva uma cópia com timestamp de cada execução no mesmo diretório, portanto, relatórios anteriores não são sobrescritos. Claude Code exclui relatórios no mesmo cronograma que o resto de seus dados de sessão: na inicialização, ele remove arquivos mais antigos que [`cleanupPeriodDays`](/docs/pt/claude-directory#cleaned-up-automatically), 30 dias por padrão.

100 102 

101Você pode executar `/insights` em qualquer plano e com qualquer provedor. A análise é executada através do mesmo provedor e conta que suas sessões regulares, e os tokens contam contra seu plano ou uso de API. Sessões de outros dispositivos e claude.ai não estão incluídas.103Você pode executar `/insights` em qualquer plano e com qualquer provedor. A análise é executada através do mesmo provedor e conta que suas sessões regulares, e os tokens contam contra seu plano ou uso de API. Sessões de outros dispositivos e claude.ai não estão incluídas.

desktop.md +6 −0

Details

834* **Remote Control**: ative ou desative [Remote Control](/docs/pt/remote-control) para sua organização834* **Remote Control**: ative ou desative [Remote Control](/docs/pt/remote-control) para sua organização

835* **Disable Bypass permissions mode**: impeça usuários em sua organização de ativar o modo bypass permissions835* **Disable Bypass permissions mode**: impeça usuários em sua organização de ativar o modo bypass permissions

836 836 

837<Note>

838 O formulário OpenTelemetry para Cowork em **Monitoring** nas [configurações de Dados e privacidade](https://claude.ai/admin-settings/data-privacy-controls) do console de administração se aplica apenas a sessões Cowork. Em uma sessão Cowork nesta máquina, o aplicativo desktop passa esse coletor para Claude Code como variáveis de ambiente `OTEL_*`, portanto o formulário entra em vigor mesmo que Claude Code nessa sessão [nunca busque configurações do console de administração](#managed-settings).

839 

840 Para exportar telemetria de sessões da aba Code, defina `CLAUDE_CODE_ENABLE_TELEMETRY` e as variáveis `OTEL_*` no bloco `env` de suas configurações gerenciadas de Claude Code, conforme mostrado em [configuração de administrador para monitoramento](/docs/pt/monitoring-usage#administrator-configuration). Sessões locais, em nuvem e SSH leem [configurações gerenciadas de diferentes fontes](#managed-settings). Para os hosts que uma sessão em nuvem pode alcançar, veja [acesso à rede](/docs/pt/cloud-environments#network-access). Para o `service.name` que sessões da aba Code relatam, veja [informações de serviço](/docs/pt/monitoring-usage#service-information).

841</Note>

842 

837<h3 id="managed-settings">843<h3 id="managed-settings">

838 Managed settings844 Managed settings

839</h3>845</h3>

env-vars.md +2 −2

Details

110 110 

111Alguns comportamentos têm tanto uma variável de ambiente quanto uma chave de configurações dedicada, e qual delas Claude Code lê primeiro difere por chave. Para `ANTHROPIC_MODEL` e `CLAUDE_CODE_AUTO_CONNECT_IDE`, Claude Code lê a variável primeiro e usa a configuração `model` ou `autoConnectIde` apenas quando a variável não está definida. Para o par que você está configurando, verifique a linha da variável abaixo e a entrada da chave na [referência de configurações](/docs/pt/settings-reference).111Alguns comportamentos têm tanto uma variável de ambiente quanto uma chave de configurações dedicada, e qual delas Claude Code lê primeiro difere por chave. Para `ANTHROPIC_MODEL` e `CLAUDE_CODE_AUTO_CONNECT_IDE`, Claude Code lê a variável primeiro e usa a configuração `model` ou `autoConnectIde` apenas quando a variável não está definida. Para o par que você está configurando, verifique a linha da variável abaixo e a entrada da chave na [referência de configurações](/docs/pt/settings-reference).

112 112 

113Quando a mesma variável está definida tanto no seu shell quanto em um bloco `env` do arquivo de configurações, o valor do arquivo de configurações se aplica. Claude Code escreve cada entrada `env` no ambiente do processo, substituindo o valor herdado do shell. A [configuração `env`](/docs/pt/settings-reference#when-claude-code-applies-env-values) diz quando ela se aplica. Algumas variáveis são casos especiais; a [configuração `env`](/docs/pt/settings-reference#env) lista as exceções.113Quando a mesma variável está definida tanto no seu shell quanto em um bloco `env` do arquivo de configurações, o valor do arquivo de configurações se aplica na maioria das sessões. Claude Code escreve cada entrada `env` no ambiente do processo, substituindo o valor herdado do shell. [Como os valores `env` interagem com seu shell](/docs/pt/settings-reference#how-env-values-interact-with-your-shell) cobre as sessões que mantêm o valor herdado em vez disso, e a [configuração `env`](/docs/pt/settings-reference#when-claude-code-applies-env-values) diz quando ela se aplica. Algumas variáveis são casos especiais; a [configuração `env`](/docs/pt/settings-reference#env) lista as exceções.

114 114 

115Em um arquivo de configurações você pode definir uma variável, mas não pode remover uma. Para substituir uma variável que você não pode desativar, como uma `CLAUDE_CODE_USE_VERTEX` obsoleta exportada por um perfil de shell que você não controla, defina-a como uma string vazia no bloco `env`: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code trata o valor vazio como não definido para seleção de provedor. Subprocessos ainda herdam o valor vazio.115Em um arquivo de configurações você pode definir uma variável, mas não pode remover uma. Para substituir uma variável que você não pode desativar, como uma `CLAUDE_CODE_USE_VERTEX` obsoleta exportada por um perfil de shell que você não controla, defina-a como uma string vazia no bloco `env`: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code trata o valor vazio como não definido para seleção de provedor. Subprocessos ainda herdam o valor vazio.

116 116 


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

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

191| `ANTHROPIC_WORKSPACE_ID` | ID do workspace para [federação de identidade de carga de trabalho](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina isso quando sua regra de federação está no escopo de mais de um workspace para que a troca de token saiba qual workspace direcionar |191| `ANTHROPIC_WORKSPACE_ID` | ID do workspace para [federação de identidade de carga de trabalho](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Defina isso quando sua regra de federação está no escopo de mais de um workspace para que a troca de token saiba qual workspace direcionar |

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

193| `API_TIMEOUT_MS` | Timeout para solicitações de API em milissegundos (padrão: 600000, ou 10 minutos; máximo: 2147483647). Aumente isso quando as solicitações expiram em redes lentas ou ao rotear através de um proxy. Valores acima do máximo causam overflow do timer subjacente e fazem as solicitações falharem imediatamente |193| `API_TIMEOUT_MS` | Timeout para solicitações de API em milissegundos (padrão: 600000, ou 10 minutos; máximo: 2147483647). Aumente isso quando as solicitações expiram em redes lentas ou ao rotear através de um proxy. Valores acima do máximo causam overflow do timer subjacente e fazem as solicitações falharem imediatamente |

194| `AWS_BEARER_TOKEN_BEDROCK` | Chave de API Amazon Bedrock para autenticação (veja [Chaves de API 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 Amazon Bedrock para autenticação (veja [Chaves de API 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 comandos bash de longa duração (padrão: 120000, ou 2 minutos) |195| `BASH_DEFAULT_TIMEOUT_MS` | Timeout padrão para comandos bash de longa duração (padrão: 120000, ou 2 minutos) |

errors.md +145 −113

Details

152| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |

153| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |

154| `Model ... not found` | [Request errors](#model-not-found) |154| `Model ... not found` | [Request errors](#model-not-found) |

155| `Couldn't confirm model ... with the API` | [Request errors](#couldnt-confirm-model-with-the-api) |

155| `API error: ... · model not changed` | [Request errors](#api-error-model-not-changed) |156| `API error: ... · model not changed` | [Request errors](#api-error-model-not-changed) |

156| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |157| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |

157| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |158| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |


252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |253| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |

253| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |254| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |

254| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |255| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |

256| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Plugin troubleshooting](/docs/pt/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |

255| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |257| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |

256| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |258| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |

257| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |259| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |


2067 Erros de solicitação2069 Erros de solicitação

2068</h2>2070</h2>

2069 2071 

2070Esses erros estão relacionados ao conteúdo da sua solicitação. A maioria retorna da API depois que ela rejeita a solicitação; alguns são produzidos localmente pelo Claude Code antes de qualquer solicitação ser enviada.2072Esses erros estão relacionados ao conteúdo de sua solicitação. A maioria retorna da API após ela rejeitar a solicitação; alguns são produzidos localmente pelo Claude Code antes de qualquer solicitação ser enviada.

2071 2073 

2072<h3 id="prompt-is-too-long">2074<h3 id="prompt-is-too-long">

2073 Prompt é muito longo2075 Prompt é muito longo


2079Prompt is too long2081Prompt is too long

2080```2082```

2081 2083 

2082Em uma sessão interativa, Claude Code mostra esse erro como:2084Em uma sessão interativa, Claude Code mostra este erro como:

2083 2085 

2084```text theme={null}2086```text theme={null}

2085Context limit reached · /compact or /clear to continue2087Context limit reached · /compact or /clear to continue


2087 2089 

2088A linha nomeia apenas `/clear` quando [`DISABLE_COMPACT`](/docs/pt/env-vars) está definido. Formas mais longas do erro, como a forma de falha de compactação abaixo, mantêm a redação `Prompt is too long ·`. Na saída `-p` e na transcrição, o texto permanece `Prompt is too long`.2090A linha nomeia apenas `/clear` quando [`DISABLE_COMPACT`](/docs/pt/env-vars) está definido. Formas mais longas do erro, como a forma de falha de compactação abaixo, mantêm a redação `Prompt is too long ·`. Na saída `-p` e na transcrição, o texto permanece `Prompt is too long`.

2089 2091 

2090Quando você desativou o auto-compact nas suas [configurações de usuário](/docs/pt/settings-reference#autocompactenabled), a linha também diz:2092Quando você desativou a compactação automática em suas [configurações de usuário](/docs/pt/settings-reference#autocompactenabled), a linha também diz:

2091 2093 

2092```text theme={null}2094```text theme={null}

2093Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on2095Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on

2094```2096```

2095 2097 

2096O botão **Auto-compact** em `/config` escreve `autoCompactEnabled` nas configurações de usuário. A dica aparece apenas quando uma mudança `/config` teria efeito. Por exemplo, não aparece quando [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars) ou [`DISABLE_COMPACT`](/docs/pt/env-vars) desativou o auto-compact. Também não aparece quando um escopo de precedência mais alta, como configurações de projeto ou gerenciadas, define `autoCompactEnabled` como `false`. Antes da v2.1.235, a linha não tinha dica de auto-compact.2098O botão **Auto-compact** em `/config` escreve `autoCompactEnabled` nas configurações do usuário. A dica aparece apenas quando uma mudança `/config` teria efeito. Por exemplo, não aparece quando [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars) ou [`DISABLE_COMPACT`](/docs/pt/env-vars) desativou a compactação automática. Também não aparece quando um escopo de precedência mais alta, como configurações de projeto ou gerenciadas, define `autoCompactEnabled` como `false`. Antes da v2.1.235, a linha não tinha dica de compactação automática.

2097 2099 

2098Amazon Bedrock relata essa condição como `Input is too long for requested model.`, que Claude Code trata da mesma forma. Antes da v2.1.217, Claude Code não reconhecia a redação do Bedrock, então o auto-compact nunca era acionado e `/compact` falhava com o mesmo erro.2100Amazon Bedrock relata essa condição como `Input is too long for requested model.`, que Claude Code trata da mesma forma. Antes da v2.1.217, Claude Code não reconhecia a redação do Bedrock, então a compactação automática nunca era acionada e `/compact` falhava com o mesmo erro.

2099 2101 

2100Um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway-config#upstream-error-messages) relata essa condição como `capability_rejected: prompt_too_long` quando um upstream de nuvem rejeita a solicitação na forma de erro própria do provedor. Claude Code trata o token da mesma forma que `Prompt is too long`. Antes da v2.1.228, Claude Code não reconhecia o token, então o auto-compact não era acionado.2102Um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway-config#upstream-error-messages) relata essa condição como `capability_rejected: prompt_too_long` quando um upstream de nuvem rejeita a solicitação na forma de erro própria do provedor. Claude Code trata o token da mesma forma que `Prompt is too long`. Antes da v2.1.228, Claude Code não reconhecia o token, então a compactação automática não era acionada.

2101 2103 

2102Quando a compactação automática foi executada nessa volta e falhou em um erro subjacente, como um modelo indisponível ou uma falha de autenticação, a mensagem nomeia esse erro após um separador:2104Quando a compactação automática foi executada nesta rodada e falhou em um erro subjacente, como um modelo indisponível ou uma falha de autenticação, a mensagem nomeia esse erro após um separador:

2103 2105 

2104```text theme={null}2106```text theme={null}

2105Prompt is too long · automatic compaction failed: <the underlying error>2107Prompt is too long · automatic compaction failed: <the underlying error>


2107 2109 

2108Resolva o erro nomeado primeiro; `/compact` falha no mesmo erro até você fazer isso. Antes da v2.1.229, uma compactação automática falhada exibia `Prompt is too long` sem a causa.2110Resolva o erro nomeado primeiro; `/compact` falha no mesmo erro até você fazer isso. Antes da v2.1.229, uma compactação automática falhada exibia `Prompt is too long` sem a causa.

2109 2111 

2110Quando a compactação automática é executada nesse erro, ela normalmente resume suas trocas mais antigas e mantém as mais novas. Como último recurso, Claude Code resume de forma diferente:2112Quando a compactação automática é executada neste erro, ela normalmente resume suas trocas mais antigas e mantém as mais novas. Como último recurso, Claude Code resume de forma diferente:

2111 2113 

2112* Quando não consegue resumir nenhuma troca completa, Claude Code mantém seu prompt mais novo palavra por palavra e resume tudo antes dele.2114* Quando não consegue resumir nenhuma troca completa, Claude Code mantém seu prompt mais novo palavra por palavra e resume tudo antes dele.

2113* Nesse caso, quando a conversa não termina com seu prompt, Claude Code resume a conversa inteira.2115* Nesse caso, quando a conversa não termina com seu prompt, Claude Code resume a conversa inteira.

2114 2116 

2115Claude Code pula essa recuperação quando o conteúdo que ele carregaria adiante não contém resposta do modelo e menos de cerca de 1.000 tokens do seu próprio texto, como uma tentativa curta enviada após uma colagem de tamanho excessivo. Execute `/clear` para começar do zero. Antes da v2.1.269, a compactação falhava sempre que não conseguia resumir uma troca completa, então uma sessão nesse estado atingia esse erro novamente a cada volta.2117Claude Code pula essa recuperação quando o conteúdo que ele carregaria adiante não contém resposta do modelo e menos de cerca de 1.000 tokens de seu próprio texto, como uma tentativa curta enviada após uma colagem de tamanho excessivo. Execute `/clear` para começar do zero. Antes da v2.1.269, a compactação falhava sempre que não conseguia resumir uma troca completa, então uma sessão nesse estado atingia esse erro novamente a cada rodada.

2116 2118 

2117Uma conversa de troca única não tem voltas anteriores para resumir. Quando a compactação automática teria sido executada em uma, Claude Code pula a tentativa e explica o que preenche a solicitação. Quando a API não relata contagens de tokens em seu erro, a mensagem lê:2119Uma conversa de troca única não tem rodadas anteriores para resumir. Quando a compactação automática teria sido executada em uma, Claude Code pula a tentativa e explica o que preenche a solicitação. Quando a API não relata contagens de tokens em seu erro, a mensagem lê:

2118 2120 

2119```text theme={null}2121```text theme={null}

2120Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.2122Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.

2121```2123```

2122 2124 

2123Quando a API relata contagens de tokens em seu erro, Claude Code as compara com sua própria estimativa do tamanho da conversa para dizer qual é a maior parte da solicitação: o conteúdo próprio da conversa ou o prompt do sistema, definições de ferramentas e conteúdo de anexo que Claude Code envia com ela. Quando o conteúdo próprio da conversa é a maior parte da solicitação, a mensagem lê:2125Quando a API relata contagens de tokens em seu erro, Claude Code as compara com sua própria estimativa do tamanho da conversa para dizer qual é a maior parte da solicitação: o conteúdo próprio da conversa ou o prompt do sistema, definições de ferramentas e conteúdo de anexos que Claude Code envia com ela. Quando o conteúdo próprio da conversa é a maior parte da solicitação, a mensagem lê:

2124 2126 

2125```text theme={null}2127```text theme={null}

2126Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).2128Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).


2136 2138 

2137**O que fazer:**2139**O que fazer:**

2138 2140 

2139* Execute `/compact` para resumir voltas anteriores e liberar espaço, ou `/clear` para começar do zero. Se `/compact` responder `Not enough messages to compact.`, a conversa é uma troca única sem nada anterior para resumir, então o espaço é ocupado por esse prompt e o que Claude Code envia com cada solicitação: execute `/clear` e reenvie com menos texto colado ou anexos menores, ou reduza as definições de ferramentas e arquivos de memória usando as etapas abaixo2141* Execute `/compact` para resumir rodadas anteriores e liberar espaço, ou `/clear` para começar do zero. Se `/compact` responder `Not enough messages to compact.`, a conversa é uma troca única sem nada anterior para resumir, então o espaço é ocupado por esse prompt e o que Claude Code envia com cada solicitação: execute `/clear` e reenvie com menos texto colado ou anexos menores, ou reduza as definições de ferramentas e arquivos de memória usando as etapas abaixo

2140* Execute `/context` para ver um detalhamento do que está consumindo a janela: prompt do sistema, ferramentas, arquivos de memória e mensagens2142* Execute `/context` para ver um detalhamento do que está consumindo a janela: prompt do sistema, ferramentas, arquivos de memória e mensagens

2141* Desabilite servidores MCP que você não está usando com `/mcp disable <name>` para remover suas definições de ferramentas do contexto2143* Desabilite servidores MCP que você não está usando com `/mcp disable <name>` para remover suas definições de ferramentas do contexto

2142* Reduza arquivos de memória `CLAUDE.md` grandes ou mova instruções para [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) que carregam apenas quando relevante2144* Reduza arquivos de memória `CLAUDE.md` grandes ou mova instruções para [regras com escopo de caminho](/docs/pt/memory#path-specific-rules) que carregam apenas quando relevante

2143* O auto-compact está ativado por padrão e normalmente previne esse erro. Se você o desativou em `/config` ou com [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars), ative-o novamente. Se você mantê-lo desativado, execute `/compact` você mesmo antes da janela se preencher.2145* A compactação automática está ativada por padrão e normalmente previne esse erro. Se você a desativou em `/config` ou com [`DISABLE_AUTO_COMPACT`](/docs/pt/env-vars), ative-a novamente. Se você mantê-la desativada, execute `/compact` você mesmo antes da janela se encher.

2144 2146 

2145Veja [Explore the context window](/docs/pt/context-window) para uma visualização interativa de como o contexto se preenche.2147Veja [Explore a janela de contexto](/docs/pt/context-window) para uma visualização interativa de como o contexto se preenche.

2146 2148 

2147<h3 id="context-exceeds-the-token-limit">2149<h3 id="context-exceeds-the-token-limit">

2148 O contexto excede o limite de tokens2150 Contexto excede o limite de tokens

2149</h3>2151</h3>

2150 2152 

2151`/context` mostra esse aviso no topo de sua saída quando a conversa cresceu além da janela de contexto do modelo. As solicitações falham com [`Prompt is too long`](#prompt-is-too-long) até você liberar espaço. Uma sessão interativa mostra esse erro como a linha `Context limit reached`.2153`/context` mostra este aviso no topo de sua saída quando a conversa cresceu além da janela de contexto do modelo. As solicitações falham com [`Prompt is too long`](#prompt-is-too-long) até você liberar espaço. Uma sessão interativa mostra esse erro como a linha `Context limit reached`.

2152 2154 

2153```text theme={null}2155```text theme={null}

2154Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2156Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2155```2157```

2156 2158 

2157Quando o limite que você excedeu é uma janela de compactação, como o limite de 200K em modelos de contexto 1M, o aviso lê diferentemente. Uma janela de compactação pode ficar abaixo da janela de contexto do modelo, então solicitações após ela ainda podem ter sucesso.2159Quando o limite que você excedeu é uma janela de compactação, como o limite de 200K em modelos de contexto 1M, o aviso lê de forma diferente. Uma janela de compactação pode ficar abaixo da janela de contexto do modelo, então solicitações após ela ainda podem ter sucesso.

2158 2160 

2159```text theme={null}2161```text theme={null}

2160Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.2162Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.


2164 2166 

2165**O que fazer:**2167**O que fazer:**

2166 2168 

2167* Em uma conversa com múltiplas voltas, execute `/compact` para resumir voltas anteriores e liberar espaço. Para começar do zero, execute `/clear`2169* Em uma conversa com múltiplas rodadas, execute `/compact` para resumir rodadas anteriores e liberar espaço. Para começar do zero, execute `/clear`

2168* Para mais formas de reduzir o uso, veja [Prompt is too long](#prompt-is-too-long)2170* Para mais formas de reduzir o uso, veja [Prompt é muito longo](#prompt-is-too-long)

2169 2171 

2170Antes da v2.1.216, `/context` mostrava uso acima de 100% sem linha de aviso explicando o que isso significava ou como se recuperar.2172Antes da v2.1.216, `/context` mostrava uso acima de 100% sem linha de aviso explicando o que isso significava ou como se recuperar.

2171 2173 


2173 Solicitação muito grande2175 Solicitação muito grande

2174</h3>2176</h3>

2175 2177 

2176O corpo da solicitação bruta excedeu o limite de 32MB da API antes da tokenização, geralmente por causa de conteúdo colado grande, resultados de ferramentas ou anexos. Esse limite é separado da [janela de contexto](#prompt-is-too-long).2178O corpo da solicitação bruta excedeu o limite de 32MB da API antes da tokenização, geralmente por causa de conteúdo colado grande, resultados de ferramentas ou anexos. Este limite é separado da [janela de contexto](#prompt-is-too-long).

2177 2179 

2178```text theme={null}2180```text theme={null}

2179Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.2181Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.


2181 2183 

2182Quando a solicitação foi direto para a API Claude e a própria API a rejeitou, Claude Code mede a conversa e redige a mensagem se a recuperação pode funcionar. Através de um proxy, gateway ou provedor de nuvem você obtém a mensagem geral. As formas medidas:2184Quando a solicitação foi direto para a API Claude e a própria API a rejeitou, Claude Code mede a conversa e redige a mensagem se a recuperação pode funcionar. Através de um proxy, gateway ou provedor de nuvem você obtém a mensagem geral. As formas medidas:

2183 2185 

2184* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: imagens ou documentos empurraram a solicitação além do limite. Claude Code tenta novamente com eles removidos.2186* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: imagens ou documentos empurraram a solicitação para além do limite. Claude Code tenta novamente com eles removidos.

2185* `Request too large for the API's 32MB request limit`: as mensagens sozinhas estão além do limite, então a mensagem diz `compacting cannot make it fit` e Claude Code não tenta novamente. Em [modo não interativo](/docs/pt/headless), a mensagem diz para você reduzir a entrada ou iniciar uma nova sessão.2187* `Request too large for the API's 32MB request limit`: as mensagens sozinhas estão acima do limite, então a mensagem diz `compacting cannot make it fit` e Claude Code não tenta novamente. Em [modo não interativo](/docs/pt/headless), a mensagem diz para você reduzir a entrada ou iniciar uma nova sessão.

2186 2188 

2187Antes da v2.1.212, conversas com imagens acumuladas suficientes falhavam a cada volta com `Request too large (max 32MB). Double press esc to go back and try with a smaller file.` Antes da v2.1.229, Claude Code mostrava o conselho de anexo para cada rejeição, mesmo quando a compactação não podia ajudar.2189Antes da v2.1.212, conversas com imagens acumuladas suficientes falhavam a cada rodada com `Request too large (max 32MB). Double press esc to go back and try with a smaller file.` Antes da v2.1.229, Claude Code mostrava o conselho de anexo para cada rejeição, mesmo quando a compactação não podia ajudar.

2188 2190 

2189**O que fazer:**2191**O que fazer:**

2190 2192 

2191* Se a mensagem diz `compacting cannot make it fit`, pressione Esc duas vezes para voltar além da volta que adicionou o conteúdo grande, ou execute `/clear` para começar do zero2193* Se a mensagem diz `compacting cannot make it fit`, pressione Esc duas vezes para voltar além da rodada que adicionou o conteúdo grande, ou execute `/clear` para começar do zero

2192* Caso contrário, execute `/compact`, que remove imagens e anexos acumulados2194* Caso contrário, execute `/compact`, que remove imagens e anexos acumulados

2193* Referencie arquivos grandes por caminho em vez de colar seu conteúdo, para que Claude possa lê-los em pedaços2195* Referencie arquivos grandes por caminho em vez de colar seu conteúdo, para que Claude possa lê-los em pedaços

2194* Para imagens, veja [Image was too large](#image-was-too-large) abaixo2196* Para imagens, veja [Imagem era muito grande](#image-was-too-large) abaixo

2195 2197 

2196<h3 id="image-was-too-large">2198<h3 id="image-was-too-large">

2197 Imagem era muito grande2199 Imagem era muito grande


2204API Error: 400 ... image dimensions exceed max allowed size2206API Error: 400 ... image dimensions exceed max allowed size

2205```2207```

2206 2208 

2207Claude Code substitui a imagem não processável por um espaço reservado de texto e tenta novamente, então mensagens subsequentes têm sucesso. Em versões antes de 2.1.142, uma imagem colada poderia permanecer na conversa e repetir o mesmo erro em cada mensagem subsequente. Para se recuperar nessas versões, pressione Esc duas vezes e volte além da volta onde a imagem foi adicionada.2209Claude Code substitui a imagem não processável por um espaço reservado de texto e tenta novamente, então mensagens subsequentes têm sucesso. Em versões anteriores a 2.1.142, uma imagem colada poderia permanecer na conversa e repetir o mesmo erro em cada mensagem subsequente. Para se recuperar nessas versões, pressione Esc duas vezes e volte além da rodada onde a imagem foi adicionada.

2208 2210 

2209**O que fazer:**2211**O que fazer:**

2210 2212 

2211* Redimensione a imagem antes de colar. A API aceita imagens até 8000 pixels na borda mais longa para uma única imagem, ou 2000 pixels quando muitas imagens estão em contexto.2213* Redimensione a imagem antes de colar. A API aceita imagens de até 8000 pixels na borda mais longa para uma única imagem, ou 2000 pixels quando muitas imagens estão em contexto.

2212* Faça uma captura de tela mais apertada da região relevante em vez da tela inteira2214* Faça uma captura de tela mais apertada da região relevante em vez da tela inteira

2213 2215 

2214<h3 id="unable-to-resize-image">2216<h3 id="unable-to-resize-image">


2250**O que fazer:**2252**O que fazer:**

2251 2253 

2252* Para PDFs de tamanho excessivo, peça a Claude para ler um intervalo de páginas com a ferramenta Read em vez de anexar o arquivo inteiro, ou extraia texto com uma ferramenta como `pdftotext` e referencie o arquivo de saída por caminho2254* Para PDFs de tamanho excessivo, peça a Claude para ler um intervalo de páginas com a ferramenta Read em vez de anexar o arquivo inteiro, ou extraia texto com uma ferramenta como `pdftotext` e referencie o arquivo de saída por caminho

2253* Para PDFs protegidos ou inválidos, remova a senha ou re-exporte o arquivo de seu aplicativo de origem, depois tente novamente2255* Para PDFs protegidos ou inválidos, remova a senha ou re-exporte o arquivo de seu aplicativo de origem e tente novamente

2254 2256 

2255Quando Claude lê um intervalo de páginas de um PDF com a ferramenta Read, a leitura pode falhar com uma mensagem diferente:2257Quando Claude lê um intervalo de páginas de um PDF com a ferramenta Read, a leitura pode falhar com uma mensagem diferente:

2256 2258 


2258pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.2260pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.

2259```2261```

2260 2262 

2261Leituras de intervalo de páginas renderizam páginas com `pdftoppm`. Instale poppler-utils com o comando que a mensagem fornece, ou em outras plataformas uma compilação poppler que coloca `pdftoppm` em seu `PATH`. Veja [Read tool behavior](/docs/pt/tools-reference#read-tool-behavior) para quais PDFs são lidos por intervalo de páginas.2263Leituras de intervalo de páginas renderizam páginas com `pdftoppm`. Instale poppler-utils com o comando que a mensagem fornece, ou em outras plataformas uma compilação poppler que coloca `pdftoppm` em seu `PATH`. Veja [Comportamento da ferramenta Read](/docs/pt/tools-reference#read-tool-behavior) para quais PDFs são lidos por intervalo de páginas.

2262 2264 

2263<h3 id="extra-inputs-are-not-permitted">2265<h3 id="extra-inputs-are-not-permitted">

2264 Entradas extras não são permitidas2266 Entradas extras não são permitidas


2274 2276 

2275**O que fazer:**2277**O que fazer:**

2276 2278 

2277* Configure seu gateway para encaminhar o cabeçalho `anthropic-beta`. Veja [feature pass-through](/docs/pt/llm-gateway-protocol#feature-pass-through) para o que os gateways devem encaminhar.2279* Configure seu gateway para encaminhar o cabeçalho `anthropic-beta`. Veja [passagem de recursos](/docs/pt/llm-gateway-protocol#feature-pass-through) para o que os gateways devem encaminhar.

2278* Como fallback, defina [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/pt/env-vars) antes de iniciar. [Disable pre-release capabilities](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) cobre o escopo exato.2280* Como fallback, defina [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/pt/env-vars) antes de iniciar. [Desabilitar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) cobre o escopo exato.

2279 2281 

2280<h3 id="tool-input-schema-is-invalid">2282<h3 id="tool-input-schema-is-invalid">

2281 O esquema de entrada da ferramenta é inválido2283 Esquema de entrada de ferramenta é inválido

2282</h3>2284</h3>

2283 2285 

2284Uma ferramenta na solicitação declarou um `input_schema` que falha na validação JSON Schema da API, então a API rejeitou a solicitação inteira. O número após `tools.` é a posição da ferramenta falhada na lista de ferramentas da solicitação, não um nome que você possa procurar.2286Uma ferramenta na solicitação declarou um `input_schema` que falha na validação JSON Schema da API, então a API rejeitou a solicitação inteira. O número após `tools.` é a posição da ferramenta que falha na lista de ferramentas da solicitação, não um nome que você possa procurar.

2285 2287 

2286```text theme={null}2288```text theme={null}

2287API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid2289API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid


2290 2292 

2291A primeira forma significa que o esquema não é um JSON Schema draft 2020-12 válido. A segunda significa que um nome de propriedade de nível superior não corresponde ao padrão que a mensagem cita.2293A primeira forma significa que o esquema não é um JSON Schema draft 2020-12 válido. A segunda significa que um nome de propriedade de nível superior não corresponde ao padrão que a mensagem cita.

2292 2294 

2293Claude Code [exclui ferramentas MCP cujo esquema de entrada falharia nessa validação](/docs/pt/mcp#tools-with-invalid-input-schemas) quando carrega as ferramentas de um servidor, então solicitações normalmente nunca incluem uma.2295Claude Code [exclui ferramentas MCP cujo esquema de entrada falharia nessa validação](/docs/pt/mcp#tools-with-invalid-input-schemas) quando carrega as ferramentas de um servidor, então as solicitações normalmente nunca incluem uma.

2294 2296 

2295Em uma [implantação onde a busca de sinalizadores está desativada](/docs/pt/env-vars#features-that-need-feature-flag-fetching), ou em uma máquina cujos sinalizadores nunca chegaram, Claude Code registra no log do servidor qual ferramenta seria rejeitada mas a envia mesmo assim, então esse erro ainda pode ocorrer.2297Em uma [implantação onde a busca de sinalizadores está desativada](/docs/pt/env-vars#features-that-need-feature-flag-fetching), ou em uma máquina cujos sinalizadores nunca chegaram, Claude Code registra no log do servidor qual ferramenta seria rejeitada mas a envia mesmo assim, então esse erro ainda pode ocorrer.

2296 2298 


2300 2302 

2301**O que fazer:**2303**O que fazer:**

2302 2304 

2303* Se sua versão do Claude Code é anterior à v2.1.216, execute `claude update`.2305* Se sua versão do Claude Code for anterior a v2.1.216, execute `claude update`.

2304* Remova ou [desabilite](/docs/pt/mcp#disable-a-server-without-removing-it) o servidor MCP que declara o esquema inválido. O erro nomeia a ferramenta apenas por posição. Na v2.1.216 ou posterior, verifique o log de cada servidor para uma linha nomeando uma ferramenta cujo esquema de entrada seria rejeitado. Se nenhum log nomear uma, desabilite servidores um de cada vez.2306* Remova ou [desabilite](/docs/pt/mcp#disable-a-server-without-removing-it) o servidor MCP que declara o esquema inválido. O erro nomeia a ferramenta apenas por posição. Na v2.1.216 ou posterior, verifique o log de cada servidor para uma linha nomeando uma ferramenta cujo esquema de entrada seria rejeitado. Se nenhum log nomear uma, desabilite servidores um de cada vez.

2305* Se você mantém o servidor, corrija o `input_schema` da ferramenta. O esquema deve ser um JSON Schema válido, e nomes de propriedade de nível superior devem ter 1 a 64 caracteres e usar apenas letras ASCII e dígitos, `_`, `.` e `-`. Veja [Tools with invalid input schemas](/docs/pt/mcp#tools-with-invalid-input-schemas).2307* Se você mantém o servidor, corrija o `input_schema` da ferramenta. O esquema deve ser um JSON Schema válido, e nomes de propriedades de nível superior devem ter 1 a 64 caracteres e usar apenas letras ASCII e dígitos, `_`, `.` e `-`. Veja [Ferramentas com esquemas de entrada inválidos](/docs/pt/mcp#tools-with-invalid-input-schemas).

2306 2308 

2307<h3 id="tool-use-name-over-200-characters">2309<h3 id="tool-use-name-over-200-characters">

2308 tool\_use.name com mais de 200 caracteres2310 tool\_use.name com mais de 200 caracteres


2318 2320 

2319**O que fazer:**2321**O que fazer:**

2320 2322 

2321* Execute `claude update`, depois retome a conversa. A versão atualizada repara o nome excessivamente longo quando carrega a transcrição, então uma conversa que estava presa funciona novamente.2323* Execute `claude update` e retome a conversa. A versão atualizada repara o nome excessivamente longo quando carrega a transcrição, então uma conversa que estava presa funciona novamente.

2322 2324 

2323Antes da v2.1.281, o nome excessivamente longo permanecia no histórico e a API rejeitava cada solicitação que reenviava a conversa, incluindo `/compact` e `--resume`, então esse erro se repetia e a conversa ficava presa.2325Antes da v2.1.281, o nome excessivamente longo permanecia no histórico e a API rejeitava cada solicitação que reenviava a conversa, incluindo `/compact` e `--resume`, então esse erro se repetia e a conversa ficava presa.

2324 2326 


2326 Há um problema com o modelo selecionado2328 Há um problema com o modelo selecionado

2327</h3>2329</h3>

2328 2330 

2329O nome do modelo configurado não foi reconhecido ou sua conta não tem acesso a ele. A partir da v2.1.160, a dica final, mostrada aqui em sua forma interativa, varia por superfície.2331O nome do modelo configurado não foi reconhecido ou sua conta não tem acesso a ele. A partir da v2.1.160, a dica à direita, mostrada aqui em sua forma interativa, varia por superfície.

2330 2332 

2331```text theme={null}2333```text theme={null}

2332There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.2334There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.


2336 2338 

2337* **CLI interativa**: execute `/model` para escolher entre modelos disponíveis para sua conta.2339* **CLI interativa**: execute `/model` para escolher entre modelos disponíveis para sua conta.

2338* **Modo não interativo (`-p`)**: passe `--model` com um alias ou ID válido, ou defina [`ANTHROPIC_MODEL`](/docs/pt/env-vars). O texto de erro mostra `Run --model` nessa superfície.2340* **Modo não interativo (`-p`)**: passe `--model` com um alias ou ID válido, ou defina [`ANTHROPIC_MODEL`](/docs/pt/env-vars). O texto de erro mostra `Run --model` nessa superfície.

2339* **Agent SDK**: o texto de erro omite a dica porque o modelo é definido programaticamente. Defina [`model` em `Options`](/docs/pt/agent-sdk/typescript#options) em TypeScript ou [`ClaudeAgentOptions(model=...)`](/docs/pt/agent-sdk/python#claudeagentoptions) em Python, e trate o erro estruturado `model_not_found` para exibir seu próprio retry ou seletor de modelo.2341* **Agent SDK**: o texto de erro omite a dica porque o modelo é definido programaticamente. Defina [`model` em `Options`](/docs/pt/agent-sdk/typescript#options) em TypeScript ou [`ClaudeAgentOptions(model=...)`](/docs/pt/agent-sdk/python#claudeagentoptions) em Python, e trate o erro estruturado `model_not_found` para exibir sua própria tentativa ou seletor de modelo.

2340* Use um alias como `sonnet` ou `opus` em vez de um ID versionado completo. Aliases resolvem para um padrão mantido para que não fiquem obsoletos. Veja [Model configuration](/docs/pt/model-config).2342* Use um alias como `sonnet` ou `opus` em vez de um ID versionado completo. Aliases resolvem para um padrão mantido para que não fiquem obsoletos. Veja [Configuração de modelo](/docs/pt/model-config).

2341* Se o modelo errado continua voltando na CLI, um ID obsoleto está definido em algum lugar. Verifique os locais onde você pode definir um modelo em [ordem de prioridade](/docs/pt/model-config#setting-your-model) e remova o valor obsoleto.2343* Se o modelo errado continuar voltando na CLI, um ID obsoleto está definido em algum lugar. Verifique os locais onde você pode definir um modelo em [ordem de prioridade](/docs/pt/model-config#setting-your-model) e remova o valor obsoleto.

2342* Claude Code relata um login claude.ai expirado como [Login expired](#login-expired), não como esse erro. Antes da v2.1.206, um login expirado que não podia mais ser atualizado falhava em cada modelo com esse erro; execute `/login` se você vir isso em uma versão mais antiga.2344* Claude Code relata um login claude.ai expirado como [Login expirado](#login-expired), não como esse erro. Antes da v2.1.206, um login expirado que não podia mais ser atualizado falhava em cada modelo com esse erro; execute `/login` se você vir isso em uma versão mais antiga.

2343* Para implantações do Google Cloud's Agent Platform, veja [Google Cloud's Agent Platform troubleshooting](/docs/pt/google-vertex-ai#troubleshooting).2345* Para implantações do Google Cloud's Agent Platform, veja [Solução de problemas do Google Cloud's Agent Platform](/docs/pt/google-vertex-ai#troubleshooting).

2344 2346 

2345<h3 id="model-is-not-a-recognized-model-id">2347<h3 id="model-is-not-a-recognized-model-id">

2346 Model is not a recognized model id2348 Modelo não é um ID de modelo reconhecido

2347</h3>2349</h3>

2348 2350 

2349A string de modelo que você passou para uma mudança de modelo não é um alias de modelo, um ID de modelo que essa versão do Claude Code conhece, ou um ID que começa com `claude-`. As causas usuais são um erro de digitação no ID, um nome de exibição como `Sonnet 5` onde o ID `claude-sonnet-5` é esperado, ou um alias que apenas versões mais novas do Claude Code reconhecem. Claude Code rejeita a mudança imediatamente. Antes da v2.1.200, Claude Code salvava a string e falhava na próxima solicitação com [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2351A string que você passou para uma mudança de modelo não é uma que Claude Code possa usar como modelo, então ele recusou a mudança sem enviar uma solicitação e a sessão mantém seu modelo atual. Você pode obter esse erro quando um modelo é definido através do método [Agent SDK](/docs/pt/agent-sdk/typescript) `setModel()`, por um aplicativo que executa a CLI do Claude Code para você, como o [Aplicativo Desktop](/docs/pt/desktop), ou quando você escolhe um modelo de um dispositivo conectado através de [Controle Remoto](/docs/pt/remote-control). Antes da v2.1.200, Claude Code salvava a string e falhava na próxima solicitação com [Há um problema com o modelo selecionado](#theres-an-issue-with-the-selected-model).

2350 2352 

2351```text theme={null}2353```text theme={null}

2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2354Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2353```2355```

2354 2356 

2355A dica final nomeia o alias ou ID de modelo mais próximo. Quando nada é próximo o suficiente, lê `Run /model to see available models.` em vez disso. Em uma sessão que o [Desktop app](/docs/pt/desktop) inicia para você, a dica sem correspondência lê `Switch to a different model.`2357Neste exemplo, um aplicativo enviou o nome de exibição `Sonnet 5`, que a mensagem repete sem seu espaço. A dica à direita nomeia o alias ou ID de modelo mais próximo. Quando nada é próximo o suficiente, lê `Run /model to see available models.` Em uma sessão que o [Aplicativo Desktop](/docs/pt/desktop) inicia para você, a dica sem correspondência lê `Switch to a different model.`

2356 2358 

2357Claude Code produz esse erro localmente no momento em que a mudança é solicitada, antes de qualquer solicitação de API ser feita. Aplica-se quando um modelo é definido através do método [Agent SDK](/docs/pt/agent-sdk/typescript) `setModel()`, por um aplicativo como o [Desktop app](/docs/pt/desktop) que executa o CLI do Claude Code para você, ou quando você escolhe um modelo de um dispositivo conectado através de [Remote Control](/docs/pt/remote-control). Antes da v2.1.260, a verificação não cobria escolhas de Remote Control, então Claude Code aplicava a escolha e a próxima solicitação falhava com [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2359Quando você muda através do Agent SDK ou um aplicativo na API Anthropic, apenas uma string que não pode ser um ID de modelo obtém esse erro, como um nome de exibição ou uma string vazia.

2360 

2361Quando você escolhe um modelo de um dispositivo Remote Control, Claude Code verifica a string localmente. Qualquer string que não seja um alias de modelo, um modelo que Claude Code lista ou você configurou, ou um ID que começa com `claude-` obtém esse erro, um ID digitado incorretamente como `claud-sonnet-5` incluído. Antes da v2.1.260, essa verificação não cobria escolhas de Remote Control, então uma string não reconhecida era aplicada e falhava na próxima solicitação.

2358 2362 

2359**O que fazer:**2363**O que fazer:**

2360 2364 

2361* Execute `/model` sem argumento para abrir o seletor e escolher entre os modelos disponíveis para sua conta, depois passe o alias ou ID mostrado lá2365* Execute `/model` sem argumento para abrir o seletor e escolher entre os modelos disponíveis para sua conta, depois passe o alias ou ID mostrado lá

2362* Se você usou um alias que uma versão mais nova do Claude Code suporta, execute `claude update`. Um ID completo que começa com `claude-` passa nessa verificação local mesmo quando o modelo é mais novo que sua versão do Claude Code. O servidor ainda pode exigir uma versão mínima para esse modelo; veja [Claude Code does not support this model](#claude-code-does-not-support-this-model).2366* Se você usou um alias que apenas uma versão mais nova do Claude Code suporta, execute `claude update`, ou passe o ID completo do modelo. O servidor ainda pode exigir uma versão mínima do Claude Code para esse modelo; veja [Claude Code não suporta este modelo](#claude-code-does-not-support-this-model).

2363* Um modelo salvo antes da v2.1.200 não é reparado por essa verificação. Se um valor obsoleto continua voltando, remova-o dos locais listados em [Setting your model](/docs/pt/model-config#setting-your-model).2367* Um modelo salvo antes da v2.1.200 não é reparado por essa verificação. Se um valor obsoleto continua voltando, remova-o dos locais listados em [Definindo seu modelo](/docs/pt/model-config#setting-your-model).

2364* A verificação é executada apenas na API Anthropic. Em qualquer outro provedor ou gateway, incluindo um `ANTHROPIC_BASE_URL` customizado, o provedor define os nomes de modelo, então Claude Code aceita qualquer string e a passa. Claude Code ainda pode escrever a [linha de diagnóstico de modelo não reconhecido](#unrecognized-model-id-on-a-request) no tempo de solicitação, em cada provedor.2368* Em qualquer provedor diferente da API Anthropic, ou atrás de um gateway ou `ANTHROPIC_BASE_URL` customizado, apenas uma string vazia obtém esse erro. Claude Code ainda pode escrever a [linha de diagnóstico de modelo não reconhecido](#unrecognized-model-id-on-a-request) no tempo de solicitação, em cada provedor.

2365 2369 

2366<h3 id="model-not-found">2370<h3 id="model-not-found">

2367 Modelo não encontrado2371 Modelo não encontrado

2368</h3>2372</h3>

2369 2373 

2370Você escolheu um modelo com `/model <name>` e Claude Code não conseguiu confirmar que um modelo com esse nome existe. Quando o nome não é um [alias de modelo](/docs/pt/model-config#model-aliases) ou outra ortografia que Claude Code aceita localmente, `/model` o verifica com uma solicitação mínima de API, e esse erro é geralmente a resposta do seu endpoint de API. Um nome que não pode ser um ID de modelo, como um contendo espaços, recebe a mesma mensagem.2374Você mudou para um modelo por nome e Claude Code não conseguiu confirmar que um modelo com esse nome existe. Quando o nome não é um [alias de modelo](/docs/pt/model-config#model-aliases) ou outra ortografia que Claude Code aceita localmente, Claude Code o verifica com uma solicitação mínima de API, e esse erro é geralmente a resposta do seu endpoint de API. Com `/model <name>`, um nome que não pode ser um ID de modelo, como um contendo espaços, obtém a mesma mensagem.

2371 2375 

2372```text theme={null}2376```text theme={null}

2373Model 'claude-opus-9' not found2377Model 'claude-opus-9' not found


2379 2383 

2380* Execute `/model` sem argumento e escolha entre os modelos disponíveis para sua conta, ou use um [alias de modelo](/docs/pt/model-config#model-aliases) como `sonnet`, que resolve para um padrão mantido2384* Execute `/model` sem argumento e escolha entre os modelos disponíveis para sua conta, ou use um [alias de modelo](/docs/pt/model-config#model-aliases) como `sonnet`, que resolve para um padrão mantido

2381* Se você digitou um ID completo, verifique-o contra o catálogo de modelos do seu provedor. Um modelo recém-lançado pode estar disponível na API Anthropic antes de seu provedor ou região oferecer.2385* Se você digitou um ID completo, verifique-o contra o catálogo de modelos do seu provedor. Um modelo recém-lançado pode estar disponível na API Anthropic antes de seu provedor ou região oferecer.

2382* Antes da v2.1.265, `/model` também rejeitava a ortografia do alias `opusplan[1m]` com esse erro. Nessas versões, atualize Claude Code ou defina o modelo em [settings](/docs/pt/model-config#setting-your-model) ou com `--model` em vez disso.2386* No Agent SDK, `setModel()` falha com essa mensagem e a sessão continua executando em seu modelo anterior. No SDK TypeScript, chame [`supportedModels()`](/docs/pt/agent-sdk/typescript#query-object) para listar os modelos para os quais você pode mudar.

2387* Antes da v2.1.265, `/model` também rejeitava a ortografia do alias `opusplan[1m]` com esse erro. Nessas versões, atualize Claude Code, ou defina o modelo em [configurações](/docs/pt/model-config#setting-your-model) ou com `--model`.

2388 

2389<h3 id="couldnt-confirm-model-with-the-api">

2390 Não foi possível confirmar o modelo com a API

2391</h3>

2392 

2393Você mudou de modelos através do método [Agent SDK](/docs/pt/agent-sdk/typescript) `setModel()` ou um aplicativo que executa a CLI do Claude Code para você, como o [Aplicativo Desktop](/docs/pt/desktop), e a solicitação que confirma o ID do modelo com seu endpoint de API não obteve resposta em cinco segundos. A sessão mantém seu modelo atual.

2394 

2395```text theme={null}

2396Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2397```

2398 

2399Em uma sessão que o [Aplicativo Desktop](/docs/pt/desktop) inicia para você, a mensagem termina em `Try again.`

2400 

2401**O que fazer:**

2402 

2403* Mude para o modelo novamente

2404* Se a mudança continuar falhando, verifique se Claude Code pode alcançar seu endpoint de API; veja [Erros de rede e conexão](#network-and-connection-errors)

2383 2405 

2384<h3 id="api-error-model-not-changed">2406<h3 id="api-error-model-not-changed">

2385 Erro de API ao verificar o modelo escolhido2407 Erro de API ao verificar o modelo escolhido

2386</h3>2408</h3>

2387 2409 

2388Você escolheu um modelo com `/model <name>`, ou um aplicativo conectado à sessão solicitou a mudança. A API recusou a solicitação mínima que Claude Code envia para verificar o modelo, por uma razão que não tem entrada própria, como um limite de taxa ou um erro de servidor. A sessão mantém seu modelo atual, e a mensagem termina dizendo assim:2410Você escolheu um modelo com `/model <name>`, ou um aplicativo conectado à sessão solicitou a mudança. A API recusou a solicitação mínima que Claude Code envia para verificar o modelo, por um motivo que não tem entrada própria, como um limite de taxa ou um erro de servidor. A sessão mantém seu modelo atual, e a mensagem termina dizendo:

2389 2411 

2390```text theme={null}2412```text theme={null}

2391API error: 429 <the server's explanation> · model not changed2413API error: 429 <the server's explanation> · model not changed


2396**O que fazer:**2418**O que fazer:**

2397 2419 

2398* Aja sobre a explicação do servidor; para um limite de taxa ou um status 5xx, aguarde e escolha o modelo novamente2420* Aja sobre a explicação do servidor; para um limite de taxa ou um status 5xx, aguarde e escolha o modelo novamente

2399* As recusas com sua própria redação são cobertas pelas entradas circundantes, como [Model not found](#model-not-found) e [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)2421* As recusas com sua própria redação são cobertas pelas entradas ao redor, como [Modelo não encontrado](#model-not-found) e [Modelo é restringido pelas configurações de sua organização](#model-is-restricted-by-your-organizations-settings)

2400 2422 

2401<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2423<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2402 Claude Opus não está disponível com o plano Claude Pro2424 Claude Opus não está disponível com o plano Claude Pro


2413**O que fazer:**2435**O que fazer:**

2414 2436 

2415* Execute `/model` e selecione um modelo que seu plano inclui2437* Execute `/model` e selecione um modelo que seu plano inclui

2416* Se você atualizou seu plano recentemente e ainda vê isso, execute `/logout` depois `/login`. O token armazenado reflete seu plano no momento em que você se conectou, então atualizar em claude.ai não entra em vigor em uma sessão existente até você se autenticar novamente.2438* Se você atualizou seu plano recentemente e ainda vê isso, execute `/logout` e depois `/login`. O token armazenado reflete seu plano no momento em que você se autenticou, então atualizar em claude.ai não entra em vigor em uma sessão existente até você se autenticar novamente.

2417* Veja [claude.com/pricing](https://claude.com/pricing) para quais modelos cada plano inclui2439* Veja [claude.com/pricing](https://claude.com/pricing) para quais modelos cada plano inclui

2418 2440 

2419<h3 id="claude-code-does-not-support-this-model">2441<h3 id="claude-code-does-not-support-this-model">

2420 Claude Code não suporta este modelo2442 Claude Code não suporta este modelo

2421</h3>2443</h3>

2422 2444 

2423A API recusou a solicitação com um 400 porque sua versão do Claude Code está abaixo de um mínimo necessário. Ou o modelo que você selecionou requer uma versão mais nova, que o servidor verifica por modelo, ou a política da sua organização requer uma. O 400 carrega o código de erro `claude_code_version_too_old`, e a mensagem diz qual mínimo se aplica.2445A API recusou a solicitação com um 400 porque sua versão do Claude Code está abaixo de um mínimo necessário. Ou o modelo que você selecionou requer uma versão mais nova, que o servidor verifica por modelo, ou a política de sua organização requer uma. O 400 carrega o código de erro `claude_code_version_too_old`, e a mensagem diz qual mínimo se aplica.

2424 2446 

2425```text theme={null}2447```text theme={null}

2426API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.2448API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.


2432API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2454API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2433```2455```

2434 2456 

2457A versão que a API verifica é a relatada pelo binário Claude Code que fez a solicitação.

2458 

2435**O que fazer:**2459**O que fazer:**

2436 2460 

2437* Execute `claude update` ou atualize o aplicativo Claude desktop, depois inicie uma nova sessão2461Atualize esse binário e inicie uma nova sessão. De onde o binário veio decide como, exceto em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#pin-the-version):

2438* Para a redação por modelo, você pode continuar trabalhando na sessão atual alternando para outro modelo com `/model`2462 

2463| O binário que fez a solicitação | Como atualizá-lo |

2464| :- | :- |

2465| Um Claude Code que você instalou | Execute `claude update` |

2466| O aplicativo Claude desktop | Atualize o aplicativo |

2467| O binário que a [extensão VS Code](/docs/pt/vs-code) agrupa | Atualize a extensão |

2468| O binário que um pacote Agent SDK agrupa | [Atualize o pacote SDK](/docs/pt/agent-sdk/hosting#runtime-dependencies), depois reinicie seu aplicativo. Em um [executável de arquivo único compilado](/docs/pt/agent-sdk/typescript#compile-to-a-single-executable), reconstrua-o |

2469 

2470* Para a redação por modelo, você pode continuar trabalhando na sessão atual mudando para outro modelo: execute `/model` na CLI, chame [`setModel()`](/docs/pt/agent-sdk/typescript#query-object) no objeto `Query` do SDK TypeScript em modo de entrada de streaming, ou chame [`set_model()`](/docs/pt/agent-sdk/python#claudesdkclient) no `ClaudeSDKClient` do SDK Python

2439* Para a redação da política organizacional, atualize antes de continuar2471* Para a redação da política organizacional, atualize antes de continuar

2440 2472 

2441<h3 id="model-is-restricted-by-your-organizations-settings">2473<h3 id="model-is-restricted-by-your-organizations-settings">

2442 O modelo é restringido pelas configurações da sua organização2474 Modelo é restringido pelas configurações de sua organização

2443</h3>2475</h3>

2444 2476 

2445Seu administrador de organização desabilitou este modelo no console de administração claude.ai, ou configurações gerenciadas o excluem através de uma lista de permissões [`availableModels`](/docs/pt/model-config#restrict-model-selection) ou uma lista [`deniedModels`](/docs/pt/model-config#block-specific-models-or-versions). O aviso aparece na inicialização quando `--model`, `ANTHROPIC_MODEL` ou a configuração `model` nomeou o modelo restringido, e nomeia o modelo que a sessão usa em vez disso. Se as configurações gerenciadas não deixarem nenhum modelo permitido para a sessão usar, veja [Managed settings block the default model](#managed-settings-block-the-default-model). O aviso de substituição também pode aparecer no meio da sessão após um administrador desabilitar o modelo em que uma sessão está sendo executada no console de administração claude.ai.2477Seu administrador de organização desabilitou este modelo no console de administração claude.ai, ou configurações gerenciadas o excluem através de uma lista de permissões [`availableModels`](/docs/pt/model-config#restrict-model-selection) ou uma lista [`deniedModels`](/docs/pt/model-config#block-specific-models-or-versions). O aviso aparece na inicialização quando `--model`, `ANTHROPIC_MODEL` ou a configuração `model` nomeou o modelo restringido, e nomeia o modelo que a sessão usa. Se as configurações gerenciadas não deixarem nenhum modelo permitido para a sessão usar, veja [Configurações gerenciadas bloqueiam o modelo padrão](#managed-settings-block-the-default-model). O aviso de substituição também pode aparecer no meio da sessão após um administrador desabilitar o modelo em que uma sessão está executando no console de administração claude.ai.

2446 2478 

2447```text theme={null}2479```text theme={null}

2448Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.2480Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.


2450 2482 

2451Digitar `/model <name>` para um modelo restringido é rejeitado e a sessão mantém seu modelo atual. Para um modelo desabilitado no console de administração, a rejeição lê `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` Para um modelo que as configurações gerenciadas excluem, lê `Model '<name>' is not available. Your organization restricts model selection.`2483Digitar `/model <name>` para um modelo restringido é rejeitado e a sessão mantém seu modelo atual. Para um modelo desabilitado no console de administração, a rejeição lê `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` Para um modelo que as configurações gerenciadas excluem, lê `Model '<name>' is not available. Your organization restricts model selection.`

2452 2484 

2453Um aviso prefixado com um nome de agente, skill ou comando significa que a restrição se aplicou ao [modelo solicitado do suagente](/docs/pt/sub-agents#choose-a-model): o suagente é executado no modelo substituído e o modelo da sua sessão não é alterado. Antes da v2.1.223, Claude Code mostrava o aviso apenas para suagentes lançados com a ferramenta Agent.2485Um aviso prefixado com um nome de agente, habilidade ou comando significa que a restrição se aplicou ao [modelo solicitado do subagente](/docs/pt/sub-agents#choose-a-model): o subagente executa no modelo substituído e o modelo de sua sessão não muda. Antes da v2.1.223, Claude Code mostrava o aviso apenas para subagentes lançados com a ferramenta Agent.

2454 2486 

2455Claude Code trata um alias de família de modelo, um de `opus`, `sonnet`, `haiku` ou `fable`, como uma solicitação para essa família em vez de sua versão mais nova. Na API Anthropic e em [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), um alias de família restringido resolve para a versão mais nova da família que sua organização permite, e o aviso de substituição nomeia essa versão. Claude Code rejeita `/model <alias>` apenas quando cada versão da família é restringida. Antes da v2.1.205, um alias de família era substituído ou rejeitado com base apenas em sua versão mais nova, mesmo quando uma versão mais antiga da mesma família era permitida.2487Claude Code trata um alias de família de modelo, um de `opus`, `sonnet`, `haiku` ou `fable`, como uma solicitação para essa família em vez de sua versão mais nova. Na API Anthropic e em [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), um alias de família restringido resolve para a versão mais nova da família que as configurações de sua organização permitem, e o aviso de substituição nomeia essa versão. Claude Code rejeita `/model <alias>` apenas quando cada versão da família é restringida. Antes da v2.1.205, um alias de família era substituído ou rejeitado com base apenas em sua versão mais nova, mesmo quando uma versão mais antiga da mesma família era permitida.

2456 2488 

2457**O que fazer:**2489**O que fazer:**

2458 2490 

2459* Execute `/model` para escolher entre os modelos que sua organização permite. Modelos restritos estão ocultos do seletor.2491* Execute `/model` para escolher entre os modelos que sua organização permite. Modelos restringidos estão ocultos do seletor.

2460* Se o modelo restringido foi definido em `--model`, `ANTHROPIC_MODEL`, o campo `model` de um arquivo de configurações ou o frontmatter `model` de um [suagente](/docs/pt/sub-agents#choose-a-model), skill ou comando, remova ou atualize esse valor para que o aviso não recorra2492* Se o modelo restringido foi definido em `--model`, `ANTHROPIC_MODEL`, o campo `model` de um arquivo de configurações ou o frontmatter `model` de um [subagente](/docs/pt/sub-agents#choose-a-model), habilidade ou comando, remova ou atualize esse valor para que o aviso não recorra

2461* Se você precisa de acesso ao modelo restringido, peça ao administrador da sua organização para habilitá-lo. Veja [Organization model restrictions](/docs/pt/model-config#organization-model-restrictions).2493* Se você precisar de acesso ao modelo restringido, peça ao administrador de sua organização para habilitá-lo. Veja [Restrições de modelo da organização](/docs/pt/model-config#organization-model-restrictions).

2462 2494 

2463<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2495<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2464 A mudança de modelo foi bloqueada por um hook PreModelSwitch2496 A mudança de modelo foi bloqueada por um hook PreModelSwitch

2465</h3>2497</h3>

2466 2498 

2467Um [hook PreModelSwitch](/docs/pt/hooks#premodelswitch) não aprovou a mudança de modelo que você ou um cliente solicitou, então a sessão mantém seu modelo atual. Quando a mudança veio de um host [Agent SDK](/docs/pt/agent-sdk/overview) ou [Remote Control](/docs/pt/remote-control) em vez de um comando que você digitou, a mensagem lê `Model switch blocked by a PreModelSwitch hook` sem nomear o modelo de destino.2499Um [hook PreModelSwitch](/docs/pt/hooks#premodelswitch) não aprovou a mudança de modelo que você ou um cliente solicitou, então a sessão mantém seu modelo atual. Quando a mudança veio de um host [Agent SDK](/docs/pt/agent-sdk/overview) ou [Controle Remoto](/docs/pt/remote-control) em vez de um comando que você digitou, a mensagem lê `Model switch blocked by a PreModelSwitch hook` sem nomear o modelo de destino.

2468 2500 

2469```text theme={null}2501```text theme={null}

2470Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.2502Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.


2472 2504 

2473A razão após os dois pontos diz o que recusou a mudança:2505A razão após os dois pontos diz o que recusou a mudança:

2474 2506 

2475* **Uma razão que um hook escreveu**: um hook PreModelSwitch forneceu essa razão quando [negou a mudança ou pediu confirmação](/docs/pt/hooks#premodelswitch-decision-control). Aborde o que ele pede ou escolha um modelo que seus hooks permitem.2507* **Uma razão que um hook escreveu**: um hook PreModelSwitch forneceu essa razão quando [negou a mudança ou pediu confirmação](/docs/pt/hooks#premodelswitch-decision-control). Aborde o que ele pede, ou escolha um modelo que seus hooks permitem.

2476* **`PreModelSwitch hook <name> did not respond before its timeout`**: um hook que não responde antes de seu [timeout](/docs/pt/hooks#timeouts) bloqueia a mudança. Corrija o comando pendurado ou aumente o `timeout` desse hook, depois mude novamente.2508* **`PreModelSwitch hook <name> did not respond before its timeout`**: um hook que não responde antes de seu [timeout](/docs/pt/hooks#timeouts) bloqueia a mudança. Corrija o comando pendurado ou aumente o `timeout` desse hook, depois mude novamente.

2477* **`confirmation required, and this session cannot ask`**: um hook respondeu `ask` sem uma razão, e uma solicitação de controle não tem forma de mostrar o prompt de confirmação. Um comando `/model` em uma execução [`-p`](/docs/pt/headless) relata a mesma condição com `(run /model interactively to confirm)` após a razão. Faça a mudança de uma sessão interativa ou altere a decisão do hook para este modelo.2509* **`confirmation required, and this session cannot ask`**: um hook respondeu `ask` sem uma razão, e uma solicitação de controle não tem forma de mostrar o prompt de confirmação. Uma execução `/model` em uma execução [`-p`](/docs/pt/headless) relata a mesma condição com `(run /model interactively to confirm)` após a razão. Faça a mudança de uma sessão interativa, ou mude a decisão do hook para este modelo.

2478* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code não conseguiu dizer quais hooks PreModelSwitch seus [plugins gerenciados](/docs/pt/settings-reference#enabledplugins) da organização entregam, por exemplo porque um plugin gerenciado falhou ao carregar. Um desses hooks pode bloquear a mudança, então Claude Code recusa em vez de aplicar a mudança desmarcada. O início da razão nomeia o que falhou. Claude Code re-verifica a cada tentativa de mudança, então uma falha que desde então foi limpa para de bloquear; se continuar falhando, execute `claude --debug` e mude novamente para capturar os detalhes, depois corrija o plugin ou peça ao seu administrador para corrigi-lo.2510* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code não conseguiu dizer quais hooks PreModelSwitch seus [plugins gerenciados](/docs/pt/settings-reference#enabledplugins) da organização entregam, por exemplo porque um plugin gerenciado falhou ao carregar. Um desses hooks pode bloquear a mudança, então Claude Code recusa em vez de aplicar a mudança sem verificação. O início da razão nomeia o que falhou. Claude Code re-verifica a cada tentativa de mudança, então uma falha que desde então foi limpa para de bloquear; se continuar falhando, execute `claude --debug` e mude novamente para capturar os detalhes, depois corrija o plugin ou peça ao seu administrador para corrigi-lo.

2479* **`a PreModelSwitch hook failed before answering`** ou **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: a execução do hook terminou sem um veredicto, e Claude Code não trata isso como aprovação. Execute `claude --debug` para ver o que falhou, depois mude novamente.2511* **`a PreModelSwitch hook failed before answering`** ou **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: a execução do hook terminou sem um veredicto, e Claude Code não trata isso como aprovação. Execute `claude --debug` para ver o que falhou, depois mude novamente.

2480 2512 

2481Antes da v2.1.260, a recusa de plugin gerenciado lia `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code tentou novamente o carregamento do plugin uma vez e depois recusou mudanças posteriores na sessão, mesmo quando sua organização não gerenciava plugins. Reinicie a sessão para executar o carregamento do plugin novamente nessas versões.2513Antes da v2.1.260, a recusa de plugin gerenciado lia `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code tentou novamente o carregamento do plugin uma vez e depois recusou mudanças posteriores na sessão, mesmo quando sua organização não gerenciava plugins. Reinicie a sessão para executar o carregamento do plugin novamente nessas versões.


2484 Não foi possível salvá-lo como seu padrão2516 Não foi possível salvá-lo como seu padrão

2485</h3>2517</h3>

2486 2518 

2487Você escolheu um modelo para salvar como seu padrão, por exemplo com `/model <name>` ou `Enter` no seletor `/model`, e Claude Code não conseguiu escrever a escolha no arquivo de configurações do usuário, `~/.claude/settings.json`. A mudança em si foi aplicada, então a sessão atual é executada no modelo que você escolheu, mas seu padrão não é alterado e a próxima sessão começa no valor antigo.2519Você escolheu um modelo para salvar como seu padrão, por exemplo com `/model <name>` ou `Enter` no seletor `/model`, e Claude Code não conseguiu escrever a escolha em seu arquivo de configurações de usuário, `~/.claude/settings.json`. A mudança em si foi aplicada, então a sessão atual executa no modelo que você escolheu, mas seu padrão não muda e a próxima sessão começa no valor antigo.

2488 2520 

2489```text theme={null}2521```text theme={null}

2490Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)2522Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)


2492 2524 

2493A razão após o caminho do arquivo diz o que falhou:2525A razão após o caminho do arquivo diz o que falhou:

2494 2526 

2495* **`can't be written (<code>)`**: a escrita falhou com o código de erro do sistema operacional entre parênteses, como `EROFS` quando o arquivo, ou o arquivo para o qual ele aponta, fica em um sistema de arquivos que recusa escritas. Torne o arquivo gravável e mude novamente. Se outra ferramenta gera o arquivo, defina a chave `model` nessa ferramenta em vez disso; veja [A change you made in Claude Code is lost in new sessions](/docs/pt/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).2527* **`can't be written (<code>)`**: a escrita falhou com o código de erro do sistema operacional entre parênteses, como `EROFS` quando o arquivo, ou o arquivo para o qual ele aponta, fica em um sistema de arquivos que recusa escritas. Torne o arquivo gravável e mude novamente. Se outra ferramenta gera o arquivo, defina a chave `model` nessa ferramenta; veja [Uma mudança que você fez no Claude Code é perdida em novas sessões](/docs/pt/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

2496* **`isn't valid JSON`**: o arquivo no disco não analisa, e Claude Code o deixa intocado em vez de sobrescrever conteúdo que não consegue ler de volta. Corrija o erro de sintaxe, depois mude novamente; veja [Fix a broken settings file](/docs/pt/settings#fix-a-broken-settings-file).2528* **`isn't valid JSON`**: o arquivo no disco não analisa, e Claude Code o deixa intocado em vez de sobrescrever conteúdo que não consegue ler de volta. Corrija o erro de sintaxe, depois mude novamente; veja [Corrija um arquivo de configurações quebrado](/docs/pt/settings#fix-a-broken-settings-file).

2497 2529 

2498Um aviso terminando `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` significa que a escrita não havia terminado após três segundos. Continua em segundo plano, então o padrão ainda pode ser salvo; verifique qual modelo sua próxima sessão começa ou execute `/model <name>` novamente.2530Um aviso terminando `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` significa que a escrita não havia terminado após três segundos. Continua em segundo plano, então o padrão ainda pode ser salvo; verifique qual modelo sua próxima sessão começa, ou execute `/model <name>` novamente.

2499 2531 

2500Antes da v2.1.265, o aviso dizia que o modelo foi `saved as your default for new sessions` mesmo quando a escrita falhou.2532Antes da v2.1.265, o aviso dizia que o modelo era `saved as your default for new sessions` mesmo quando a escrita falhava.

2501 2533 

2502<h3 id="thinking-type-enabled-is-not-supported-for-this-model">2534<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

2503 thinking.type.enabled não é suportado para este modelo2535 thinking.type.enabled não é suportado para este modelo

2504</h3>2536</h3>

2505 2537 

2506Sua versão do Claude Code é mais antiga que o mínimo para o modelo selecionado. O CLI enviou uma configuração de pensamento que o modelo não aceita mais.2538Sua versão do Claude Code é mais antiga que o mínimo para o modelo selecionado. A CLI enviou uma configuração de pensamento que o modelo não aceita mais.

2507 2539 

2508```text theme={null}2540```text theme={null}

2509API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.2541API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.


2511 2543 

2512**O que fazer:**2544**O que fazer:**

2513 2545 

2514* Execute `claude update` e reinicie Claude Code. Opus 4.7 precisa da v2.1.111 ou posterior. Opus 4.8 precisa da v2.1.154 ou posterior. Sonnet 5 precisa da v2.1.197 ou posterior. Opus 5 precisa da v2.1.219 ou posterior. Opus 5.5 precisa da v2.1.280 ou posterior. Sonnet 5.5 precisa da v2.1.284 ou posterior2546* Execute `claude update` e reinicie Claude Code. Opus 4.7 precisa de v2.1.111 ou posterior. Opus 4.8 precisa de v2.1.154 ou posterior. Sonnet 5 precisa de v2.1.197 ou posterior. Opus 5 precisa de v2.1.219 ou posterior. Opus 5.5 precisa de v2.1.280 ou posterior. Sonnet 5.5 precisa de v2.1.284 ou posterior

2515* Se você não conseguir atualizar, execute `/model` e selecione Opus 4.6 ou Sonnet 4.6 em vez disso2547* Se você não conseguir atualizar, execute `/model` e selecione Opus 4.6 ou Sonnet 4.6

2516* Se você atingir isso no [Agent SDK](/docs/pt/agent-sdk/overview), atualize o pacote SDK em vez disso. Opus 4.8 precisa do SDK TypeScript v0.3.154 ou posterior e SDK Python v0.2.88 ou posterior. Sonnet 5 precisa do SDK TypeScript v0.3.197 ou posterior. Opus 5 precisa do SDK TypeScript v0.3.219 ou posterior. Opus 5.5 precisa do SDK TypeScript v0.3.280 ou posterior. Sonnet 5.5 precisa do SDK TypeScript v0.3.284 ou posterior2548* Se você atingir isso no [Agent SDK](/docs/pt/agent-sdk/overview), atualize o pacote SDK. Opus 4.8 precisa do SDK TypeScript v0.3.154 ou posterior e SDK Python v0.2.88 ou posterior. Sonnet 5 precisa do SDK TypeScript v0.3.197 ou posterior. Opus 5 precisa do SDK TypeScript v0.3.219 ou posterior. Opus 5.5 precisa do SDK TypeScript v0.3.280 ou posterior. Sonnet 5.5 precisa do SDK TypeScript v0.3.284 ou posterior

2517 2549 

2518<h3 id="effort-isnt-available-with-thinking-turned-off">2550<h3 id="effort-isnt-available-with-thinking-turned-off">

2519 Effort não está disponível com o pensamento desativado2551 Esforço não está disponível com pensamento desativado

2520</h3>2552</h3>

2521 2553 

2522Você desativou o [pensamento estendido](/docs/pt/model-config#extended-thinking) e executou em um [nível de esforço](/docs/pt/model-config#adjust-effort-level) acima de `high`. O modelo não aceita essa combinação, então a API rejeitou a solicitação.2554Você desativou [pensamento estendido](/docs/pt/model-config#extended-thinking) e executou em um [nível de esforço](/docs/pt/model-config#adjust-effort-level) acima de `high`. O modelo não aceita essa combinação, então a API rejeitou a solicitação.

2523 2555 

2524```text theme={null}2556```text theme={null}

2525API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)2557API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)


2532* [Abaixe o nível de esforço](/docs/pt/model-config#set-the-effort-level) para `high` ou abaixo.2564* [Abaixe o nível de esforço](/docs/pt/model-config#set-the-effort-level) para `high` ou abaixo.

2533* Ative o pensamento novamente, por exemplo desativando [`MAX_THINKING_TOKENS`](/docs/pt/env-vars) ou removendo [`"alwaysThinkingEnabled": false`](/docs/pt/settings-reference#alwaysthinkingenabled) de suas configurações.2565* Ative o pensamento novamente, por exemplo desativando [`MAX_THINKING_TOKENS`](/docs/pt/env-vars) ou removendo [`"alwaysThinkingEnabled": false`](/docs/pt/settings-reference#alwaysthinkingenabled) de suas configurações.

2534 2566 

2535Antes da v2.1.242, Claude Code mostrava a própria mensagem da API: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` Antes da v2.1.251, Claude Code enviava a solicitação no nível de esforço que você definiu, então Opus 5 rejeitava cada solicitação acima de `high` com pensamento desativado. Claude Code agora envia esforço `high` em vez disso para modelos que sabe rejeitarem a combinação, como Opus 5.2567Antes da v2.1.242, Claude Code mostrava a própria mensagem da API: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` Antes da v2.1.251, Claude Code enviava a solicitação no nível de esforço que você definiu, então Opus 5 rejeitava cada solicitação acima de `high` com pensamento desativado. Claude Code agora envia esforço `high` em vez disso para modelos que ele sabe rejeitam a combinação, como Opus 5.

2536 2568 

2537<h3 id="thinking-budget-exceeds-output-limit">2569<h3 id="thinking-budget-exceeds-output-limit">

2538 O orçamento de pensamento excede o limite de saída2570 Orçamento de pensamento excede o limite de saída

2539</h3>2571</h3>

2540 2572 

2541O orçamento de pensamento estendido configurado excede o comprimento máximo de resposta, então não há espaço deixado para a resposta real.2573O orçamento de pensamento estendido configurado excede o comprimento máximo de resposta, então não há espaço deixado para a resposta real.


2547**O que fazer:**2579**O que fazer:**

2548 2580 

2549* Aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/pt/env-vars) acima do orçamento de pensamento2581* Aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/pt/env-vars) acima do orçamento de pensamento

2550* Veja [Extended thinking](/docs/pt/model-config#extended-thinking) para como o orçamento interage com o comprimento de saída2582* Veja [Pensamento estendido](/docs/pt/model-config#extended-thinking) para como o orçamento interage com o comprimento de saída

2551 2583 

2552<h3 id="tool-use-or-thinking-block-mismatch">2584<h3 id="tool-use-or-thinking-block-mismatch">

2553 Incompatibilidade de bloco de uso de ferramenta ou pensamento2585 Incompatibilidade de bloco de uso de ferramenta ou pensamento


2567 2599 

2568**O que fazer:**2600**O que fazer:**

2569 2601 

2570* Se você está usando Opus 4.7 ou Opus 4.8, execute `claude update` primeiro. Versões antes da v2.1.156 podem acionar esse erro durante o uso normal de ferramentas, e `/rewind` não o limpa.2602* Se você está usando Opus 4.7 ou Opus 4.8, execute `claude update` primeiro. Versões anteriores a v2.1.156 podem acionar esse erro durante o uso normal de ferramentas, e `/rewind` não o limpa.

2571* Execute `/rewind` ou pressione Esc duas vezes para voltar a um checkpoint antes da volta corrompida e continuar de lá. Veja [Checkpointing](/docs/pt/checkpointing) para como checkpoints são criados e restaurados.2603* Execute `/rewind`, ou pressione Esc duas vezes, para voltar a um checkpoint antes da rodada corrompida e continuar de lá. Veja [Checkpointing](/docs/pt/checkpointing) para como checkpoints são criados e restaurados.

2572 2604 

2573<h3 id="invalid-data-in-redacted-thinking-block">2605<h3 id="invalid-data-in-redacted-thinking-block">

2574 Dados inválidos no bloco redacted\_thinking2606 Dados inválidos no bloco redacted\_thinking

2575</h3>2607</h3>

2576 2608 

2577A API recusou a solicitação com um 400 porque não conseguiu aceitar um bloco `redacted_thinking` que uma volta anterior no histórico de conversa carrega.2609A API recusou a solicitação com um 400 porque não conseguiu aceitar um bloco `redacted_thinking` que uma rodada anterior no histórico de conversa carrega.

2578 2610 

2579```text theme={null}2611```text theme={null}

2580API Error: 400 ... Invalid `data` in `redacted_thinking` block2612API Error: 400 ... Invalid `data` in `redacted_thinking` block

2581```2613```

2582 2614 

2583Claude Code deixa o pensamento anterior da conversa fora da solicitação e tenta novamente uma vez, então a sessão continua sem mostrar o erro. Antes da v2.1.282, Claude Code mantinha o bloco recusado, e cada volta posterior falhava com o mesmo erro.2615Claude Code deixa o pensamento anterior da conversa fora da solicitação e tenta novamente uma vez, então a sessão continua sem mostrar o erro. Antes da v2.1.282, Claude Code mantinha o bloco recusado, e cada rodada posterior falhava com o mesmo erro.

2584 2616 

2585**O que fazer:**2617**O que fazer:**

2586 2618 

2587* Se você está na v2.1.281 ou anterior e cada volta falha com esse erro, execute `claude update` e retome a sessão2619* Se você está na v2.1.281 ou anterior e cada rodada falha com esse erro, execute `claude update` e retome a sessão

2588* Se o erro persistir, execute `/clear` para iniciar uma conversa que não carrega o bloco2620* Se o erro persistir, execute `/clear` para iniciar uma conversa que não carrega o bloco

2589 2621 

2590<h3 id="unsupported-tool-content-removed">2622<h3 id="unsupported-tool-content-removed">

2591 Conteúdo de ferramenta não suportado removido2623 Conteúdo de ferramenta não suportado removido

2592</h3>2624</h3>

2593 2625 

2594Quando Claude Code se conecta diretamente à API Anthropic e carrega ou visualiza uma sessão salva, ele remove conteúdo de ferramenta que a API Anthropic não aceita e deixa essa linha onde o conteúdo removido estava entre dois blocos de pensamento:2626Quando Claude Code se conecta diretamente à API Anthropic e carrega ou visualiza uma sessão salva, ele remove conteúdo de ferramenta que a API Anthropic não aceita e deixa esta linha onde o conteúdo removido estava entre dois blocos de pensamento:

2595 2627 

2596```text theme={null}2628```text theme={null}

2597[Unsupported tool content removed]2629[Unsupported tool content removed]

2598```2630```

2599 2631 

2600Tal conteúdo chega a um arquivo de sessão quando algo diferente da API Anthropic responde no formato da API, tipicamente um proxy de terceiros definido através de [`ANTHROPIC_BASE_URL`](/docs/pt/env-vars) que traduz chamadas de ferramentas de outro provedor. Claude Code o remove apenas quando a sessão se conecta diretamente à API Anthropic e carrega o histórico salvo como está quando a sessão é executada através de um proxy ou em outro provedor. Antes da v2.1.246, Claude Code enviava o uso de ferramenta e seu resultado de volta para a API, e cada volta da sessão retomada falhava com um erro 400 como `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`.2632Tal conteúdo chega a um arquivo de sessão quando algo diferente da API Anthropic responde no formato da API, tipicamente um proxy de terceiros definido através de [`ANTHROPIC_BASE_URL`](/docs/pt/env-vars) que traduz chamadas de ferramenta de outro provedor. Claude Code o remove apenas quando a sessão se conecta diretamente à API Anthropic, e carrega o histórico salvo como está quando a sessão executa através de um proxy ou em outro provedor. Antes da v2.1.246, Claude Code enviava o uso de ferramenta e seu resultado de volta para a API, e cada rodada da sessão retomada falhava com um erro 400 como `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`.

2601 2633 

2602**O que fazer:**2634**O que fazer:**

2603 2635 

2604* Nenhuma ação necessária quando você vê a linha de espaço reservado. A sessão continua sem o conteúdo removido.2636* Nenhuma ação necessária quando você vê a linha de espaço reservado. A sessão continua sem o conteúdo removido.

2605* Se cada volta de uma sessão retomada falhar com o erro 400 em vez disso, execute `claude update` e retome a sessão novamente. Versões antes da v2.1.246 não removem o conteúdo.2637* Se cada rodada de uma sessão retomada falha com o erro 400, execute `claude update` e retome a sessão novamente. Versões anteriores a v2.1.246 não removem o conteúdo.

2606 2638 

2607<h3 id="role-system-must-precede-an-assistant-message">2639<h3 id="role-system-must-precede-an-assistant-message">

2608 role 'system' deve preceder uma mensagem 'assistant'2640 role 'system' deve preceder uma mensagem 'assistant'


2614API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...2646API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...

2615```2647```

2616 2648 

2617Claude Code envia algum de seu texto de lembrete e anexo como mensagens de sistema dentro da conversa. Quando a API recusa a posição de uma, Claude Code tenta novamente a solicitação uma vez com esse texto enviado como mensagens de usuário ordinárias em vez disso. As redações de posicionamento irmão da API, como `use the top-level 'system' parameter for the initial system prompt`, recebem a mesma recuperação.2649Claude Code envia parte de seu texto de lembrete e anexo como mensagens de sistema dentro da conversa. Quando a API recusa a posição de uma, Claude Code tenta novamente a solicitação uma vez com esse texto enviado como mensagens de usuário ordinárias. As redações de posicionamento irmão da API, como `use the top-level 'system' parameter for the initial system prompt`, obtêm a mesma recuperação.

2618 2650 

2619Quando o erro aparece, a mensagem de sistema recusada não é uma que Claude Code possa remover. Isso geralmente significa um proxy ou [gateway LLM](/docs/pt/llm-gateway) entre Claude Code e a API adicionou uma mensagem de sistema própria.2651Quando o erro aparece, a mensagem de sistema recusada não é uma que Claude Code possa remover. Isso geralmente significa um proxy ou [gateway LLM](/docs/pt/llm-gateway) entre Claude Code e a API adicionou uma mensagem de sistema própria.

2620 2652 

2621**O que fazer:**2653**O que fazer:**

2622 2654 

2623* Se o erro se repete a cada volta atrás de um proxy ou gateway configurado através de [`ANTHROPIC_BASE_URL`](/docs/pt/env-vars), conecte sem o proxy para confirmar a fonte e relate o erro a quem o opera2655* Se o erro se repete a cada rodada atrás de um proxy ou gateway configurado através de [`ANTHROPIC_BASE_URL`](/docs/pt/env-vars), conecte sem o proxy para confirmar a fonte e relate o erro a quem o opera

2624* Execute `/clear` para iniciar uma conversa nova. Se o erro retornar lá também, a causa está no caminho da solicitação, não na conversa salva.2656* Execute `/clear` para iniciar uma conversa fresca. Se o erro retornar lá também, a causa está no caminho da solicitação, não na conversa salva.

2625 2657 

2626Antes da v2.1.280, Claude Code não reconhecia essa redação, então o erro também aparecia quando a mensagem de sistema recusada era uma que Claude Code mesmo enviou, e cada volta posterior da conversa falhava da mesma forma.2658Antes da v2.1.280, Claude Code não reconhecia essa redação, então o erro também aparecia quando a mensagem de sistema recusada era uma que Claude Code enviou, e cada rodada posterior da conversa falhava da mesma forma.

2627 2659 

2628<h3 id="invalid-encrypted-content-in-search-result-block">2660<h3 id="invalid-encrypted-content-in-search-result-block">

2629 Conteúdo criptografado inválido no bloco search\_result2661 Conteúdo criptografado inválido no bloco search\_result

2630</h3>2662</h3>

2631 2663 

2632A API recusou a solicitação com um 400 porque o histórico de conversa contém conteúdo de busca na web hospedado que ela não consegue descriptografar. A redação nomeia o campo que ela não consegue ler:2664A API recusou a solicitação com um 400 porque o histórico de conversa contém conteúdo de busca na web hospedado que não consegue descriptografar. A redação nomeia o campo que não consegue ler:

2633 2665 

2634```text theme={null}2666```text theme={null}

2635API Error: 400 ... Invalid `encrypted_content` in `search_result` block2667API Error: 400 ... Invalid `encrypted_content` in `search_result` block


2638API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block2670API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block

2639```2671```

2640 2672 

2641Resultados da ferramenta de [busca na web](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) hospedada da API carregam campos criptografados que apenas a API pode ler. A redação `encrypted_stdout` nomeia a saída de um programa de execução de código hospedado que leu tais resultados, que a API também criptografa. A API recusa uma solicitação que reproduz conteúdo que ela não consegue descriptografar, como conteúdo produzido para uma organização diferente.2673Resultados da [ferramenta de busca na web](/docs/pt/tools-reference#websearch-tool-behavior) hospedada da API carregam campos criptografados que apenas a API consegue ler. A redação `encrypted_stdout` nomeia a saída de um programa de execução de código hospedado que leu tais resultados, que a API também criptografa. A API recusa uma solicitação que reproduz conteúdo que não consegue descriptografar, como conteúdo produzido para uma organização diferente.

2642 2674 

2643A própria ferramenta [WebSearch](/docs/pt/tools-reference#websearch-tool-behavior) do Claude Code registra resultados de busca como texto simples, então esses blocos geralmente chegam a uma conversa através de um proxy ou [gateway LLM](/docs/pt/llm-gateway) que executou busca na web hospedada em si.2675A própria ferramenta [WebSearch](/docs/pt/tools-reference#websearch-tool-behavior) do Claude Code registra resultados de busca como texto simples, então esses blocos geralmente chegam a uma conversa através de um proxy ou [gateway LLM](/docs/pt/llm-gateway) que executou busca na web hospedada.

2644 2676 

2645Para as três redações de busca na web, Claude Code deixa as chamadas de busca, resultados e citações fora do que envia e tenta novamente a solicitação uma vez, então a sessão continua sem mostrar o erro. A redação `encrypted_stdout` não tem tal recuperação, então essa mensagem ainda chega a você. Antes da v2.1.282, Claude Code mantinha os blocos de busca na web recusados também, e cada volta posterior e `/compact` falhavam da mesma forma.2677Para as três redações de busca na web, Claude Code deixa as chamadas de busca, resultados e citações fora do que envia e tenta novamente a solicitação uma vez, então a sessão continua sem mostrar o erro. A redação `encrypted_stdout` não tem tal recuperação, então essa mensagem ainda chega a você. Antes da v2.1.282, Claude Code mantinha os blocos de busca na web recusados também, e cada rodada posterior e `/compact` falhava da mesma forma.

2646 2678 

2647**O que fazer:**2679**O que fazer:**

2648 2680 

2649* Se você está na v2.1.281 ou anterior e cada volta falha com uma das redações de busca na web, execute `claude update` e retome a sessão2681* Se você está na v2.1.281 ou anterior e cada rodada falha com uma das redações de busca na web, execute `claude update` e retome a sessão

2650* Se o erro persistir, ou a mensagem nomeia `encrypted_stdout`, execute `/rewind` para voltar a um checkpoint antes da volta que adicionou o conteúdo, ou execute `/clear` para iniciar uma conversa que não carrega2682* Se o erro persistir, ou a mensagem nomear `encrypted_stdout`, execute `/rewind` para voltar a um checkpoint antes da rodada que adicionou o conteúdo, ou execute `/clear` para iniciar uma conversa que não o carrega

2651* Se você executa Claude Code atrás de um proxy ou gateway, relate o erro a quem o opera2683* Se você executa Claude Code atrás de um proxy ou gateway, relate o erro a quem o opera

2652 2684 

2653<h3 id="usage-policy-refusal">2685<h3 id="usage-policy-refusal">


2666 2698 

2667A mensagem nomeia o modelo que recusou, ou `Claude` quando nenhum modelo é registrado.2699A mensagem nomeia o modelo que recusou, ou `Claude` quando nenhum modelo é registrado.

2668 2700 

2669A verificação avalia a conversa completa, não apenas seu prompt mais recente, então enviar uma nova mensagem na mesma sessão geralmente re-aciona a mesma recusa. O mesmo se aplica após sair e reabrir a sessão com `--continue` ou `--resume`, já que a transcrição no disco ainda contém o conteúdo acionador. Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), essa mensagem também cobre solicitações que as medidas de segurança do modelo sinalizaram como um tópico de cibersegurança. Veja [Safety measures flagged a cybersecurity topic](#safety-measures-flagged-a-cybersecurity-topic).2701A verificação avalia a conversa completa, não apenas seu prompt mais recente, então enviar uma nova mensagem na mesma sessão geralmente re-aciona a mesma recusa. O mesmo se aplica após sair e reabrir a sessão com `--continue` ou `--resume`, já que a transcrição no disco ainda contém o conteúdo que aciona. Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), essa mensagem também cobre solicitações que as medidas de segurança do modelo sinalizaram como um tópico de cibersegurança. Veja [Medidas de segurança sinalizaram um tópico de cibersegurança](#safety-measures-flagged-a-cybersecurity-topic).

2670 2702 

2671Antes da v2.1.219, a mensagem lia `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`2703Antes da v2.1.219, a mensagem lia `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`

2672 2704 

2673**O que fazer:**2705**O que fazer:**

2674 2706 

2675* Pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes da volta que acionou a recusa, depois reformule ou tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).2707* Pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes da rodada que acionou a recusa, depois reformule ou tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).

2676* Se você não conseguir identificar qual volta causou, execute `/clear` para iniciar uma conversa nova no mesmo projeto. Sua conversa anterior é preservada no disco e permanece disponível em `/resume`.2708* Se você não conseguir identificar qual rodada causou, execute `/clear` para iniciar uma conversa fresca no mesmo projeto. Sua conversa anterior é preservada no disco e permanece disponível em `/resume`.

2677* Em [modo não interativo](/docs/pt/headless) (`-p`), onde rewind não está disponível, tente novamente com um prompt reformulado em uma nova sessão sem `--continue`. Verificações de política variam por modelo, então alternar para um modelo diferente com `--model` também pode resolver a recusa em alguns casos.2709* Em [modo não interativo](/docs/pt/headless) (`-p`), onde rewind não está disponível, tente novamente com um prompt reformulado em uma nova sessão sem `--continue`. As verificações de política variam por modelo, então mudar para um modelo diferente com `--model` também pode resolver a recusa em alguns casos.

2678 2710 

2679<h3 id="safety-measures-flagged-a-cybersecurity-topic">2711<h3 id="safety-measures-flagged-a-cybersecurity-topic">

2680 As medidas de segurança sinalizaram um tópico de cibersegurança2712 Medidas de segurança sinalizaram um tópico de cibersegurança

2681</h3>2713</h3>

2682 2714 

2683As medidas de segurança do modelo sinalizaram conteúdo na conversa como um tópico de cibersegurança. A mensagem nomeia o modelo que sinalizou a solicitação:2715As medidas de segurança do modelo sinalizaram conteúdo na conversa como um tópico de cibersegurança. A mensagem nomeia o modelo que sinalizou a solicitação:


2686API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2718API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2687```2719```

2688 2720 

2689A mensagem vincula ao [Programa de Verificação Cibernética](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que concede acesso para trabalho de cibersegurança legítimo. Em Opus 5.5 e Sonnet 5.5, a mensagem abre com `<model>'s safeguards flagged this session` em vez disso. Quando a categoria sinalizada tem um modelo de fallback disponível, Claude Code [alterna modelos](/docs/pt/model-config#automatic-model-fallback) em vez de mostrar esse erro.2721A mensagem vincula ao [Programa de Verificação Cibernética](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que concede acesso para trabalho de cibersegurança legítimo. Em Opus 5.5 e Sonnet 5.5, a mensagem abre com `<model>'s safeguards flagged this session` em vez disso. Quando a categoria sinalizada tem um modelo de fallback disponível, Claude Code [muda de modelos](/docs/pt/model-config#automatic-model-fallback) em vez de mostrar esse erro.

2690 2722 

2691Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), uma sinalização de cibersegurança produz a mensagem de [recusa de Política de Uso](#usage-policy-refusal) em vez disso.2723Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Google Cloud's Agent Platform](/docs/pt/google-vertex-ai) e [Microsoft Foundry](/docs/pt/microsoft-foundry), uma sinalização de cibersegurança produz a mensagem de [recusa de Política de Uso](#usage-policy-refusal) em vez disso.

2692 2724 

2693A proteção em si é do lado do servidor e antecede v2.1.203; lançamentos de cliente desde então mudaram apenas a redação da mensagem.2725A proteção em si é do lado do servidor e antecede v2.1.203; lançamentos de cliente desde então mudaram apenas a redação da mensagem.

2694De v2.1.203 a v2.1.218, a mensagem lia `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguido pelo mesmo link do centro de ajuda, e sessões interativas acrescentavam `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`2726De v2.1.203 até v2.1.218, a mensagem lia `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguida pelo mesmo link do centro de ajuda, e sessões interativas acrescentavam `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2695Antes da v2.1.203, lia `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguido por um link de formulário de isenção.2727Antes da v2.1.203, lia `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguida por um link de formulário de isenção.

2696 2728 

2697**O que fazer:**2729**O que fazer:**

2698 2730 

2699* Se seu trabalho requer esse conteúdo, solicite acesso através do [Programa de Verificação Cibernética](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)2731* Se seu trabalho requer este conteúdo, solicite acesso através do [Programa de Verificação Cibernética](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2700* Se sua solicitação não era sobre um tópico de cibersegurança, execute `/feedback` para relatar o falso positivo2732* Se sua solicitação não era sobre um tópico de cibersegurança, execute `/feedback` para relatar o falso positivo

2701* Para continuar trabalhando na mesma sessão, pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes da volta que acionou a sinalização, depois tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).2733* Para continuar trabalhando na mesma sessão, pressione Esc duas vezes ou execute `/rewind` para voltar a um checkpoint antes da rodada que acionou a sinalização, depois tome uma abordagem diferente. Veja [Checkpointing](/docs/pt/checkpointing).

2702 2734 

2703<h2 id="installation-errors">2735<h2 id="installation-errors">

2704 Erros de instalação2736 Erros de instalação


3888 Plugin was not uninstalled3920 Plugin was not uninstalled

3889</h3>3921</h3>

3890 3922 

3891Você executou [`claude plugin uninstall`](/docs/pt/plugins/cli-reference#plugin-uninstall), ou escolheu **Uninstall** na aba **Installed** do `/plugin`, e a desinstalação parou com uma mensagem começando `"<plugin>" was not uninstalled:`.3923Você executou [`claude plugin uninstall`](/docs/pt/plugins/cli-reference#plugin-uninstall), ou escolheu **Uninstall** na aba **Installed** do `/plugin`, e a desinstalação parou com uma mensagem começando `"<plugin>" was not uninstalled:`. Se o texto após esse dois-pontos começar com `installed_plugins.json` em vez de nomear um arquivo de configurações, a causa é conteúdo em `installed_plugins.json` que esta versão de Claude Code não consegue ler. Para esse formulário, consulte [`installed_plugins.json` holds a record this version can't read](/docs/pt/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read).

3892 3924 

3893Quando Claude Code removeu a entrada do plugin de `enabledPlugins` e leu os arquivos de configurações desse escopo novamente, ou o plugin ainda estava ligado lá, ou um arquivo que poderia ligá-lo não conseguiu ser lido ou verificado. Deletar as opções salvas do plugin, segredos e dados enquanto uma entrada de configurações poderia ligá-lo novamente perderia tudo, então a desinstalação para em vez disso: o plugin permanece instalado e nada que ele salvou é deletado.3925Quando Claude Code removeu a entrada do plugin de `enabledPlugins` e leu os arquivos de configurações desse escopo novamente, ou o plugin ainda estava ligado lá, ou um arquivo que poderia ligá-lo não conseguiu ser lido ou verificado. Deletar as opções salvas do plugin, segredos e dados enquanto uma entrada de configurações poderia ligá-lo novamente perderia tudo, então a desinstalação para em vez disso: o plugin permanece instalado e nada que ele salvou é deletado.

3894 3926 

fast-mode.md +2 −0

Details

72 72 

73Digite `/fast on` na sessão para ativar o modo rápido. Ele permanece ativado apenas para essa sessão e não é salvo como seu padrão. Os [requisitos](#requirements) também se aplicam em sessões em nuvem.73Digite `/fast on` na sessão para ativar o modo rápido. Ele permanece ativado apenas para essa sessão e não é salvo como seu padrão. Os [requisitos](#requirements) também se aplicam em sessões em nuvem.

74 74 

75No navegador em [claude.ai/code](https://claude.ai/code), você também pode ativar e desativar o modo rápido no menu de modelo na caixa de mensagem. O menu mostra a alternância quando seu plano inclui modo rápido e o modelo selecionado o suporta.

76 

75<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

76 Entender o tradeoff de custo78 Entender o tradeoff de custo

77</h2>79</h2>

Details

312| [Computer use](/docs/pt/computer-use) | ✓ | ✓ | ✗ | ✗ |312| [Computer use](/docs/pt/computer-use) | ✓ | ✓ | ✗ | ✗ |

313| Dispatch ([Desktop](/docs/pt/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |313| Dispatch ([Desktop](/docs/pt/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |

314| [Code Review](/docs/pt/code-review) | ✗ | ✗ | ✓ | ✓ |314| [Code Review](/docs/pt/code-review) | ✗ | ✗ | ✓ | ✓ |

315| [Artifacts](/docs/pt/artifacts) | ✓ | ✓ | ✓ | Admin-enabled |315| [Artifacts](/docs/pt/artifacts) | ✓ | ✓ | ✓ | ✓ |

316| [Dashboard de análises e métricas de contribuição](/docs/pt/analytics) | ✗ | ✗ | ✓ | ✓ |316| [Dashboard de análises e métricas de contribuição](/docs/pt/analytics) | ✗ | ✗ | ✓ | ✓ |

317| [API Enterprise Analytics](/docs/pt/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |317| [API Enterprise Analytics](/docs/pt/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |

318| [Server-managed settings](/docs/pt/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |318| [Server-managed settings](/docs/pt/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |

Details

43 43 

44Claude Code então faz push de um branch com os arquivos de fluxo de trabalho que você seleciona, já configurados para usar esse secret, e abre o GitHub em seu navegador com um pull request pronto para criar. Crie e faça merge desse pull request, e `@claude` funciona no repositório.44Claude Code então faz push de um branch com os arquivos de fluxo de trabalho que você seleciona, já configurados para usar esse secret, e abre o GitHub em seu navegador com um pull request pronto para criar. Crie e faça merge desse pull request, e `@claude` funciona no repositório.

45 45 

46Para parar a configuração no meio do caminho, pressione Esc. Uma etapa já em andamento é concluída e nenhuma etapa posterior é iniciada. A mensagem de encerramento lista o que já aconteceu no repositório, como um branch enviado ou um secret salvo.

47 

46Se você selecionar o fluxo de trabalho de revisão, Claude publica cada revisão no próprio pull request, como um comentário inline em cada issue que encontra ou como um comentário de resumo quando não encontra nenhum. Claude pula alguns pull requests, como rascunhos. O [exemplo de fluxo de trabalho de revisão](#run-a-skill) usa a mesma skill e os lista. Antes da v2.1.229, Claude escrevia sua revisão apenas no log de execução do fluxo de trabalho.48Se você selecionar o fluxo de trabalho de revisão, Claude publica cada revisão no próprio pull request, como um comentário inline em cada issue que encontra ou como um comentário de resumo quando não encontra nenhum. Claude pula alguns pull requests, como rascunhos. O [exemplo de fluxo de trabalho de revisão](#run-a-skill) usa a mesma skill e os lista. Antes da v2.1.229, Claude escrevia sua revisão apenas no log de execução do fluxo de trabalho.

47 49 

48Para atualizar um fluxo de trabalho de revisão que uma versão anterior gerou, faça um dos seguintes:50Para atualizar um fluxo de trabalho de revisão que uma versão anterior gerou, faça um dos seguintes:

Details

95 Requisitos de rede95 Requisitos de rede

96</h3>96</h3>

97 97 

98Para sessões hospedadas pela Anthropic, sua instância GHES deve ser acessível a partir da infraestrutura Anthropic para que Claude possa clonar repositórios e postar comentários de revisão. Se sua instância GHES estiver atrás de um firewall, coloque na lista de permissões os [endereços IP de saída](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) da Anthropic. Sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#configure-git) clonam de dentro de sua rede, a menos que o executor opte pelo [proxy git Anthropic](/docs/pt/self-hosted-environments-deploy#use-the-anthropic-git-proxy), que busca do lado da Anthropic e precisa da mesma acessibilidade; o [conector SCM](/docs/pt/self-hosted-environments-reference#scm-connector-flags) cobre os fluxos de pré-sessão hospedados, como o seletor de repositório, para um host GHES que é apenas roteável internamente.98Para sessões hospedadas pela Anthropic, sua instância GHES deve ser acessível a partir da infraestrutura Anthropic para que Claude possa clonar repositórios e postar comentários de revisão. Se sua instância GHES estiver atrás de um firewall, coloque na lista de permissões os [endereços IP de saída](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) da Anthropic. Sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#configure-git) clonam de dentro de sua rede, a menos que o executor opte pelo [proxy git Anthropic](/docs/pt/self-hosted-environments-deploy#use-the-anthropic-git-proxy), que busca do lado da Anthropic e precisa da mesma acessibilidade. Os fluxos de pré-sessão hospedados, como o seletor de repositório, executam no lado da Anthropic antes de uma sessão começar. Eles precisam que sua instância GHES seja acessível a partir da infraestrutura Anthropic mesmo quando a sessão é executada em um ambiente auto-hospedado. O [conector SCM](/docs/pt/self-hosted-environments-reference#scm-connector-flags) não está disponível, portanto esses fluxos não conseguem alcançar um host GHES que é apenas roteável internamente.

99 99 

100<h2 id="developer-workflow">100<h2 id="developer-workflow">

101 Fluxo de trabalho do desenvolvedor101 Fluxo de trabalho do desenvolvedor


246 Instância GHES não acessível246 Instância GHES não acessível

247</h3>247</h3>

248 248 

249Se revisões ou sessões web expirarem, sua instância GHES pode não ser acessível a partir da infraestrutura Anthropic. Confirme se seu firewall permite conexões de entrada dos [endereços IP de saída da Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). As sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) acessam GHES de dentro de sua rede, portanto, para elas, verifique o caminho de rede próprio do runner e o [conector SCM](/docs/pt/self-hosted-environments-reference#scm-connector-flags) em vez disso.249Se revisões ou sessões de nuvem hospedadas pela Anthropic expirarem, sua instância GHES pode não ser acessível a partir da infraestrutura Anthropic. Confirme se seu firewall permite conexões de entrada dos [endereços IP de saída da Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). As sessões em um [self-hosted environment](/docs/pt/self-hosted-environments) acessam GHES de dentro de sua rede, portanto, quando uma delas não conseguir clonar, verifique o caminho de rede próprio do runner. Para o seletor de repositório e outros fluxos pré-sessão hospedados, consulte [Network requirements](#network-requirements).

250 250 

251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">

252 Falha ao iniciar a sessão com `Unable to get organization UUID`252 Falha ao iniciar a sessão com `Unable to get organization UUID`

glossary.md +1 −1

Details

56 Artifact56 Artifact

57</h3>57</h3>

58 58 

59Uma página web ao vivo e interativa que Claude Code publica de sua sessão para uma URL privada em claude.ai, para que você possa ver a saída visualmente ou compartilhá-la em vez de ler texto de terminal. A página é atualizada no local quando a sessão republica. Os artefatos que você cria a partir do Claude Code aparecem na mesma galeria que os artefatos criados em conversas do claude.ai. O compartilhamento depende do seu plano: em Pro e Max, um link público que qualquer pessoa pode abrir; em Team e Enterprise, compartilhamento dentro de sua organização, além de links públicos uma vez que um Owner os habilita.59Uma página web ao vivo e interativa que Claude Code publica de sua sessão para uma URL privada em claude.ai, para que você possa ver a saída visualmente ou compartilhá-la em vez de ler texto de terminal. A página é atualizada no local quando a sessão republica. Os artefatos que você cria a partir do Claude Code aparecem na mesma galeria que os artefatos criados em conversas do claude.ai. As opções de compartilhamento dependem do seu plano: consulte [Share an artifact](/docs/pt/artifacts#share-an-artifact).

60 60 

61Saiba mais: [Share session output as artifacts](/docs/pt/artifacts)61Saiba mais: [Share session output as artifacts](/docs/pt/artifacts)

62 62 

Details

315 315 

316Claude Sonnet 5, Opus 4.6 e posteriores, e Sonnet 4.6 suportam a [janela de contexto de 1M de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#context-window-sizes-by-model) na Plataforma de Agentes do Google Cloud. Sonnet 5 sempre é executado com a janela de 1M, sem nenhuma variante `[1m]` para selecionar. Para os outros modelos, Claude Code ativa automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo 1M.316Claude Sonnet 5, Opus 4.6 e posteriores, e Sonnet 4.6 suportam a [janela de contexto de 1M de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#context-window-sizes-by-model) na Plataforma de Agentes do Google Cloud. Sonnet 5 sempre é executado com a janela de 1M, sem nenhuma variante `[1m]` para selecionar. Para os outros modelos, Claude Code ativa automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo 1M.

317 317 

318O [assistente de configuração](#sign-in-with-agent-platform) oferece uma opção de contexto 1M quando fixa modelos. Para ativá-lo para um modelo fixado manualmente em vez disso, acrescente `[1m]` ao ID do modelo. Veja [Fixar modelos para implantações de terceiros](/docs/pt/model-config#pin-models-for-third-party-deployments) para detalhes.318O [assistente de configuração](#sign-in-with-agent-platform) oferece uma opção de contexto 1M quando fixa modelos. Para ativá-lo para um modelo fixado manualmente em vez disso, acrescente `[1m]` ao ID do modelo. Veja [Fixar modelos para implantações de terceiros](/docs/pt/model-config#pin-models-for-third-party-deployments) para detalhes, incluindo como usar a janela 1M sem alterar a fixação.

319 319 

320<h2 id="troubleshooting">320<h2 id="troubleshooting">

321 Resolução de problemas321 Resolução de problemas

hooks.md +209 −209

Details

274 274 

275Hooks de arquivos de configurações, configurações de política gerenciada e plugins também executam dentro de [subagentes](/docs/pt/sub-agents). Quando um subagente chama uma ferramenta, eventos de ferramenta como `PreToolUse` e `PostToolUse` disparam os mesmos hooks configurados que na conversa principal, e a entrada carrega os campos de entrada comuns `agent_id` e `agent_type` [](#common-input-fields) que identificam o subagente.275Hooks de arquivos de configurações, configurações de política gerenciada e plugins também executam dentro de [subagentes](/docs/pt/sub-agents). Quando um subagente chama uma ferramenta, eventos de ferramenta como `PreToolUse` e `PostToolUse` disparam os mesmos hooks configurados que na conversa principal, e a entrada carrega os campos de entrada comuns `agent_id` e `agent_type` [](#common-input-fields) que identificam o subagente.

276 276 

277Administradores corporativos podem usar `allowManagedHooksOnly` para restringir quais hooks executam:277Administradores podem usar [`allowManagedHooksOnly`](/docs/pt/settings-reference#allowmanagedhooksonly) em [configurações gerenciadas](/docs/pt/managed-settings) para restringir quais hooks executam:

278 278 

279* Seus hooks de usuário, projeto, local e plugin são bloqueados. Hooks de plugins forçadamente ativados em configurações gerenciadas `enabledPlugins` são isentos279* Seus hooks de usuário, projeto, local e plugin são bloqueados. Hooks de plugins forçadamente ativados em configurações gerenciadas `enabledPlugins` são isentos

280* Claude Code também restringe suas configurações [`statusLine`](/docs/pt/statusline), [`fileSuggestion`](/docs/pt/settings-reference#filesuggestion) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) às configurações gerenciadas280* Claude Code também restringe suas configurações [`statusLine`](/docs/pt/statusline), [`fileSuggestion`](/docs/pt/settings-reference#filesuggestion) e [`subagentStatusLine`](/docs/pt/statusline#subagent-status-lines) às configurações gerenciadas


1175 SessionStart1175 SessionStart

1176</h3>1176</h3>

1177 1177 

1178Executado 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.1178Executa 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.

1179 1179 

1180SessionStart é executado em cada sessão, portanto 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.1180SessionStart é 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.

1181 1181 

1182O valor do matcher corresponde a como a sessão foi iniciada:1182O valor do matcher corresponde a como a sessão foi iniciada:

1183 1183 


1187| `resume` | `--resume`, `--continue`, ou `/resume` |1187| `resume` | `--resume`, `--continue`, ou `/resume` |

1188| `clear` | `/clear` |1188| `clear` | `/clear` |

1189| `compact` | Compactação automática ou manual |1189| `compact` | Compactação automática ou manual |

1190| `fork` | Uma nova sessão bifurcada de uma existente: `--fork-session` com `--resume` ou `--continue`, a cópia de fundo `/fork`, ou `/branch` |1190| `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) |

1191 1191 

1192Antes da v2.1.214, sessões bifurcadas relatavam fonte `"resume"`.1192Antes da v2.1.214, sessões bifurcadas relatavam fonte `"resume"`.

1193 1193 

1194Quando 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 de Claude ainda espera os hooks terminarem, portanto seu contexto chega a Claude.1194Quando 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.

1195 1195 

1196Quando 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.1196Quando 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.

1197 1197 

1198A 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 a Claude até que terminem.1198A 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.

1199 1199 

1200Durante qualquer espera, pressione `Esc` para levar o prompt de volta para a entrada sem enviá-lo. Os hooks continuam em execução.1200Durante qualquer espera, pressione `Esc` para levar o prompt de volta para a entrada sem enviá-lo. Os hooks continuam em execução.

1201 1201 


1208| Campo | Descrição |1208| Campo | Descrição |

1209| :- | :- |1209| :- | :- |

1210| `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 |1210| `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 |

1211| `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, portanto verifique o campo antes de lê-lo |1211| `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 |

1212| `agent_type` | O nome do agente, presente quando você inicia Claude Code com `claude --agent <name>` |1212| `agent_type` | O nome do agente, presente quando você inicia Claude Code com `claude --agent <name>` |

1213| `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 |1213| `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 |

1214 1214 

1215Quando `source` é `"resume"` ou `"fork"` e a transcrição contém pelo menos uma resposta de 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.1215Quando `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.

1216 1216 

1217| Campo | Descrição |1217| Campo | Descrição |

1218| :- | :- |1218| :- | :- |


1242 Controle de decisão SessionStart1242 Controle de decisão SessionStart

1243</h4>1243</h4>

1244 1244 

1245Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto de 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:1245Claude 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:

1246 1246 

1247| Campo | Descrição |1247| Campo | Descrição |

1248| :- | :- |1248| :- | :- |

1249| `additionalContext` | String adicionada ao contexto de 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 |1249| `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 |

1250| `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 |1250| `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 |

1251| `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"` |1251| `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"` |

1252| `watchPaths` | Array de caminhos absolutos para observar eventos [FileChanged](#filechanged) durante esta sessão |1252| `watchPaths` | Array de caminhos absolutos para observar eventos [FileChanged](#filechanged) durante esta sessão |

1253| `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, portanto skills que o hook instalou estão disponíveis na mesma sessão, começando com o primeiro prompt |1253| `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 |

1254 1254 

1255```json theme={null}1255```json theme={null}

1256{1256{


1262}1262}

1263```1263```

1264 1264 

1265Como stdout simples já chega a Claude para este evento, um hook que apenas carrega contexto pode imprimir para stdout diretamente sem construir JSON. Use o formulário JSON quando você precisar combinar contexto com outros campos como `sessionTitle`.1265Como 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`.

1266 1266 

1267Use `reloadSkills` quando um hook SessionStart instala ou atualiza skills. A descoberta de skills normalmente é executada antes dos hooks SessionStart terminarem, portanto arquivos que o hook escreve em `~/.claude/skills/` ou `.claude/skills/` caso contrário apareceriam apenas na próxima sessão. Este exemplo sincroniza um repositório de skills compartilhado e solicita a nova verificação:1267Use `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:

1268 1268 

1269```bash theme={null}1269```bash theme={null}

1270#!/bin/bash1270#!/bin/bash


1275echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1275echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1276```1276```

1277 1277 

1278A 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, portanto a solicitação `reloadSkills` ainda se aplica.1278A 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.

1279 1279 

1280<h4 id="persist-environment-variables">1280<h4 id="persist-environment-variables">

1281 Persistir variáveis de ambiente1281 Persistir variáveis de ambiente


1324 Setup1324 Setup

1325</h3>1325</h3>

1326 1326 

1327Disparado 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 é disparado 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.1327Dispara 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.

1328 1328 

1329O valor do matcher corresponde à flag CLI que disparou o hook:1329O valor do matcher corresponde à flag CLI que disparou o hook:

1330 1330 


1339 1339 

1340No 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.1340No 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.

1341 1341 

1342Como Setup não é disparado a 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.1342Como 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.

1343 1343 

1344<h4 id="setup-input">1344<h4 id="setup-input">

1345 Entrada Setup1345 Entrada Setup


1361 Controle de decisão Setup1361 Controle de decisão Setup

1362</h4>1362</h4>

1363 1363 

1364Hooks 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 os [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`.1364Hooks 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`.

1365 1365 

1366Hooks 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).1366Hooks 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).

1367 1367 


1369 InstructionsLoaded1369 InstructionsLoaded

1370</h3>1370</h3>

1371 1371 

1372Disparado quando um arquivo `CLAUDE.md` ou `.claude/rules/*.md` é carregado no contexto. Este evento é disparado 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.1372Dispara 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.

1373 1373 

1374Este evento não é disparado quando Claude [lê `AGENTS.md` diretamente](/docs/pt/memory#agents-md) através 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 symlink para ele, como um carregamento normal de `CLAUDE.md`.1374Este 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`.

1375 1375 

1376O 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.1376O 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.

1377 1377 


1385| :- | :- |1385| :- | :- |

1386| `file_path` | Caminho absoluto para o arquivo de instrução que foi carregado |1386| `file_path` | Caminho absoluto para o arquivo de instrução que foi carregado |

1387| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |1387| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |

1388| `load_reason` | Por que o arquivo foi carregado: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` ou `"compact"`. O valor `"compact"` é disparado quando arquivos de instrução são recarregados após um evento de compactação |1388| `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 |

1389| `globs` | Padrões de glob de caminho do frontmatter `paths:` do arquivo, se houver. Presente apenas para carregamentos `path_glob_match` |1389| `globs` | Padrões de glob de caminho do frontmatter `paths:` do arquivo, se houver. Presente apenas para carregamentos `path_glob_match` |

1390| `trigger_file_path` | Caminho para o arquivo cujo acesso disparou este carregamento, para carregamentos preguiçosos |1390| `trigger_file_path` | Caminho para o arquivo cujo acesso disparou este carregamento, para carregamentos preguiçosos |

1391| `parent_file_path` | Caminho para o arquivo de instrução pai que incluiu este, para carregamentos `include` |1391| `parent_file_path` | Caminho para o arquivo de instrução pai que incluiu este, para carregamentos `include` |


1412 UserPromptSubmit1412 UserPromptSubmit

1413</h3>1413</h3>

1414 1414 

1415Executado 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.1415Executa 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.

1416 1416 

1417Hooks `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.1417Hooks `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.

1418 1418 

1419Alé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 a Claude sem esse contexto. A transcrição mostra um aviso nomeando o hook, o tempo limite que foi disparado e que a saída foi descartada.1419Alé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.

1420 1420 

1421Um [hook de callback do 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 um portão de política que não deve falhar aberto. A sessão continua. Antes da v2.1.208, um tempo limite de callback nesse evento terminava o turno com um erro de execução.1421Um 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.

1422 1422 

1423<h4 id="userpromptsubmit-input">1423<h4 id="userpromptsubmit-input">

1424 Entrada UserPromptSubmit1424 Entrada UserPromptSubmit

1425</h4>1425</h4>

1426 1426 

1427Alé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="…">`, portanto leve em conta essas linhas se seu hook analisa o prompt.1427Alé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.

1428 1428 

1429```json theme={null}1429```json theme={null}

1430{1430{


1445 1445 

1446Existem duas maneiras de adicionar contexto à conversa no código de saída 0:1446Existem duas maneiras de adicionar contexto à conversa no código de saída 0:

1447 1447 

1448* **Stdout de texto simples**: Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto de Claude1448* **Stdout de texto simples**: Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto do Claude

1449* **JSON com `additionalContext`**: use o formato JSON abaixo para mais controle. O campo `additionalContext` é adicionado como contexto1449* **JSON com `additionalContext`**: use o formato JSON abaixo para mais controle. O campo `additionalContext` é adicionado como contexto

1450 1450 

1451Nenhum 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).1451Nenhum 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).


1456| :- | :- |1456| :- | :- |

1457| `decision` | `"block"` impede que o prompt seja processado e o apaga do contexto. Omita para permitir que o prompt prossiga |1457| `decision` | `"block"` impede que o prompt seja processado e o apaga do contexto. Omita para permitir que o prompt prossiga |

1458| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não adicionado ao contexto |1458| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não adicionado ao contexto |

1459| `additionalContext` | String adicionada ao contexto de Claude ao lado do prompt enviado. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1459| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt enviado. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

1460| `sessionTitle` | Define o título da sessão. Use para nomear sessões automaticamente com base no conteúdo do prompt |1460| `sessionTitle` | Define o título da sessão. Use para nomear sessões automaticamente com base no conteúdo do prompt |

1461| `suppressOriginalPrompt` | Se `true` quando `decision` é `"block"`, omite o texto do prompt original da mensagem de bloqueio mostrada ao usuário |1461| `suppressOriginalPrompt` | Se `true` quando `decision` é `"block"`, omite o texto do prompt original da mensagem de bloqueio mostrada ao usuário |

1462 1462 


1478 UserPromptExpansion1478 UserPromptExpansion

1479</h3>1479</h3>

1480 1480 

1481Executado quando um comando digitado pelo usuário se expande em um prompt antes de chegar a 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`.1481Executa 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`.

1482 1482 

1483Este evento cobre o caminho que `PreToolUse` não cobre: um hook `PreToolUse` correspondente à ferramenta `Skill` é disparado apenas quando Claude chama a ferramenta, mas digitar `/skillname` diretamente ignora `PreToolUse`. `UserPromptExpansion` é disparado nesse caminho direto.1483Este 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.

1484 1484 

1485Corresponde a `command_name`. Deixe o matcher vazio para disparar em cada comando do tipo prompt.1485Corresponde a `command_name`. Deixe o matcher vazio para disparar em cada comando do tipo prompt.

1486 1486 


1515| :- | :- |1515| :- | :- |

1516| `decision` | `"block"` impede que o comando se expanda. Omita para permitir que prossiga |1516| `decision` | `"block"` impede que o comando se expanda. Omita para permitir que prossiga |

1517| `reason` | Mostrado ao usuário quando `decision` é `"block"` |1517| `reason` | Mostrado ao usuário quando `decision` é `"block"` |

1518| `additionalContext` | String adicionada ao contexto de Claude ao lado do prompt expandido. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1518| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt expandido. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

1519 1519 

1520Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: a mensagem de bloqueio mostra o texto stderr ao usuário.1520Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: a mensagem de bloqueio mostra o texto stderr ao usuário.

1521 1521 


1534 MessageDisplay1534 MessageDisplay

1535</h3>1535</h3>

1536 1536 

1537Executado 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.1537Executa 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.

1538 1538 

1539Use MessageDisplay para:1539Use MessageDisplay para:

1540 1540 

1541* remover markdown para uma exibição mínima1541* remover markdown para uma exibição mínima

1542* transformar o texto que um aplicativo Agent SDK mostra aos seus usuários1542* transformar o texto que um aplicativo Agent SDK mostra aos seus usuários

1543* redactar chaves de API ou nomes de host internos das respostas de Claude1543* redactar chaves de API ou nomes de host internos das respostas do Claude

1544 1544 

1545Claude Code mantém cada lote até que seu hook retorne, portanto 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.1545Claude 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.

1546 1546 

1547MessageDisplay é apenas para exibição: o texto de substituição altera apenas o que é renderizado na tela. A transcrição e o que Claude vê mantêm o texto original, portanto Claude nunca vê a substituição, e o modo detalhado mostra o original. O hook recebe apenas texto de mensagem do assistente, portanto resultados de ferramentas e o texto que você digita são renderizados inalterados.1547MessageDisplay é 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.

1548 1548 

1549MessageDisplay não suporta matchers e é disparado para cada mensagem do assistente que transmite texto; mensagens sem texto, como respostas apenas de chamada de ferramenta, não o disparam.1549MessageDisplay 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.

1550 1550 

1551Em execuções não interativas, incluindo consultas do 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.1551Em 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.

1552 1552 

1553<h4 id="messagedisplay-input">1553<h4 id="messagedisplay-input">

1554 Entrada MessageDisplay1554 Entrada MessageDisplay

1555</h4>1555</h4>

1556 1556 

1557Alé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, portanto 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.1557Alé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.

1558 1558 

1559| Campo | Descrição |1559| Campo | Descrição |

1560| :- | :- |1560| :- | :- |

1561| `turn_id` | UUID do turno atual |1561| `turn_id` | UUID do turno atual |

1562| `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, portanto não pode ser correlacionado com IDs de mensagem de transcrição |1562| `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 |

1563| `index` | Índice baseado em zero deste lote dentro da mensagem |1563| `index` | Índice baseado em zero deste lote dentro da mensagem |

1564| `final` | `true` no último lote da mensagem. Cada mensagem tem exatamente um lote final |1564| `final` | `true` no último lote da mensagem. Cada mensagem tem exatamente um lote final |

1565| `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, portanto trate `final`, não um delta não vazio, como o sinal de fim de mensagem. Em execuções do Agent SDK e `claude -p`, a chamada única carrega a mensagem inteira |1565| `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 |

1566 1566 

1567```json theme={null}1567```json theme={null}

1568{1568{


1588| :- | :- |1588| :- | :- |

1589| `displayContent` | Texto exibido no lugar do delta. Omita para exibir o original |1589| `displayContent` | Texto exibido no lugar do delta. Omita para exibir o original |

1590 1590 

1591Hooks MessageDisplay não têm controle de decisão. Eles não podem bloquear a mensagem ou alterar o que é armazenado na transcrição ou enviado a Claude. Claude Code atua em `displayContent` de sua saída JSON e descarta `systemMessage` e `continue`.1591Hooks 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`.

1592 1592 

1593Este exemplo remove formatação markdown das respostas de 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`.1593Este 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`.

1594 1594 

1595<Tabs>1595<Tabs>

1596 <Tab title="macOS/Linux">1596 <Tab title="macOS/Linux">


1672 PreToolUse1672 PreToolUse

1673</h3>1673</h3>

1674 1674 

1675Executado 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).1675Executa 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).

1676 1676 

1677Para 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, portanto não podem bloquear a escrita.1677Para 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.

1678 1678 

1679<Warning>1679<Warning>

1680 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, portanto nenhum hook PreToolUse é disparado 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.1680 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.

1681 1681 

1682 PreToolUse também não é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).1682 PreToolUse também não dispara para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).

1683</Warning>1683</Warning>

1684 1684 

1685Use [controle de decisão PreToolUse](#pretooluse-decision-control) para permitir, negar, perguntar ou adiar a chamada de ferramenta.1685Use [controle de decisão PreToolUse](#pretooluse-decision-control) para permitir, negar, perguntar ou adiar a chamada de ferramenta.

1686 1686 

1687Um [hook de callback do 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.1687Um 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.

1688 1688 

1689<h4 id="pretooluse-input">1689<h4 id="pretooluse-input">

1690 Entrada PreToolUse1690 Entrada PreToolUse


1692 1692 

1693Além dos [campos de entrada comuns](#common-input-fields), hooks PreToolUse recebem `tool_name`, `tool_input` e `tool_use_id`.1693Além dos [campos de entrada comuns](#common-input-fields), hooks PreToolUse recebem `tool_name`, `tool_input` e `tool_use_id`.

1694 1694 

1695Para 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 do 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.1695Para 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.

1696 1696 

1697Para as ferramentas de arquivo `Write`, `Edit` e `Read`, `tool_input.file_path` é sempre absoluto:1697Para as ferramentas de arquivo `Write`, `Edit` e `Read`, `tool_input.file_path` é sempre absoluto:

1698 1698 

1699* Claude Code expande `~` e caminhos relativos antes dos hooks serem executados, portanto um hook que corresponde a caminhos não pode ser contornado via `~` ou uma ortografia relativa do mesmo caminho1699* 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 caminho

1700* No Windows, o caminho chega com separadores de barra invertida, mesmo quando seu hook é executado sob Git Bash onde `$PWD` parece `/c/project`1700* No Windows, o caminho chega com separadores de barra invertida, mesmo quando seu hook é executado sob Git Bash onde `$PWD` parece `/c/project`

1701* 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 bloquear1701* 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 bloquear

1702* 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 é absoluto1702* 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 é absoluto


1732| `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 |1732| `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 |

1733| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |1733| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1734 1734 

1735Quando um comando Bash altera 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.1735Quando 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.

1736 1736 

1737Seu [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.1737Seu 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.

1738 1738 

1739<Note>1739<Note>

1740 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.1740 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.

1741</Note>1741</Note>

1742 1742 

1743`changedFiles` e `files` listam o que o comando mudou; os campos restantes dizem como completo e confiável essa lista é.1743`changedFiles` e `files` listam o que o comando mudou; os campos restantes dizem como completo e confiável é essa lista.

1744 1744 

1745| Campo | Tipo | Exemplo | Descrição |1745| Campo | Tipo | Exemplo | Descrição |

1746| :- | :- | :- | :- |1746| :- | :- | :- | :- |


1748| `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 |1748| `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 |

1749| `moreFiles` | number | `2` | Contagem de arquivos alterados sem diff em `files` |1749| `moreFiles` | number | `2` | Contagem de arquivos alterados sem diff em `files` |

1750| `unavailable` | boolean | `true` | Definido quando o diff está incompleto ou não pôde ser obtido |1750| `unavailable` | boolean | `true` | Definido quando o diff está incompleto ou não pôde ser obtido |

1751| `skipped` | boolean | `true` | Definido para um comando Git que move a árvore de trabalho, como `git checkout` ou `git stash`, portanto Claude Code não obtém diff |1751| `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 |

1752| `shared` | boolean | `true` | Definido quando outra chamada de ferramenta Bash, como a de um subagente, foi executada no mesmo repositório ao mesmo tempo, portanto algumas mudanças listadas podem ser desse comando |1752| `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 |

1753 1753 

1754<a id="powershell" />1754<a id="powershell" />

1755 1755 


1770 1770 

1771Corresponda a `Bash|PowerShell` em hooks que inspecionam comandos de shell, para que cubram ambas as ferramentas:1771Corresponda a `Bash|PowerShell` em hooks que inspecionam comandos de shell, para que cubram ambas as ferramentas:

1772 1772 

1773* No Windows, onde quer que a ferramenta PowerShell esteja habilitada, Claude trata o PowerShell como o shell primário e roteia comandos de shell através dele.1773* 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.

1774* No Windows sem Git Bash, a ferramenta é habilitada automaticamente e Claude Code não registra a ferramenta Bash.1774* No Windows sem Git Bash, a ferramenta é habilitada automaticamente e Claude Code não registra a ferramenta Bash.

1775* Um hook que corresponde apenas a `Bash` nunca é disparado lá.1775* Um hook que corresponde apenas a `Bash` nunca dispara lá.

1776 1776 

1777<h5 id="write">1777<h5 id="write">

1778 Write1778 Write


1872| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |1872| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |

1873| `model` | string | `"sonnet"` | Alias de modelo opcional para sobrescrever o padrão |1873| `model` | string | `"sonnet"` | Alias de modelo opcional para sobrescrever o padrão |

1874 1874 

1875Quando 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:1875Quando 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:

1876 1876 

1877| Campo | Tipo | Exemplo | Descrição |1877| Campo | Tipo | Exemplo | Descrição |

1878| :- | :- | :- | :- |1878| :- | :- | :- | :- |

1879| `status` | string | `"completed"` | `"completed"` para subagentes em primeiro plano, `"async_launched"` para subagentes em segundo plano. A partir da v2.1.198, subagentes são executados em segundo plano por padrão, portanto um `run_in_background` omitido também produz `"async_launched"` |1879| `status` | string | `"completed"` | `"completed"` para subagentes em primeiro plano, `"async_launched"` para subagentes em segundo plano. A partir da v2.1.198, subagentes são executados em segundo plano por padrão, então um `run_in_background` omitido também produz `"async_launched"` |

1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para a execução do subagente |1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para a execução do subagente |

1881| `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 hand-back em seu lugar |1881| `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 |

1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo em que o subagente começou, que pode diferir do modelo solicitado |1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo em que o subagente começou, que pode diferir do modelo solicitado |

1883| `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 no meio da execução. Requer Claude Code v2.1.212 ou posterior |1883| `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 |

1884| `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 |1884| `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 |

1885| `totalDurationMs` | number | `48211` | Duração de tempo real da execução do subagente |1885| `totalDurationMs` | number | `48211` | Duração de tempo real da execução do subagente |

1886| `totalToolUseCount` | number | `7` | Contagem de chamadas de ferramenta que o subagente fez |1886| `totalToolUseCount` | number | `7` | Contagem de chamadas de ferramenta que o subagente fez |

1887| `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` |1887| `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` |

1888 1888 

1889No 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 hand-back 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`.1889No 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`.

1890 1890 

1891Para subagentes em segundo plano, a ferramenta retorna quando a tarefa se move para o segundo plano, portanto `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 no meio da execução retorna nessa transição. Ele tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel`.1891Para 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`.

1892 1892 

1893Em 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, portanto 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.1893Em 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.

1894 1894 

1895<a id="askuserquestion" />1895<a id="askuserquestion" />

1896 1896 


1903| Campo | Tipo | Exemplo | Descrição |1903| Campo | Tipo | Exemplo | Descrição |

1904| :- | :- | :- | :- |1904| :- | :- | :- | :- |

1905| `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 |1905| `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 |

1906| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapeia texto de pergunta para o 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 |1906| `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 |

1907 1907 

1908<h5 id="exitplanmode">1908<h5 id="exitplanmode">

1909 ExitPlanMode1909 ExitPlanMode

1910</h5>1910</h5>

1911 1911 

1912Apresenta 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, portanto 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.1912Apresenta 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.

1913 1913 

1914| Campo | Tipo | Exemplo | Descrição |1914| Campo | Tipo | Exemplo | Descrição |

1915| :- | :- | :- | :- |1915| :- | :- | :- | :- |


1928| Campo | Descrição |1928| Campo | Descrição |

1929| :- | :- |1929| :- | :- |

1930| `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 |1930| `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 |

1931| `permissionDecisionReason` | Para `"ask"`, mostrado ao usuário mas não a Claude. Para `"deny"`, mostrado a Claude. Para `"allow"` e `"defer"`, escrito apenas no [log de depuração](#debug-hooks) |1931| `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) |

1932| `updatedInput` | Modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, portanto inclua campos inalterados ao lado dos modificados. Claude Code avalia regras de permissão e a elegibilidade de [auto-fundo](/docs/pt/tools-reference#background-commands) 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 |1932| `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#background-commands) 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 |

1933| `additionalContext` | String adicionada ao contexto de Claude ao lado do resultado da ferramenta. Ignorado quando `permissionDecision` é `"defer"`. Veja [Adicionar contexto para Claude](#add-context-for-claude) |1933| `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) |

1934 1934 

1935Quando vários hooks PreToolUse retornam decisões diferentes, a precedência é `deny` > `defer` > `ask` > `allow`.1935Quando vários hooks PreToolUse retornam decisões diferentes, a precedência é `deny` > `defer` > `ask` > `allow`.

1936 1936 


1956 1956 

1957<span id="allow-with-updatedinput" />1957<span id="allow-with-updatedinput" />

1958 1958 

1959Em [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`, repita o array `questions` original e adicione um objeto [`answers`](#askuserquestion) mapeando o texto de cada pergunta para a resposta escolhida.1959Em [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.

1960 1960 

1961A 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.1961A 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.

1962 1962 


1970 1970 

1971`"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.1971`"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.

1972 1972 

1973A 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`, portanto comece a execução com uma. A viagem de ida e volta funciona assim:1973A 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:

1974 1974 

19751. Claude chama `AskUserQuestion`. O hook `PreToolUse` é disparado.19751. Claude chama `AskUserQuestion`. O hook `PreToolUse` dispara.

19762. 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.19762. 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.

19773. 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.19773. 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.

19784. 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.19784. 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.


1994}1994}

1995```1995```

1996 1996 

1997Nã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 deleta 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 retornando eventualmente `"allow"` ou `"deny"` do hook.1997Nã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.

1998 1998 

1999`"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.1999`"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.

2000 2000 

2001Se 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 ser disparado. 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.2001Se 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.

2002 2002 

2003<Note>2003<Note>

2004 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.2004 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.

2005 2005 

2006 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, portanto passe `--permission-mode` ou `--dangerously-skip-permissions` novamente se a sessão adiada usou uma. 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).2006 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).

2007</Note>2007</Note>

2008 2008 

2009<h3 id="permissionrequest">2009<h3 id="permissionrequest">

2010 PermissionRequest2010 PermissionRequest

2011</h3>2011</h3>

2012 2012 

2013Executado quando Claude Code está prestes a pedir permissão para usar uma ferramenta. Em sessões que não podem mostrar um prompt, como subagentes de fundo em [modo não interativo](/docs/pt/headless), Claude Code ainda executa esses hooks, e se nenhum hook retornar uma decisão, ele nega a chamada de ferramenta.2013Executa quando Claude Code está prestes a pedir permissão para usar uma ferramenta. Em sessões que não podem mostrar um prompt, como subagentes de fundo em [modo não interativo](/docs/pt/headless), Claude Code ainda executa esses hooks, e se nenhum hook retornar uma decisão, ele nega a chamada de ferramenta.

2014Use [controle de decisão PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.2014Use [controle de decisão PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.

2015 2015 

2016Use este evento quando você precisar 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.2016Use 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.

2017 2017 

2018Claude 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`.2018Claude 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`.

2019 2019 


2023 Entrada PermissionRequest2023 Entrada PermissionRequest

2024</h4>2024</h4>

2025 2025 

2026Hooks 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 alterar o modo de permissão.2026Hooks 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.

2027 2027 

2028O 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 permanece 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 [**Yes, and switch to auto mode**](/docs/pt/permission-modes#switch-permission-modes), que altera o modo de permissão diretamente em vez de através de uma atualização de permissão.2028O 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.

2029 2029 

2030Hooks 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 é disparado para [`EndConversation`](/docs/pt/tools-reference#endconversation-tool-behavior).2030Hooks 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).

2031 2031 

2032```json theme={null}2032```json theme={null}

2033{2033{


2060 2060 

2061| Campo | Descrição |2061| Campo | Descrição |

2062| :- | :- |2062| :- | :- |

2063| `behavior` | `"allow"` concede a permissão, `"deny"` a nega. [Regras de negação e pergunta](/docs/pt/permissions#manage-permissions) ainda são avaliadas, portanto um hook retornando `"allow"` não sobrescreve uma regra de negação correspondente |2063| `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 |

2064| `updatedInput` | Para `"allow"` apenas: modifica os parâmetros de entrada da ferramenta antes da execução. Substitui o objeto de entrada inteiro, portanto inclua campos inalterados ao lado dos modificados. A entrada modificada é re-avaliada contra regras de negação e pergunta |2064| `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 |

2065| `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 alterar o modo de permissão da sessão |2065| `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 |

2066| `message` | Para `"deny"` apenas: diz por que a permissão foi negada |2066| `message` | Para `"deny"` apenas: diz ao Claude por que a permissão foi negada |

2067| `interrupt` | Para `"deny"` apenas: se `true`, para Claude |2067| `interrupt` | Para `"deny"` apenas: se `true`, para Claude |

2068 2068 

2069Um 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.2069Um 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.


2093| `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"` |2093| `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"` |

2094| `replaceRules` | `rules`, `behavior`, `destination` | Substitui todas as regras do `behavior` dado no `destination` pelas `rules` fornecidas |2094| `replaceRules` | `rules`, `behavior`, `destination` | Substitui todas as regras do `behavior` dado no `destination` pelas `rules` fornecidas |

2095| `removeRules` | `rules`, `behavior`, `destination` | Remove regras correspondentes do `behavior` dado |2095| `removeRules` | `rules`, `behavior`, `destination` | Remove regras correspondentes do `behavior` dado |

2096| `setMode` | `mode`, `destination` | Altera 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 |2096| `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 |

2097| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |2097| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |

2098| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |2098| `removeDirectories` | `directories`, `destination` | Remove diretórios de trabalho |

2099 2099 


2103 `bypassPermissions` nunca é persistido como `defaultMode` independentemente de `destination`.2103 `bypassPermissions` nunca é persistido como `defaultMode` independentemente de `destination`.

2104</Note>2104</Note>

2105 2105 

2106O campo `destination` em cada entrada determina se a mudança permanece na memória ou persiste em um arquivo de configurações.2106O campo `destination` em cada entrada determina se a mudança fica na memória ou persiste em um arquivo de configurações.

2107 2107 

2108| `destination` | Escreve para |2108| `destination` | Escreve para |

2109| :- | :- |2109| :- | :- |


2118 PostToolUse2118 PostToolUse

2119</h3>2119</h3>

2120 2120 

2121Executado imediatamente após uma ferramenta ser concluída com sucesso.2121Executa imediatamente após uma ferramenta ser concluída com sucesso.

2122 2122 

2123Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2123Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.

2124 2124 


2131 Entrada PostToolUse2131 Entrada PostToolUse

2132</h4>2132</h4>

2133 2133 

2134Hooks `PostToolUse` são disparados 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 ferramenta de arquivo chegam no mesmo formato que para [PreToolUse](#pretooluse-input): sempre absoluto, com os separadores nativos da plataforma, portanto barras invertidas no Windows. Para uma ferramenta MCP, a entrada também carrega o objeto [`mcp_server`](#pretooluse-input).2134Hooks `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).

2135 2135 

2136```json theme={null}2136```json theme={null}

2137{2137{


2162 Controle de decisão PostToolUse2162 Controle de decisão PostToolUse

2163</h4>2163</h4>

2164 2164 

2165Hooks `PostToolUse` podem fornecer feedback a 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:2165Hooks `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:

2166 2166 

2167| Campo | Descrição |2167| Campo | Descrição |

2168| :- | :- |2168| :- | :- |

2169| `decision` | `"block"` adiciona o `reason` ao lado do resultado da ferramenta. Claude ainda vê a saída original; para substituí-la, use `updatedToolOutput` |2169| `decision` | `"block"` adiciona o `reason` ao lado do resultado da ferramenta. Claude ainda vê a saída original; para substituí-la, use `updatedToolOutput` |

2170| `reason` | Explicação mostrada a Claude quando `decision` é `"block"` |2170| `reason` | Explicação mostrada ao Claude quando `decision` é `"block"` |

2171| `additionalContext` | String adicionada ao contexto de Claude ao lado do resultado da ferramenta. Veja [Adicionar contexto para Claude](#add-context-for-claude) |2171| `additionalContext` | String adicionada ao contexto do Claude junto com o resultado da ferramenta. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

2172| `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 |2172| `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 |

2173| `updatedToolOutput` | Substitui a saída da ferramenta pelo valor fornecido antes de ser enviado a Claude. O valor deve corresponder à forma de saída da ferramenta |2173| `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 |

2174| `updatedMCPToolOutput` | Substitui a saída para [ferramentas MCP](#match-mcp-tools) apenas. Prefira `updatedToolOutput`, que funciona para todas as ferramentas |2174| `updatedMCPToolOutput` | Substitui a saída para [ferramentas MCP](#match-mcp-tools) apenas. Prefira `updatedToolOutput`, que funciona para todas as ferramentas |

2175 2175 

2176O exemplo abaixo substitui a saída de uma chamada `Bash`. O valor de substituição corresponde à forma de saída da ferramenta `Bash`:2176O exemplo abaixo substitui a saída de uma chamada `Bash`. O valor de substituição corresponde à forma de saída da ferramenta `Bash`:


2191```2191```

2192 2192 

2193<Warning>2193<Warning>

2194 `updatedToolOutput` apenas altera o que Claude vê. A ferramenta já foi executada no momento em que o hook é disparado, portanto qualquer arquivo escrito, comando executado ou solicitação de rede enviada já teve efeito. Telemetria como spans de ferramenta 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.2194 `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.

2195 2195 

2196 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 ferramenta 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.2196 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.

2197</Warning>2197</Warning>

2198 2198 

2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2200 Anotar um resultado para o classificador de modo automático2200 Anotar um resultado para o classificador de modo automático

2201</h4>2201</h4>

2202 2202 

2203Retorne `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), portanto este campo é a forma suportada de contar algo sobre o que uma chamada retornou antes de revisar ações posteriores. O campo requer Claude Code v2.1.236 ou posterior.2203Retorne `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.

2204 2204 

2205O exemplo abaixo diz ao classificador de onde a saída de uma consulta veio:2205O exemplo abaixo diz ao classificador de onde a saída de uma consulta veio:

2206 2206 


2216Quanto peso o classificador dá à nota depende de onde você configurou o hook:2216Quanto peso o classificador dá à nota depende de onde você configurou o hook:

2217 2217 

2218* **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 conversa2218* **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 conversa

2219* **Callbacks do Agent SDK em processo**: quando um aplicativo que incorpora Claude Code registra o hook como um [callback do 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 verificada2219* **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 verificada

2220 2220 

2221Claude Code aplica esses limites ao entregar a nota:2221Claude Code aplica esses limites ao entregar a nota:

2222 2222 

2223* **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 chamada2223* **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 chamada

2224* **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 ferramenta2224* **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 ferramenta

2225* **Chamadas que o classificador não registra**: a transcrição do classificador omite pesquisas somente leitura como leituras de arquivo e pesquisas. Claude Code descarta uma nota anexada a uma dessas chamadas2225* **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 chamadas

2226* **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ída2226* **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ída

2227 2227 

2228<Warning>2228<Warning>

2229 O classificador lê conteúdo que você coloca em `classifierContext` como informação do aplicativo hospedando a sessão, portanto não copie saída de ferramenta não confiável ou texto de terceiros nele. Mantenha a nota para uma breve afirmação 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.2229 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.

2230</Warning>2230</Warning>

2231 2231 

2232<h3 id="posttoolusefailure">2232<h3 id="posttoolusefailure">

2233 PostToolUseFailure2233 PostToolUseFailure

2234</h3>2234</h3>

2235 2235 

2236Executado 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 a Claude.2236Executa 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.

2237 2237 

2238Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2238Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.

2239 2239 

2240<Note>2240<Note>

2241 Este evento não é disparado 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, portanto não disparam nem `PreToolUse` nem este evento. Negações de permissão disparam `PreToolUse` mas não este evento; veja [PermissionDenied](#permissiondenied).2241 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).

2242</Note>2242</Note>

2243 2243 

2244<h4 id="posttoolusefailure-input">2244<h4 id="posttoolusefailure-input">


2269| Campo | Descrição |2269| Campo | Descrição |

2270| :- | :- |2270| :- | :- |

2271| `error` | String descrevendo o que deu errado. O formato depende da ferramenta que falhou |2271| `error` | String descrevendo o que deu errado. O formato depende da ferramenta que falhou |

2272| `is_interrupt` | Booleano opcional. True quando a falha chegou a Claude Code como uma interrupção 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 |2272| `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 |

2273| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui tempo gasto em prompts de permissão e hooks PreToolUse |2273| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui tempo gasto em prompts de permissão e hooks PreToolUse |

2274 2274 

2275A 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.2275A 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.

2276 2276 

2277* 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 intercalados2277* 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 intercalados

2278* 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 shell2278* 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 shell

2279* Claude Code trunca no meio strings longas em torno de um marcador `... [N characters truncated] ...`, e pode inserir linhas de sua própria conta, como `Command timed out after 2m 0s`2279* 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`

2280 2280 

2281<h4 id="posttoolusefailure-decision-control">2281<h4 id="posttoolusefailure-decision-control">

2282 Controle de decisão PostToolUseFailure2282 Controle de decisão PostToolUseFailure

2283</h4>2283</h4>

2284 2284 

2285Hooks `PostToolUseFailure` podem fornecer contexto a 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:2285Hooks `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:

2286 2286 

2287| Campo | Descrição |2287| Campo | Descrição |

2288| :- | :- |2288| :- | :- |

2289| `additionalContext` | String adicionada ao contexto de Claude ao lado do erro. Veja [Adicionar contexto para Claude](#add-context-for-claude) |2289| `additionalContext` | String adicionada ao contexto do Claude junto com o erro. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

2290 2290 

2291```json theme={null}2291```json theme={null}

2292{2292{


2301 PostToolBatch2301 PostToolBatch

2302</h3>2302</h3>

2303 2303 

2304Executado 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` é disparado uma vez por ferramenta, o que significa que é disparado simultaneamente quando Claude faz chamadas de ferramenta paralelas. `PostToolBatch` é disparado exatamente uma vez com o lote completo, portanto é 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.2304Executa 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.

2305 2305 

2306<h4 id="posttoolbatch-input">2306<h4 id="posttoolbatch-input">

2307 Entrada PostToolBatch2307 Entrada PostToolBatch


2333}2333}

2334```2334```

2335 2335 

2336`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, portanto analise apenas os campos que você precisa.2336`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.

2337 2337 

2338<Note>2338<Note>

2339 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ê.2339 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ê.


2358}2358}

2359```2359```

2360 2360 

2361Retornar `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 permanece na conversa, portanto Claude a vê quando a conversa continua.2361Retornar `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.

2362 2362 

2363<h3 id="permissiondenied">2363<h3 id="permissiondenied">

2364 PermissionDenied2364 PermissionDenied

2365</h3>2365</h3>

2366 2366 

2367Executado 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 é disparado 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.2367Executa 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.

2368 2368 

2369Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.2369Corresponde ao nome da ferramenta, mesmos valores que PreToolUse.

2370 2370 


2418 Notification2418 Notification

2419</h3>2419</h3>

2420 2420 

2421Executado 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.2421Executa 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.

2422 2422 

2423Você recebe esses eventos de hook mesmo com notificações de desktop desativadas: a configuração `preferredNotifChannel`, incluindo `notifications_disabled`, altera apenas como você é alertado, não se seu hook é executado.2423Você 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.

2424 2424 

2425| Matcher | Quando é disparado |2425| Matcher | Quando é disparado |

2426| :- | :- |2426| :- | :- |

2427| `permission_prompt` | Claude precisa de sua permissã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 |2427| `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 |

2428| `idle_prompt` | Claude terminou de responder cerca de 60 segundos atrás e você não digitou desde então |2428| `idle_prompt` | Claude terminou de responder cerca de 60 segundos atrás e você não digitou desde então |

2429| `auth_success` | Autenticação é concluída |2429| `auth_success` | Autenticação é concluída |

2430| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digitou por cerca de seis segundos |2430| `elicitation_dialog` | Um servidor MCP abre um formulário de elicitação e você não digitou por cerca de seis segundos |

2431| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL do navegador e você não digitou por cerca de seis segundos |2431| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL do navegador e você não digitou por cerca de seis segundos |

2432| `elicitation_complete` | Um servidor MCP relata que uma [elicitação de modo URL](#elicitation-input) está completa |2432| `elicitation_complete` | Um servidor MCP relata que uma [elicitação de modo URL](#elicitation-input) está completa |

2433| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta para o servidor |2433| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta para o servidor |

2434| `agent_needs_input` | Uma sessão de fundo começa a esperar sua entrada enquanto [agent view](/docs/pt/agent-view) está aberta em um terminal, ou a sessão atual pede uma pergunta de configuração de terminal de um [colega de equipe de agente](/docs/pt/agent-teams#choose-a-display-mode) e você não digitou por cerca de seis segundos |2434| `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 |

2435| `agent_completed` | Uma sessão de fundo termina ou falha. Disparado apenas enquanto [agent view](/docs/pt/agent-view) está aberta em um terminal |2435| `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 |

2436| `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 trocar 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) |2436| `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) |

2437| `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 |2437| `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 |

2438| `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 no futuro 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 é disparado quando você pressiona `Esc` ou `Ctrl+C`, ou escolhe **Don't continue automatically** |2438| `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** |

2439 2439 

2440Os tipos `agent_needs_input` e `agent_completed` requerem Claude Code v2.1.198 ou posterior.2440Os tipos `agent_needs_input` e `agent_completed` requerem Claude Code v2.1.198 ou posterior.

2441 2441 


2443 2443 

2444Em 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.2444Em 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.

2445 2445 

2446`agent_needs_input` para a pergunta de configuração de terminal de um colega requer Claude Code v2.1.248 ou posterior.2446`agent_needs_input` para a pergunta de configuração de terminal de um colega de equipe requer Claude Code v2.1.248 ou posterior.

2447 2447 

2448<Note>2448<Note>

2449 Os tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog` e `elicitation_url_dialog` compartilham seu tempo com notificações de desktop, portanto em sessões de terminal você só os vê quando parece que você está longe do terminal:2449 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:

2450 2450 

2451 * 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.2451 * 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.

2452 * 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_*` é disparado em vez disso.2452 * 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.

2453 * 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.2453 * 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.

2454 2454 

2455 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.2455 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.


2461* Se você ou um hook [PermissionRequest](#permissionrequest) responder mais cedo, Claude Code não executa `permission_prompt`.2461* Se você ou um hook [PermissionRequest](#permissionrequest) responder mais cedo, Claude Code não executa `permission_prompt`.

2462* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.2462* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.

2463 2463 

2464Antes da v2.1.233, `permission_prompt` não era disparado nessas sessões.2464Antes da v2.1.233, `permission_prompt` não disparava nessas sessões.

2465 2465 

2466Use 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á inativo:2466Use 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:

2467 2467 

2468```json theme={null}2468```json theme={null}

2469{2469{


2496 Entrada Notification2496 Entrada Notification

2497</h4>2497</h4>

2498 2498 

2499Alé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 foi disparado.2499Alé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.

2500 2500 

2501```json theme={null}2501```json theme={null}

2502{2502{


2510}2510}

2511```2511```

2512 2512 

2513Hooks 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 é no que o exemplo de notificação de desktop se baseia. Hooks Notification são destinados a efeitos colaterais como encaminhar a notificação para um serviço externo.2513Hooks 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.

2514 2514 

2515<h3 id="subagentstart">2515<h3 id="subagentstart">

2516 SubagentStart2516 SubagentStart

2517</h3>2517</h3>

2518 2518 

2519Executado 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](/docs/pt/agent-teams) em processo manipula 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.2519Executa 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.

2520 2520 

2521Para 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, portanto ancor o matcher com `^` e `$` para uma correspondência exata: `^my-plugin:reviewer$`.2521Para 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$`.

2522 2522 

2523<h4 id="subagentstart-input">2523<h4 id="subagentstart-input">

2524 Entrada SubagentStart2524 Entrada SubagentStart


2558 SubagentStop2558 SubagentStop

2559</h3>2559</h3>

2560 2560 

2561Executado quando um subagente de Claude Code terminou de responder. Corresponde ao tipo de agente, mesmos valores que SubagentStart.2561Executa quando um subagente Claude Code terminou de responder. Corresponde ao tipo de agente, mesmos valores que SubagentStart.

2562 2562 

2563<h4 id="subagentstop-input">2563<h4 id="subagentstop-input">

2564 Entrada SubagentStop2564 Entrada SubagentStop

2565</h4>2565</h4>

2566 2566 

2567Alé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, portanto hooks podem acessá-lo sem analisar o arquivo de transcrição.2567Alé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.

2568 2568 

2569Nem 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 é disparado 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.2569Nem 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.

2570 2570 

2571Um `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.2571Um `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.

2572 2572 


2597 TaskCreated2597 TaskCreated

2598</h3>2598</h3>

2599 2599 

2600Executado 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 é disparado.2600Executa 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.

2601 2601 

2602Hooks TaskCreated não suportam matchers e são disparados em cada ocorrência.2602Hooks TaskCreated não suportam matchers e disparam em cada ocorrência.

2603 2603 

2604<h4 id="taskcreated-input">2604<h4 id="taskcreated-input">

2605 Entrada TaskCreated2605 Entrada TaskCreated


2626| `task_id` | Identificador da tarefa sendo criada |2626| `task_id` | Identificador da tarefa sendo criada |

2627| `task_subject` | Título da tarefa |2627| `task_subject` | Título da tarefa |

2628| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2628| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2629| `teammate_name` | Nome do colega criando a tarefa. Pode estar ausente |2629| `teammate_name` | Nome do colega de equipe criando a tarefa. Pode estar ausente |

2630| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |2630| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2631 2631 

2632<h4 id="taskcreated-decision-control">2632<h4 id="taskcreated-decision-control">

2633 Controle de decisão TaskCreated2633 Controle de decisão TaskCreated

2634</h4>2634</h4>

2635 2635 

2636Um hook TaskCreated pode bloquear a criação de duas maneiras. De qualquer forma, Claude Code deleta a tarefa e retorna sua mensagem a Claude como o erro da ferramenta. Claude Code ignora `continue: false` deste evento e Claude continua trabalhando.2636Um 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.

2637 2637 

2638* **Código de saída 2**: Claude Code retorna o texto stderr como a mensagem.2638* **Código de saída 2**: Claude Code retorna o texto stderr como a mensagem.

2639* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code retorna `reason` como a mensagem.2639* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code retorna `reason` como a mensagem.


2657 TaskCompleted2657 TaskCompleted

2658</h3>2658</h3>

2659 2659 

2660Executado 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 através da ferramenta TaskUpdate, ou quando um [colega de equipe de agente](/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 que uma tarefa possa fechar.2660Executa 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.

2661 2661 

2662Hooks TaskCompleted não suportam matchers e são disparados em cada ocorrência.2662Hooks TaskCompleted não suportam matchers e disparam em cada ocorrência.

2663 2663 

2664<h4 id="taskcompleted-input">2664<h4 id="taskcompleted-input">

2665 Entrada TaskCompleted2665 Entrada TaskCompleted


2687| `task_id` | Identificador da tarefa sendo concluída |2687| `task_id` | Identificador da tarefa sendo concluída |

2688| `task_subject` | Título da tarefa |2688| `task_subject` | Título da tarefa |

2689| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2689| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2690| `teammate_name` | Nome do colega concluindo a tarefa. Pode estar ausente |2690| `teammate_name` | Nome do colega de equipe concluindo a tarefa. Pode estar ausente |

2691| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |2691| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2692 2692 

2693<h4 id="taskcompleted-decision-control">2693<h4 id="taskcompleted-decision-control">


2697Hooks TaskCompleted suportam duas maneiras de controlar a conclusão da tarefa:2697Hooks TaskCompleted suportam duas maneiras de controlar a conclusão da tarefa:

2698 2698 

2699* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem stderr é retornada ao modelo como feedback.2699* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem stderr é retornada ao modelo como feedback.

2700* **JSON `{"continue": false, "stopReason": "..."}`**: quando um colega terminando seu turno disparou o evento, para o colega 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.2700* **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.

2701 2701 

2702Este exemplo executa testes e bloqueia a conclusão da tarefa se falharem:2702Este exemplo executa testes e bloqueia a conclusão da tarefa se falharem:

2703 2703 


2719 Stop2719 Stop

2720</h3>2720</h3>

2721 2721 

2722Executado quando o agente principal de Claude Code 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.2722Executa 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.

2723 2723 

2724<Tip>2724<Tip>

2725 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.2725 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.


2731 2731 

2732Alé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).2732Alé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).

2733 2733 

2734O campo `last_assistant_message` contém o conteúdo de texto da resposta final de Claude, portanto 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.2734O 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.

2735 2735 

2736Os arrays `background_tasks` e `session_crons` permitem que hooks distingam "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.2736Os 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.

2737 2737 

2738Cada entrada em `background_tasks` descreve uma tarefa em voo e usa esses campos:2738Cada entrada em `background_tasks` descreve uma tarefa em voo e usa esses campos:

2739 2739 

2740| Campo | Descrição |2740| Campo | Descrição |

2741| :- | :- |2741| :- | :- |

2742| `id` | Identificador de tarefa |2742| `id` | Identificador de tarefa |

2743| `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 de Claude Code criou a tarefa. Volta para o discriminante bruto para tipos não reconhecidos |2743| `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 |

2744| `status` | Status atual da tarefa |2744| `status` | Status atual da tarefa |

2745| `description` | Descrição em texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` em string quando cortado |2745| `description` | Descrição em texto livre, limitada a 1000 caracteres com um marcador `… [+N chars]` em string quando cortado |

2746| `command` | Linha de comando de shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |2746| `command` | Linha de comando de shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |


2798| Campo | Descrição |2798| Campo | Descrição |

2799| :- | :- |2799| :- | :- |

2800| `decision` | `"block"` impede que Claude pare. Omita para permitir que Claude pare |2800| `decision` | `"block"` impede que Claude pare. Omita para permitir que Claude pare |

2801| `reason` | Obrigatório quando `decision` é `"block"`. Diz a Claude por que deve continuar |2801| `reason` | Obrigatório quando `decision` é `"block"`. Diz ao Claude por que deve continuar |

2802| `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 |2802| `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 |

2803 2803 

2804Um 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.2804Um 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.


2810}2810}

2811```2811```

2812 2812 

2813Use `additionalContext` quando o hook está funcionando conforme projetado e dando orientação a 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:2813Use `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:

2814 2814 

2815```json theme={null}2815```json theme={null}

2816{2816{


2825 StopFailure2825 StopFailure

2826</h3>2826</h3>

2827 2827 

2828Executado 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.2828Executa 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.

2829 2829 

2830<h4 id="stopfailure-input">2830<h4 id="stopfailure-input">

2831 Entrada StopFailure2831 Entrada StopFailure


2837| :- | :- |2837| :- | :- |

2838| `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` |2838| `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` |

2839| `error_details` | Detalhes adicionais sobre o erro, quando disponível |2839| `error_details` | Detalhes adicionais sobre o erro, quando disponível |

2840| `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 de Claude, para `StopFailure` ele contém a string de erro da API em si, como `"API Error: Rate limit reached"` |2840| `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"` |

2841 2841 

2842```json theme={null}2842```json theme={null}

2843{2843{


2857 TeammateIdle2857 TeammateIdle

2858</h3>2858</h3>

2859 2859 

2860Executado quando um [colega de equipe de agente](/docs/pt/agent-teams) está prestes a ficar inativo após terminar seu turno. Use isso para impor portões de qualidade antes que um colega pare de trabalhar, como exigir verificações de lint passando ou verificar que arquivos de saída existem.2860Executa 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.

2861 2861 

2862Hooks TeammateIdle não suportam matchers e são disparados em cada ocorrência.2862Hooks TeammateIdle não suportam matchers e disparam em cada ocorrência.

2863 2863 

2864<h4 id="teammateidle-input">2864<h4 id="teammateidle-input">

2865 Entrada TeammateIdle2865 Entrada TeammateIdle


2881 2881 

2882| Campo | Descrição |2882| Campo | Descrição |

2883| :- | :- |2883| :- | :- |

2884| `teammate_name` | Nome do colega que está prestes a ficar inativo |2884| `teammate_name` | Nome do colega de equipe que está prestes a ficar ocioso |

2885| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |2885| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2886 2886 

2887<h4 id="teammateidle-decision-control">2887<h4 id="teammateidle-decision-control">

2888 Controle de decisão TeammateIdle2888 Controle de decisão TeammateIdle

2889</h4>2889</h4>

2890 2890 

2891Hooks TeammateIdle suportam duas maneiras de controlar o comportamento do colega:2891Hooks TeammateIdle suportam duas maneiras de controlar o comportamento do colega de equipe:

2892 2892 

2893* **Código de saída 2**: o colega recebe a mensagem stderr como feedback e continua trabalhando em vez de ficar inativo.2893* **Código de saída 2**: o colega de equipe recebe a mensagem stderr como feedback e continua trabalhando em vez de ficar ocioso.

2894* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.2894* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega de equipe inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.

2895 2895 

2896Este exemplo verifica que um artefato de compilação existe antes de permitir que um colega fique inativo:2896Este exemplo verifica se um artefato de compilação existe antes de permitir que um colega de equipe fique ocioso:

2897 2897 

2898```bash theme={null}2898```bash theme={null}

2899#!/bin/bash2899#!/bin/bash


2910 ConfigChange2910 ConfigChange

2911</h3>2911</h3>

2912 2912 

2913Executado 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.2913Executa 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.

2914 2914 

2915Claude 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.2915Claude 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.

2916 2916 


2979}2979}

2980```2980```

2981 2981 

2982Mudanças `policy_settings` não podem ser bloqueadas. Hooks ainda são disparados para fontes `policy_settings` quando um arquivo de configurações gerenciadas na máquina muda, portanto você pode usá-los para registrar essas edições, mas qualquer decisão de bloqueio é ignorada. Isso garante que as 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.2982Mudanç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.

2983 2983 

2984Claude Code atua 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.2984Claude 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.

2985 2985 

2986<h3 id="cwdchanged">2986<h3 id="cwdchanged">

2987 CwdChanged2987 CwdChanged

2988</h3>2988</h3>

2989 2989 

2990Executado 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.2990Executa 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.

2991 2991 

2992Hooks 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.2992Hooks 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.

2993 2993 

2994CwdChanged não suporta matchers e é disparado em cada ocorrência.2994CwdChanged não suporta matchers e dispara em cada ocorrência.

2995 2995 

2996<h4 id="cwdchanged-input">2996<h4 id="cwdchanged-input">

2997 Entrada CwdChanged2997 Entrada CwdChanged


3022 3022 

3023Hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.3023Hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.

3024 3024 

3025Claude Code lê `watchPaths` e `systemMessage` de sua saída JSON e descarta `continue`. Em sessões interativas, mostra o `systemMessage` como uma breve notificação de terminal. A mensagem não chega ao fluxo de mensagens do SDK.3025Claude 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.

3026 3026 

3027<h3 id="directoryadded">3027<h3 id="directoryadded">

3028 DirectoryAdded3028 DirectoryAdded

3029</h3>3029</h3>

3030 3030 

3031Executado 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.3031Executa 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.

3032 3032 

3033Claude Code não dispara este evento quando:3033Claude Code não dispara este evento quando:

3034 3034 


3036* Você adiciona um diretório na aba Workspace `/permissions`3036* Você adiciona um diretório na aba Workspace `/permissions`

3037* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um3037* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um

3038 3038 

3039Claude Code dispara DirectoryAdded após atualizar estado de sandbox e permissão, portanto ferramentas em sandbox já veem o novo diretório quando seu hook é executado. Comandos de hook em si são executados sem sandbox.3039Claude 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.

3040 3040 

3041Claude 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.3041Claude 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.

3042 3042 


3071 3071 

3072Hooks 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:3072Hooks 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:

3073 3073 

3074* `slash_command`: Claude Code entrega o `systemMessage` do hook a 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ção3074* `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ção

3075* `register_repo_root`: Claude Code escreve saída `systemMessage` e saída de falha apenas no log de depuração3075* `register_repo_root`: Claude Code escreve saída `systemMessage` e saída de falha apenas no log de depuração

3076 3076 

3077<h3 id="filechanged">3077<h3 id="filechanged">

3078 FileChanged3078 FileChanged

3079</h3>3079</h3>

3080 3080 

3081Executado 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, portanto 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.3081Executa 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.

3082 3082 

3083O `matcher` para este evento serve dois papéis:3083O `matcher` para este evento serve dois papéis:

3084 3084 

3085* **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, portanto `".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`.3085* **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`.

3086* **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.3086* **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.

3087 3087 

3088Este 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:3088Este 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:


3105}3105}

3106```3106```

3107 3107 

3108O 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, portanto a execução após uma normalização sai sem tocar no arquivo. Uma guarda mais solta faz um loop para sempre, 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:3108O 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:

3109 3109 

3110```bash theme={null}3110```bash theme={null}

3111#!/bin/bash3111#!/bin/bash


3115fi3115fi

3116```3116```

3117 3117 

3118Para confirmar que o hook funciona, peça a 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.3118Para 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.

3119 3119 

3120Para 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, portanto 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, portanto dê ao grupo que manipula 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 um arquivo literal nomeado `*`.3120Para 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 `*`.

3121 3121 

3122Hooks 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.3122Hooks 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.

3123 3123 


3130| Campo | Descrição |3130| Campo | Descrição |

3131| :- | :- |3131| :- | :- |

3132| `file_path` | Caminho absoluto para o arquivo que mudou |3132| `file_path` | Caminho absoluto para o arquivo que mudou |

3133| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo deletado |3133| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |

3134 3134 

3135```json theme={null}3135```json theme={null}

3136{3136{


3155 3155 

3156Hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.3156Hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.

3157 3157 

3158Claude Code lê `watchPaths` e `systemMessage` de sua saída JSON e descarta `continue`. Em sessões interativas, mostra o `systemMessage` como uma breve notificação de terminal. A mensagem não chega ao fluxo de mensagens do SDK.3158Claude 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.

3159 3159 

3160<h3 id="worktreecreate">3160<h3 id="worktreecreate">

3161 WorktreeCreate3161 WorktreeCreate

3162</h3>3162</h3>

3163 3163 

3164Executado 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.3164Executa 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.

3165 3165 

3166Como 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.3166Como 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.

3167 3167 

3168O 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.3168O 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.

3169 3169 

3170Claude Code atua no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.3170Claude Code age no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.

3171 3171 

3172Este 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:3172Este 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:

3173 3173 


3210 Saída WorktreeCreate3210 Saída WorktreeCreate

3211</h4>3211</h4>

3212 3212 

3213Hooks WorktreeCreate não usam o modelo de decisão padrão permitir/bloquear. 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:3213Hooks 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:

3214 3214 

3215* **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, portanto banners de startup de shell impressos antes de seu `echo` são ignorados. Redirecione qualquer outra saída de hook para stderr.3215* **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.

3216* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.3216* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.

3217 3217 

3218Se o hook falhar ou não produzir um caminho, a criação de worktree falha com um erro.3218Se o hook falhar ou não produzir um caminho, a criação de worktree falha com um erro.

3219 3219 

3220Claude Code resolve um caminho relativo contra o diretório em que o hook foi executado, colapsando qualquer segmento `.` 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.3220Claude 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.

3221 3221 

3222Claude 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.3222Claude 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.

3223 3223 


3225 WorktreeRemove3225 WorktreeRemove

3226</h3>3226</h3>

3227 3227 

3228Executado quando uma worktree está sendo removida. Este é o equivalente de limpeza para [WorktreeCreate](#worktreecreate). O evento é disparado quando:3228Executa quando uma worktree está sendo removida. Este é o equivalente de limpeza para [WorktreeCreate](#worktreecreate). O evento dispara quando:

3229 3229 

3230* você sai de uma sessão `--worktree` e escolhe removê-la3230* você sai de uma sessão `--worktree` e escolhe removê-la

3231* um subagente com `isolation: "worktree"` termina3231* um subagente com `isolation: "worktree"` termina

3232* você deleta uma [sessão de fundo](/docs/pt/agent-view#what-deleting-a-session-removes) cuja worktree o hook criou3232* você exclui uma [sessão de fundo](/docs/pt/agent-view#what-deleting-a-session-removes) cuja worktree o hook criou

3233 3233 

3234Para worktrees baseadas em git, Claude Code manipula limpeza automaticamente com `git worktree remove`. Se você configurou um hook WorktreeCreate, emparelhe-o com um hook WorktreeRemove para controlar limpeza das worktrees que ele cria:3234Para 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:

3235 3235 

3236* **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, portanto 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, permanece no disco. Para o que deletar 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 delete da agent view.3236* **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.

3237* **Hook sai com 0**: a worktree é contada como removida. Claude Code não lê nada mais do hook, portanto certifique-se de que seu hook deletou o diretório.3237* **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.

3238* **Hook sai com não-zero**: a remoção falha se o diretório em `worktree_path` ainda existir depois, e a worktree permanece no disco sem fallback git. Um hook que deletou o diretório antes de sair com não-zero é contado como removido. Para como a falha é relatada, veja [entrada WorktreeRemove](#worktreeremove-input).3238* **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).

3239 3239 

3240Claude Code nunca deleta 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, delete-o em seu hook WorktreeRemove.3240Claude 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.

3241 3241 

3242Claude Code descarta [campos de saída JSON](#json-output) de um hook WorktreeRemove, como `systemMessage` e `continue`.3242Claude Code descarta [campos de saída JSON](#json-output) de um hook WorktreeRemove, como `systemMessage` e `continue`.

3243 3243 

3244Para um delete 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 o delete em [agent view](/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.3244Para 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.

3245 3245 

3246Claude Code passa o caminho retornado por WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:3246Claude Code passa o caminho retornado por WorktreeCreate como `worktree_path` na entrada do hook. Este exemplo lê esse caminho e remove o diretório:

3247 3247 


3278}3278}

3279```3279```

3280 3280 

3281O código de saída de um hook WorktreeRemove decide o resultado. Quando um hook sai com não-zero e o diretório em `worktree_path` ainda existe depois, a remoção falha:3281O 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:

3282 3282 

3283* A worktree permanece no disco, e o comando do hook e stderr vão para o [log de depuração](#debug-hooks).3283* A worktree fica no disco, e o comando do hook e stderr vão para o [log de depuração](#debug-hooks).

3284* Se você estava deletando uma sessão de fundo, a sessão também permanece. A mensagem de recusa em [agent view](/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 deletar a sessão novamente remove o diretório de qualquer forma.3284* 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.

3285 3285 

3286<h3 id="precompact">3286<h3 id="precompact">

3287 PreCompact3287 PreCompact

3288</h3>3288</h3>

3289 3289 

3290Executado antes de Claude Code estar prestes a executar uma operação de compactação.3290Executa antes de Claude Code estar prestes a executar uma operação de compactação.

3291 3291 

3292O valor do matcher indica se a compactação foi disparada manualmente ou automaticamente:3292O valor do matcher indica se a compactação foi disparada manualmente ou automaticamente:

3293 3293 


3298 3298 

3299Saia 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"`.3299Saia 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"`.

3300 3300 

3301Bloquear compactação automática tem efeitos diferentes dependendo de quando é disparado. 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.3301Bloquear 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.

3302 3302 

3303Claude Code descarta campos `systemMessage` e `continue` de um hook PreCompact.3303Claude Code descarta campos `systemMessage` e `continue` de um hook PreCompact.

3304 3304 


3323 PostCompact3323 PostCompact

3324</h3>3324</h3>

3325 3325 

3326Executado 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.3326Executa 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.

3327 3327 

3328Os mesmos valores de matcher se aplicam como para `PreCompact`:3328Os mesmos valores de matcher se aplicam como para `PreCompact`:

3329 3329 


3355 PreModelSwitch3355 PreModelSwitch

3356</h3>3356</h3>

3357 3357 

3358Executado 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 que aconteça.3358Executa 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.

3359 3359 

3360PreModelSwitch requer Claude Code v2.1.251 ou posterior. Claude Code o executa para essas solicitações:3360PreModelSwitch requer Claude Code v2.1.251 ou posterior. Claude Code o executa para essas solicitações:

3361 3361 

3362* `/model <name>` e o picker `/model`3362* `/model <name>` e o seletor `/model`

3363* O picker de modelo `Option+P` ou `Alt+P`3363* O seletor de modelo `Option+P` ou `Alt+P`

3364* A configuração Model em `/config`3364* A configuração Model em `/config`

3365* Ativar [modo rápido](/docs/pt/fast-mode) quando isso muda o modelo da sessão3365* Ativar [modo rápido](/docs/pt/fast-mode) quando isso muda o modelo da sessão

3366* 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)3366* 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)

3367 3367 

3368Claude Code não executa hooks PreModelSwitch para mudanças que ele 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.3368Claude 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.

3369 3369 

3370Claude 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, portanto `claude-opus-5` cobre cada ortografia de Opus 5.3370Claude 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.

3371 3371 

3372Quando 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.3372Quando 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.

3373 3373 

3374Escreva 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, portanto recusa uma mudança para Opus 4.6 ao sair com código 2 e deixa qualquer outro alvo passar:3374Escreva 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:

3375 3375 

3376<Tabs>3376<Tabs>

3377 <Tab title="macOS/Linux">3377 <Tab title="macOS/Linux">


3443 Entrada PreModelSwitch3443 Entrada PreModelSwitch

3444</h4>3444</h4>

3445 3445 

3446Alé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, portanto um hook pode mostrar essa figura antes da mudança acontecer.3446Alé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.

3447 3447 

3448| Campo | Tipo | Descrição |3448| Campo | Tipo | Descrição |

3449| :- | :- | :- |3449| :- | :- | :- |

3450| `from_model` | string | ID de modelo de que a mudança muda |3450| `from_model` | string | ID de modelo da mudança de |

3451| `to_model` | string | ID de modelo para o qual a mudança muda. O matcher compara contra o nome canônico deste modelo |3451| `to_model` | string | ID de modelo da mudança para. O matcher compara contra o nome canônico deste modelo |

3452| `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 |3452| `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 |

3453| `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 picker 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 |3453| `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 |

3454| `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 |3454| `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 |

3455| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está quente, significando que a mudança o perde |3455| `prompt_cache_warm` | boolean | Se o cache de prompt do modelo atual provavelmente ainda está quente, significando que a mudança o perde |

3456| `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"` |3456| `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"` |

3457| `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, portanto trate-o como uma estimativa |3457| `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 |

3458| `pricing` | string | Como Claude Code precificou `estimated_cache_write_usd`: `"configured"` em suas próprias taxas de organização quando as configurou, `"catalog"` no preço de lista, ou `"default"` quando `to_model` não tem preço conhecido e Claude Code assumiu uma taxa padrão |3458| `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 |

3459 3459 

3460Este exemplo mostra a entrada para `/model opus` em uma sessão executando Sonnet 5:3460Este exemplo mostra a entrada para `/model opus` em uma sessão executando Sonnet 5:

3461 3461 


3506 3506 

3507Quando vários hooks PreModelSwitch retornam decisões diferentes, a precedência é `deny` > `ask` > `allow`.3507Quando vários hooks PreModelSwitch retornam decisões diferentes, a precedência é `deny` > `ask` > `allow`.

3508 3508 

3509Claude Code mostra ao usuário qualquer `systemMessage` que seu hook retorna independentemente da decisão, portanto um hook de relatório de custo pode retornar `{"systemMessage": "..."}` e sair com 0.3509Claude 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.

3510 3510 

3511Um 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`, portanto os padrões `prompt` e `agent` não se aplicam.3511Um 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.

3512 3512 

3513Um 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).3513Um 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).

3514 3514 


3516 PostModelSwitch3516 PostModelSwitch

3517</h3>3517</h3>

3518 3518 

3519Executado após o modelo da sessão mudar. Use-o para dar orientação específica do modelo a Claude sem editar cada CLAUDE.md, por exemplo uma instrução em toda a organização que se aplica em certos modelos.3519Executa 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.

3520 3520 

3521PostModelSwitch 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:3521PostModelSwitch 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:

3522 3522 


3549}3549}

3550```3550```

3551 3551 

3552Para 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 a Claude qual orientação ela tem sobre o modelo atual.3552Para 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.

3553 3553 

3554<h4 id="postmodelswitch-input">3554<h4 id="postmodelswitch-input">

3555 Entrada PostModelSwitch3555 Entrada PostModelSwitch


3563 Controle de decisão PostModelSwitch3563 Controle de decisão PostModelSwitch

3564</h4>3564</h4>

3565 3565 

3566Claude Code pega seu [stdout de texto simples](#exit-code-0) do hook ao sair com 0, ou `additionalContext` de saída JSON, e o entrega a 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:3566Claude 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:

3567 3567 

3568| Campo | Descrição |3568| Campo | Descrição |

3569| :- | :- |3569| :- | :- |

3570| `additionalContext` | String adicionada ao contexto de Claude com a próxima solicitação. Veja [Adicionar contexto para Claude](#add-context-for-claude) |3570| `additionalContext` | String adicionada ao contexto do Claude com a próxima solicitação. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

3571 3571 

3572Se 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 do modelo alvo final.3572Se 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.

3573 3573 

3574<h3 id="sessionend">3574<h3 id="sessionend">

3575 SessionEnd3575 SessionEnd

3576</h3>3576</h3>

3577 3577 

3578Executado quando uma sessão de 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.3578Executa 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.

3579 3579 

3580O campo `reason` na entrada do hook indica por que a sessão terminou:3580O campo `reason` na entrada do hook indica por que a sessão terminou:

3581 3581 

3582| Motivo | Descrição |3582| Motivo | Descrição |

3583| :- | :- |3583| :- | :- |

3584| `clear` | Sessão limpa com comando `/clear` |3584| `clear` | Sessão limpa com comando `/clear` |

3585| `resume` | Sessão mudou via `/resume` interativo |3585| `resume` | Sessão mudada via `/resume` interativo |

3586| `logout` | Usuário fez logout |3586| `logout` | Usuário fez logout |

3587| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |3587| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |

3588| `other` | Outros motivos de saída |3588| `other` | Outros motivos de saída |


3608 3608 

3609Hooks 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:3609Hooks 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:

3610 3610 

3611* **`timeout` por hook**: defina `timeout` na configuração desse 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.3611* **`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.

3612* **`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`.3612* **`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`.

3613 3613 

3614Este exemplo define o orçamento para 5 segundos:3614Este exemplo define o orçamento para 5 segundos:


3623 Elicitation3623 Elicitation

3624</h3>3624</h3>

3625 3625 

3626Executado 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.3626Executa 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.

3627 3627 

3628O campo matcher corresponde ao nome do servidor MCP.3628O campo matcher corresponde ao nome do servidor MCP.

3629 3629 


3633 3633 

3634Alé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`.3634Alé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`.

3635 3635 

3636Para elicitação de modo formulário, o caso mais comum:3636Para elicitação de modo de formulário, o caso mais comum:

3637 3637 

3638```json theme={null}3638```json theme={null}

3639{3639{


3693 3693 

3694Código de saída 2 nega a elicitação. Claude Code não mostra sua mensagem stderr em lugar algum.3694Código de saída 2 nega a elicitação. Claude Code não mostra sua mensagem stderr em lugar algum.

3695 3695 

3696Claude Code atua em `hookSpecificOutput` da saída JSON de um hook Elicitation e descarta `systemMessage` e `continue`.3696Claude Code age em `hookSpecificOutput` de uma saída JSON de hook Elicitation e descarta `systemMessage` e `continue`.

3697 3697 

3698<h3 id="elicitationresult">3698<h3 id="elicitationresult">

3699 ElicitationResult3699 ElicitationResult

3700</h3>3700</h3>

3701 3701 

3702Executado 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.3702Executa 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.

3703 3703 

3704O campo matcher corresponde ao nome do servidor MCP.3704O campo matcher corresponde ao nome do servidor MCP.

3705 3705 


3746 3746 

3747Có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.3747Có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.

3748 3748 

3749Claude Code atua em `hookSpecificOutput` da saída JSON de um hook ElicitationResult e descarta `systemMessage` e `continue`.3749Claude Code age em `hookSpecificOutput` de uma saída JSON de hook ElicitationResult e descarta `systemMessage` e `continue`.

3750 3750 

3751<h2 id="prompt-based-hooks">3751<h2 id="prompt-based-hooks">

3752 Hooks baseados em prompt3752 Hooks baseados em prompt

hooks-guide.md +1 −1

Details

196| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL do navegador e você não digitou por cerca de seis segundos |196| `elicitation_url_dialog` | Um servidor MCP pede que você abra uma URL do navegador e você não digitou por cerca de seis segundos |

197| `elicitation_complete` | Um servidor MCP relata que uma [elicitação em modo URL](/docs/pt/hooks#elicitation-input) está completa |197| `elicitation_complete` | Um servidor MCP relata que uma [elicitação em modo URL](/docs/pt/hooks#elicitation-input) está completa |

198| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta ao servidor |198| `elicitation_response` | Uma resposta de elicitação MCP é enviada de volta ao servidor |

199| `agent_needs_input` | Uma sessão em segundo plano começa a aguardar sua entrada enquanto a [visualização de agente](/docs/pt/agent-view) está aberta, ou a sessão atual faz uma [pergunta de configuração de terminal de um colega de equipe de agente](/docs/pt/agent-teams#choose-a-display-mode) e você não digitou por cerca de seis segundos |199| `agent_needs_input` | Uma sessão em segundo plano começa a aguardar sua entrada enquanto a [visualização de agente](/docs/pt/agent-view) está aberta. Também dispara quando uma sessão de terminal mostra uma [pergunta de configuração de terminal de um colega de equipe de agente](/docs/pt/agent-teams#choose-a-display-mode) ou aviso do modo automático sobre [cobranças de solicitação de classificador](/docs/pt/auto-mode-classifier-billing) e você não digitou por cerca de seis segundos |

200| `agent_completed` | Uma sessão em segundo plano termina ou falha. Dispara apenas enquanto a [visualização de agente](/docs/pt/agent-view) está aberta |200| `agent_completed` | Uma sessão em segundo plano termina ou falha. Dispara apenas enquanto a [visualização de agente](/docs/pt/agent-view) está aberta |

201| `quota_auto_resume_fired` | Claude Code continua sua tarefa após um limite de uso do claude.ai pausá-la: na redefinição, ou mais cedo quando algo que você faz no Claude Code durante a espera, como adicionar créditos de uso, atualizar seu plano ou mudar de modelo, 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) |201| `quota_auto_resume_fired` | Claude Code continua sua tarefa após um limite de uso do claude.ai pausá-la: na redefinição, ou mais cedo quando algo que você faz no Claude Code durante a espera, como adicionar créditos de uso, atualizar seu plano ou mudar de modelo, 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) |

202| `quota_auto_resume_stale` | Um limite de uso do claude.ai foi redefinido enquanto seu computador dormia por mais de cerca de 30 minutos. Claude Code aguarda você pressionar `Enter` em vez de continuar. Após um sono mais curto, ele continua e dispara `quota_auto_resume_fired` em vez disso |202| `quota_auto_resume_stale` | Um limite de uso do claude.ai foi redefinido enquanto seu computador dormia por mais de cerca de 30 minutos. Claude Code aguarda você pressionar `Enter` em vez de continuar. Após um sono mais curto, ele continua e dispara `quota_auto_resume_fired` em vez disso |

keybindings.md +5 −2

Details

301| `footer:down` | Down | Navegar para baixo no rodapé |301| `footer:down` | Down | Navegar para baixo no rodapé |

302| `footer:openSelected` | Enter | Abrir item do rodapé selecionado |302| `footer:openSelected` | Enter | Abrir item do rodapé selecionado |

303| `footer:clearSelection` | Escape | Limpar seleção do rodapé |303| `footer:clearSelection` | Escape | Limpar seleção do rodapé |

304| `footer:dismiss` | (desvinculado) | Removido na v2.1.281. Um `keybindings.json` que ainda nomeia a ação permanece válido, e a vinculação não faz nada. Antes da v2.1.281, Backspace e Delete descartavam o link de artefato selecionado do rodapé |304| `footer:dismiss` | (desvinculado) | Vincular uma chave a esta ação não tem efeito, e um `keybindings.json` que a nomeia permanece válido. Antes da v2.1.281, Backspace e Delete estavam vinculados a ela e descartavam o link de artefato selecionado do rodapé. |

305 305 

306Enquanto um item do rodapé está selecionado, como uma linha no painel do agente abaixo do prompt, `Enter` o abre mesmo quando você rebinda `Enter` no contexto `Chat` para `chat:queueSubmit` ou `chat:newline`.306Enquanto um item do rodapé está selecionado, como uma linha no painel do agente abaixo do prompt, `Enter` o abre mesmo quando você rebinda `Enter` no contexto `Chat` para `chat:queueSubmit` ou `chat:newline`.

307 307 


417| `select:accept` | Enter | Aceitar seleção |417| `select:accept` | Enter | Aceitar seleção |

418| `select:cancel` | Escape | Cancelar seleção |418| `select:cancel` | Escape | Cancelar seleção |

419 419 

420Claude Code aplica suas vinculações `select:pageUp`, `select:pageDown`, `select:first` e `select:last` em painéis de lista como `/skills` e `/mcp`. Na maioria das outras listas, como o seletor `/model`, suas vinculações `select:first` e `select:last` se aplicam. PageUp e PageDown pagina através das opções nessas listas independentemente de suas vinculações.420Claude Code aplica suas vinculações `select:pageUp`, `select:pageDown`, `select:first` e `select:last` em painéis de lista como `/skills`, `/mcp` e `/tasks`. Na maioria das outras listas, como o seletor `/model`, suas vinculações `select:first` e `select:last` se aplicam. PageUp e PageDown pagina através das opções nessas listas independentemente de suas vinculações.

421 421 

422Antes da v2.1.280, essas outras listas ignoravam Home, End e suas vinculações `select:first` e `select:last`.422Antes da v2.1.280, essas outras listas ignoravam Home, End e suas vinculações `select:first` e `select:last`.

423 423 

424Antes da v2.1.283, a lista de ferramentas `/mcp` paginava com teclas PageUp e PageDown fixas independentemente de suas vinculações.

425 

424<h3 id="plugin-actions">426<h3 id="plugin-actions">

425 Ações de plugin427 Ações de plugin

426</h3>428</h3>


692Claude Code valida seus atalhos de teclado e escreve um aviso no log de depuração para:694Claude Code valida seus atalhos de teclado e escreve um aviso no log de depuração para:

693 695 

694* Erros de análise (JSON inválido ou estrutura)696* Erros de análise (JSON inválido ou estrutura)

697* Modificadores com erro de digitação, como `ctl+k`. Claude Code descarta a parte que não reconhece e aplica a vinculação ao pressionamento de tecla que permanece, `k` neste exemplo.

695* Nomes de contexto inválidos698* Nomes de contexto inválidos

696* Valores de ação inválidos, como uma ação que não é uma string ou `null`699* Valores de ação inválidos, como uma ação que não é uma string ou `null`

697* Nomes de ação desconhecidos, como um erro de digitação de uma ação registrada. Claude Code pula a vinculação e mantém qualquer vinculação padrão para essa tecla em vigor. Antes da v2.1.246, uma vinculação com um nome de ação desconhecido desativava silenciosamente essa tecla700* Nomes de ação desconhecidos, como um erro de digitação de uma ação registrada. Claude Code pula a vinculação e mantém qualquer vinculação padrão para essa tecla em vigor. Antes da v2.1.246, uma vinculação com um nome de ação desconhecido desativava silenciosamente essa tecla

Details

79 79 

80Quando o cliente fala o formato Amazon Bedrock, retransmita o corpo da resposta `InvokeModelWithResponseStream` e seu header `Content-Type: application/vnd.amazon.eventstream` sem modificações, e não converta o stream para server-sent events. Veja [Streaming errors behind a gateway or proxy](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).80Quando o cliente fala o formato Amazon Bedrock, retransmita o corpo da resposta `InvokeModelWithResponseStream` e seu header `Content-Type: application/vnd.amazon.eventstream` sem modificações, e não converta o stream para server-sent events. Veja [Streaming errors behind a gateway or proxy](/docs/pt/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

81 81 

82Encaminhe pings de keep-alive também. Em conexões através de `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL`, Claude Code conta cada byte que seu gateway retransmite, incluindo eventos SSE `ping` e linhas de comentário, e aborta um stream que fica silencioso por 300 segundos por padrão. Os pings do upstream são o único tráfego durante pausas de pensamento longo, então se seu gateway remove ou armazena eles, Claude Code aborta o stream durante essas pausas; [Automatic retries](/docs/pt/errors#automatic-retries) cobre o que um stream abortado relata com base em quanto a resposta havia progredido. Um upstream que não envia pings em absoluto, como o event-stream binário do Amazon Bedrock, deixa essas pausas sem nada para encaminhar. Ao traduzir de tal upstream, emita seus próprios eventos `ping` durante lacunas silenciosas. Gateways alcançados através de `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, ou `ANTHROPIC_FOUNDRY_BASE_URL` não são envolvidos por este watchdog de nível de byte, mesmo quando retransmitem o formato Anthropic Messages; lá, um [timeout ocioso de 5 minutos](/docs/pt/env-vars) aborta um stream silencioso em vez disso, e em conexões `ANTHROPIC_BEDROCK_BASE_URL` você pode adicionar o watchdog de byte com [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/pt/env-vars).82Encaminhe pings de keep-alive também, porque Claude Code aborta uma resposta em stream uma vez que nenhum byte a alcance por [cinco minutos por padrão](/docs/pt/network-config#streaming-idle-watchdogs). Durante uma pausa de pensamento longo, os eventos SSE `ping` do upstream podem ser os únicos bytes no stream. Se seu gateway remove ou armazena eles, Claude Code aborta a resposta no meio da pausa. Quando você traduz de um upstream que não envia pings em absoluto, como o event-stream binário do Amazon Bedrock, emita seus próprios eventos `ping` durante lacunas silenciosas.

83 83 

84<h3 id="format-mismatch-with-the-upstream">84<h3 id="format-mismatch-with-the-upstream">

85 Incompatibilidade de formato com o upstream85 Incompatibilidade de formato com o upstream

managed-mcp.md +23 −6

Details

31 31 

32| Padrão | O que faz | Configurar |32| Padrão | O que faz | Configurar |

33| :- | :- | :- |33| :- | :- | :- |

34| **Desabilitar MCP** | Nenhum servidor é carregado, exceto [servidores em processo que o aplicativo que iniciou a sessão registra](#exclusive-control-with-managed-mcp-json) e qualquer um que você [forneça através de `managedMcpServers`](#provide-servers-through-managed-settings) | `managed-mcp.json` com um mapa de servidor vazio |34| **Desabilitar MCP** | Nenhum servidor é carregado, exceto os poucos que [carregam sob controle exclusivo](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` com um mapa de servidor vazio |

35| **Implantação fixa** | Cada usuário obtém os mesmos servidores e não pode adicionar outros | `managed-mcp.json` com os servidores que você deseja |35| **Implantação fixa** | Cada usuário obtém os mesmos servidores e não pode adicionar outros | `managed-mcp.json` com os servidores que você deseja |

36| **Servidores fornecidos** | Cada usuário obtém os servidores remotos que você lista e mantém os seus próprios | `managedMcpServers` nas configurações gerenciadas |36| **Servidores fornecidos** | Cada usuário obtém os servidores remotos que você lista e mantém os seus próprios | `managedMcpServers` nas configurações gerenciadas |

37| **Catálogo aprovado** | Publique uma lista de servidores aprovados; os usuários adicionam os que desejam, qualquer outra coisa é bloqueada | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |37| **Catálogo aprovado** | Publique uma lista de servidores aprovados; os usuários adicionam os que desejam, qualquer outra coisa é bloqueada | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |


53* Os servidores que o arquivo define53* Os servidores que o arquivo define

54* Servidores que você [fornece através de `managedMcpServers`](#provide-servers-through-managed-settings)54* Servidores que você [fornece através de `managedMcpServers`](#provide-servers-through-managed-settings)

55* Servidores em processo que o aplicativo que iniciou a sessão registra, como o servidor próprio da extensão VS Code ou os [conectores que o aplicativo desktop fornece](/docs/pt/mcp#how-connectors-reach-claude-code)55* Servidores em processo que o aplicativo que iniciou a sessão registra, como o servidor próprio da extensão VS Code ou os [conectores que o aplicativo desktop fornece](/docs/pt/mcp#how-connectors-reach-claude-code)

56* O servidor integrado [Claude in Chrome](/docs/pt/chrome), se você [permitir junto com o conjunto gerenciado](#allow-claude-in-chrome-alongside-the-managed-set)

56 57 

57Os usuários não podem adicionar, modificar ou usar nenhum outro servidor MCP, incluindo servidores fornecidos por plugins e servidores passados com a [flag CLI `--mcp-config`](/docs/pt/cli-reference#cli-flags). O arquivo também suprime os conectores claude.ai que Claude Code busca por si mesmo, a menos que você [permita-os junto com o conjunto gerenciado](#allow-claude-ai-connectors-alongside-the-managed-set).58Os usuários não podem adicionar, modificar ou usar nenhum outro servidor MCP, incluindo servidores fornecidos por plugins e servidores passados com a [flag CLI `--mcp-config`](/docs/pt/cli-reference#cli-flags). O arquivo também suprime os conectores claude.ai que Claude Code busca por si mesmo, a menos que você [permita-os junto com o conjunto gerenciado](#allow-claude-ai-connectors-alongside-the-managed-set).

58 59 


144 Desabilitar MCP completamente145 Desabilitar MCP completamente

145</h3>146</h3>

146 147 

147Implante um `managed-mcp.json` contendo um mapa de servidor vazio para bloquear cada servidor MCP, exceto [servidores em processo que o aplicativo que iniciou a sessão registra](#exclusive-control-with-managed-mcp-json):148Implante um `managed-mcp.json` contendo um mapa de servidor vazio para bloquear cada servidor MCP, exceto os que [carregam sob controle exclusivo](#exclusive-control-with-managed-mcp-json):

148 149 

149```json theme={null}150```json theme={null}

150{151{


152}153}

153```154```

154 155 

155`claude mcp add` falha com o erro de política empresarial acima. Os servidores que os usuários configuraram anteriormente param de ser carregados na próxima vez que iniciam uma sessão, sem aviso de que a política é o motivo. Os servidores que você fornece através de `managedMcpServers` ainda são carregados sob um mapa vazio, portanto deixe essa chave não definida também para desabilitar MCP completamente.156`claude mcp add` falha com o erro de política empresarial acima. Os servidores que os usuários configuraram anteriormente param de ser carregados na próxima vez que iniciam uma sessão, sem aviso de que a política é o motivo. Os servidores que você fornece através de `managedMcpServers`, e qualquer outra coisa que você permita junto com o conjunto gerenciado, ainda carregam sob um mapa vazio, portanto deixe essas chaves não definidas para desabilitar MCP completamente.

156 157 

157<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">158<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">

158 Permitir conectores claude.ai junto com o conjunto gerenciado159 Permitir conectores claude.ai junto com o conjunto gerenciado


166 167 

167Claude Code lê `allowAllClaudeAiMcps` apenas de camadas de política controladas por administrador: configurações gerenciadas pelo servidor, uma chave de registro plist ou HKLM implantada por MDM, ou um arquivo `managed-settings.json` do sistema. Colocá-lo em configurações de usuário ou projeto não tem efeito, portanto os usuários não podem reabilitar conectores que o controle exclusivo suprimiu.168Claude Code lê `allowAllClaudeAiMcps` apenas de camadas de política controladas por administrador: configurações gerenciadas pelo servidor, uma chave de registro plist ou HKLM implantada por MDM, ou um arquivo `managed-settings.json` do sistema. Colocá-lo em configurações de usuário ou projeto não tem efeito, portanto os usuários não podem reabilitar conectores que o controle exclusivo suprimiu.

168 169 

170<h3 id="allow-claude-in-chrome-alongside-the-managed-set">

171 Permitir Claude in Chrome junto com o conjunto gerenciado

172</h3>

173 

174Por padrão, quando você implanta `managed-mcp.json`, Claude Code bloqueia o servidor integrado [Claude in Chrome](/docs/pt/chrome) em sessões de terminal. Os usuários não recebem o [prompt de instalação da extensão](/docs/pt/chrome#install-the-extension-when-claude-asks), e uma sessão onde o usuário [habilitou Chrome por padrão](/docs/pt/chrome#enable-chrome-by-default) inicia sem Chrome e não imprime aviso. Quando um usuário que poderia executar Claude in Chrome o inicia com `claude --chrome` ou `CLAUDE_CODE_ENABLE_CFC=1`, Claude Code sai na inicialização com um erro que nomeia a configuração `allowClaudeInChromeWithManagedMcp`.

175 

176Para permitir que os usuários executem Claude in Chrome junto com os servidores em `managed-mcp.json`, defina `"allowClaudeInChromeWithManagedMcp": true` nas configurações gerenciadas do próprio dispositivo. Coloque-o em uma chave de registro plist ou HKLM implantada por MDM, ou um arquivo `managed-settings.json` do sistema, o que quer que Claude Code [selecione](/docs/pt/managed-settings#precedence-within-the-managed-tier) naquele dispositivo. Requer Claude Code v2.1.282 ou posterior. Antes da v2.1.282, Claude Code ignora a configuração, e o erro de inicialização lê `You cannot dynamically configure MCP servers when an enterprise MCP config is present` em vez disso.

177 

178Claude Code lê a configuração dessas fontes de dispositivo mesmo quando [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) entregam o resto de sua política. Ele ignora a configuração nas próprias configurações gerenciadas pelo servidor, no registro HKCU gravável pelo usuário, e em configurações de usuário ou projeto. Uma entrada [`deniedMcpServers`](#policy-based-control-with-allowlists-and-denylists) para `claude-in-chrome` ainda bloqueia o servidor com a configuração ativada.

179 

169<h2 id="provide-servers-through-managed-settings">180<h2 id="provide-servers-through-managed-settings">

170 Fornecer servidores através de configurações gerenciadas181 Fornecer servidores através de configurações gerenciadas

171</h2>182</h2>


303 314 

304| Configuração | Indefinido (padrão) | Array vazio `[]` | Preenchido |315| Configuração | Indefinido (padrão) | Array vazio `[]` | Preenchido |

305| :- | :- | :- | :- |316| :- | :- | :- | :- |

306| `allowedMcpServers` | Todos os servidores permitidos | Nenhum servidor permitido, exceto [os próprios da organização](#how-a-server-is-evaluated) | Apenas servidores correspondentes permitidos, exceto [os próprios da organização](#how-a-server-is-evaluated) |317| `allowedMcpServers` | Todos os servidores permitidos | Nenhum servidor permitido, exceto [aqueles que pulam a verificação de lista de permissão](#how-a-server-is-evaluated) | Apenas servidores correspondentes permitidos, exceto [aqueles que pulam a verificação de lista de permissão](#how-a-server-is-evaluated) |

307| `deniedMcpServers` | Nenhum servidor bloqueado | Nenhum servidor bloqueado | Servidores correspondentes bloqueados |318| `deniedMcpServers` | Nenhum servidor bloqueado | Nenhum servidor bloqueado | Servidores correspondentes bloqueados |

308 319 

309Veja [Entradas inválidas em configurações gerenciadas](/docs/pt/managed-settings#invalid-entries-in-managed-settings) para o que acontece quando uma entrada falha na validação do esquema.320Veja [Entradas inválidas em configurações gerenciadas](/docs/pt/managed-settings#invalid-entries-in-managed-settings) para o que acontece quando uma entrada falha na validação do esquema.


3292. **Verifique a lista de bloqueio.** Um servidor que corresponde a qualquer entrada de lista de bloqueio, por URL, comando ou nome, é bloqueado. Nada substitui uma correspondência de lista de bloqueio.3402. **Verifique a lista de bloqueio.** Um servidor que corresponde a qualquer entrada de lista de bloqueio, por URL, comando ou nome, é bloqueado. Nada substitui uma correspondência de lista de bloqueio.

3303. **Verifique a lista de permissão.** Se `allowedMcpServers` não estiver definido em nenhum lugar, todos os servidores que passaram na lista de bloqueio carregam. Se estiver definido, o que o servidor deve corresponder depende de seu tipo, mostrado na tabela abaixo.3413. **Verifique a lista de permissão.** Se `allowedMcpServers` não estiver definido em nenhum lugar, todos os servidores que passaram na lista de bloqueio carregam. Se estiver definido, o que o servidor deve corresponder depende de seu tipo, mostrado na tabela abaixo.

331 342 

332 Os próprios servidores da organização pulam essa verificação: toda entrada `managedMcpServers`, e qualquer entrada `managed-mcp.json` cujos valores não usam expansão `${VAR}`. Servidores integrados também pulam, como Claude no Chrome, o servidor `ide` que Claude Code se conecta em um IDE VS Code ou JetBrains em execução, e servidores que a própria CLI configura.343 Três grupos de servidores pulam essa verificação:

344 

345 * Os próprios servidores da organização: toda entrada `managedMcpServers`, e qualquer entrada `managed-mcp.json` cujos valores não usam expansão `${VAR}`.

346 * Servidores integrados, como Claude no Chrome, o servidor `ide` que Claude Code se conecta em um IDE VS Code ou JetBrains em execução, e servidores que a própria CLI configura.

347 * Ferramentas Slack de uma sessão [Claude Tag](/docs/pt/claude-tag): os servidores que ela usa para ler a thread e postar suas respostas carregam sem uma entrada de lista de permissão.

333 348 

334 Um servidor `managed-mcp.json` que usa expansão `${VAR}` em seu comando, argumentos, `env`, URL ou cabeçalhos ainda é verificado, assim como todos os servidores que um usuário, um plugin, `--mcp-config` ou claude.ai adiciona.349 Um servidor `managed-mcp.json` que usa expansão `${VAR}` em seu comando, argumentos, `env`, URL ou cabeçalhos ainda é verificado. Assim como todos os servidores que um usuário, um plugin, ou claude.ai adiciona, e todos os servidores que um usuário passa com `--mcp-config`.

335 350 

336| Tipo de servidor | Permitido quando corresponde |351| Tipo de servidor | Permitido quando corresponde |

337| :- | :- |352| :- | :- |


514| Restrição | O que o usuário vê |529| Restrição | O que o usuário vê |

515| :- | :- |530| :- | :- |

516| `managed-mcp.json` está presente e o usuário executa `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |531| `managed-mcp.json` está presente e o usuário executa `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

532| `managed-mcp.json` está presente e um usuário que poderia executar Claude no Chrome executa `claude --chrome` | Claude Code sai na inicialização com `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

517| O servidor está em uma lista de bloqueio e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |533| O servidor está em uma lista de bloqueio e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

518| O servidor não está na lista de permissões e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |534| O servidor não está na lista de permissões e o usuário executa `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

519| O usuário executa `claude mcp remove` em um servidor de `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |535| O usuário executa `claude mcp remove` em um servidor de `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |


541| `allowedMcpServers` | Lista de permissão de servidores permitidos | Qualquer [escopo de configurações](/docs/pt/settings#where-settings-live); [Como um servidor é avaliado](#how-a-server-is-evaluated) diz como as listas de vários escopos e fontes gerenciadas se combinam | Para aplicação, uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices): configurações gerenciadas pelo servidor, `managed-settings.json`, perfil MDM ou registro |557| `allowedMcpServers` | Lista de permissão de servidores permitidos | Qualquer [escopo de configurações](/docs/pt/settings#where-settings-live); [Como um servidor é avaliado](#how-a-server-is-evaluated) diz como as listas de vários escopos e fontes gerenciadas se combinam | Para aplicação, uma [fonte de configurações gerenciadas](/docs/pt/admin-setup#decide-how-settings-reach-devices): configurações gerenciadas pelo servidor, `managed-settings.json`, perfil MDM ou registro |

542| `deniedMcpServers` | Lista de bloqueio de servidores bloqueados | Qualquer escopo de configurações; [Como um servidor é avaliado](#how-a-server-is-evaluated) diz como as listas de vários escopos e fontes gerenciadas se combinam | Mesmo que `allowedMcpServers` |558| `deniedMcpServers` | Lista de bloqueio de servidores bloqueados | Qualquer escopo de configurações; [Como um servidor é avaliado](#how-a-server-is-evaluated) diz como as listas de vários escopos e fontes gerenciadas se combinam | Mesmo que `allowedMcpServers` |

543| `allowManagedMcpServersOnly` | Bloqueia a lista de permissão apenas para fontes gerenciadas | Apenas fontes de configurações gerenciadas; [Chaves lidas de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source) diz quais fontes gerenciadas podem ativá-la. A configuração não tem efeito em outros escopos | Mesmo que `allowedMcpServers` |559| `allowManagedMcpServersOnly` | Bloqueia a lista de permissão apenas para fontes gerenciadas | Apenas fontes de configurações gerenciadas; [Chaves lidas de cada fonte de administrador](/docs/pt/managed-settings#keys-read-from-every-admin-source) diz quais fontes gerenciadas podem ativá-la. A configuração não tem efeito em outros escopos | Mesmo que `allowedMcpServers` |

560| `allowClaudeInChromeWithManagedMcp` | Permite que o servidor Claude integrado no Chrome seja executado junto com `managed-mcp.json` | Configurações gerenciadas apenas no dispositivo: um perfil MDM, o registro HKLM ou `managed-settings.json`. Configurações gerenciadas pelo servidor e fontes graváveis pelo usuário não têm efeito | MDM, GPO, gerenciamento de frota ou qualquer processo com privilégios de administrador |

544| `allowAllClaudeAiMcps` | Carrega os conectores claude.ai que Claude Code busca por si mesmo junto com `managed-mcp.json`. [Um `managed-mcp.json` no host que executa uma sessão na nuvem ainda suprime os conectores dessa sessão](#allow-claude-ai-connectors-alongside-the-managed-set) | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Mesmo que `allowedMcpServers` |561| `allowAllClaudeAiMcps` | Carrega os conectores claude.ai que Claude Code busca por si mesmo junto com `managed-mcp.json`. [Um `managed-mcp.json` no host que executa uma sessão na nuvem ainda suprime os conectores dessa sessão](#allow-claude-ai-connectors-alongside-the-managed-set) | Apenas fontes de configurações gerenciadas; a configuração não tem efeito em outro lugar | Mesmo que `allowedMcpServers` |

545 562 

546<h2 id="related-resources">563<h2 id="related-resources">

Details

449| [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) | Lista de bloqueio de fontes de marketplace. As fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/pt/settings-reference#blockedmarketplaces) | Lista de bloqueio de fontes de marketplace. As fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/docs/pt/plugins/org#restrict-what-users-can-install) |

450| [`channelsEnabled`](/docs/pt/settings-reference#channelsenabled) | Permitir [canais](/docs/pt/channels) para a organização. Veja [controles empresariais](/docs/pt/channels#enterprise-controls) para o padrão em cada plano |450| [`channelsEnabled`](/docs/pt/settings-reference#channelsenabled) | Permitir [canais](/docs/pt/channels) para a organização. Veja [controles empresariais](/docs/pt/channels#enterprise-controls) para o padrão em cada plano |

451| [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) | Quando `true`, bloqueia [fontes de plugin `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source) inteiramente, portanto o comando declarado no marketplace nunca é executado. Também bloqueia comandos [`headersHelper`](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace, exceto para um marketplace que as próprias configurações gerenciadas declaram. Quando não definido, segue `allowManagedHooksOnly`. Requer Claude Code v2.1.229 ou posterior, e o bloqueio `headersHelper` requer v2.1.238 ou posterior |451| [`disableCommandPluginSources`](/docs/pt/settings-reference#disablecommandpluginsources) | Quando `true`, bloqueia [fontes de plugin `command`](/docs/pt/plugins/marketplace-reference#command-plugin-source) inteiramente, portanto o comando declarado no marketplace nunca é executado. Também bloqueia comandos [`headersHelper`](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) do marketplace, exceto para um marketplace que as próprias configurações gerenciadas declaram. Quando não definido, segue `allowManagedHooksOnly`. Requer Claude Code v2.1.229 ou posterior, e o bloqueio `headersHelper` requer v2.1.238 ou posterior |

452| [`disableSideloadFlags`](/docs/pt/settings-reference#disablesideloadflags) | Rejeite os sinalizadores `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização. Em sessões na nuvem, Claude Code descarta os servidores MCP que o servidor entregou através de `--mcp-config`, exceto entradas `type: "sdk"` em processo, e inicia a sessão. Requer Claude Code v2.1.193 ou posterior |452| [`disableSideloadFlags`](/docs/pt/settings-reference#disablesideloadflags) | Rejeite os sinalizadores `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização. Em sessões na nuvem, Claude Code inicia a sessão e descarta os servidores entregues pelo servidor `--mcp-config`, exceto pelas exceções que sua [entrada de referência](/docs/pt/settings-reference#disablesideloadflags) lista. Requer Claude Code v2.1.193 ou posterior |

453| [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh) | Quando `true`, bloqueia a inicialização da CLI até que as configurações gerenciadas remotas sejam buscadas recentemente e sai se a busca falhar. Veja [aplicação de falha fechada](/docs/pt/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/pt/settings-reference#forceremotesettingsrefresh) | Quando `true`, bloqueia a inicialização da CLI até que as configurações gerenciadas remotas sejam buscadas recentemente e sai se a busca falhar. Veja [aplicação de falha fechada](/docs/pt/server-managed-settings#enforce-fail-closed-startup) |

454| [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) | Servidores MCP remotos fornecidos a cada usuário junto com os seus próprios. Fornece servidores em vez de bloquear qualquer coisa. Veja [Fornecer servidores através de configurações gerenciadas](/docs/pt/managed-mcp#provide-servers-through-managed-settings). Requer Claude Code v2.1.259 ou posterior |454| [`managedMcpServers`](/docs/pt/settings-reference#managedmcpservers) | Servidores MCP remotos fornecidos a cada usuário junto com os seus próprios. Fornece servidores em vez de bloquear qualquer coisa. Veja [Fornecer servidores através de configurações gerenciadas](/docs/pt/managed-mcp#provide-servers-through-managed-settings). Requer Claude Code v2.1.259 ou posterior |

455| [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior) | Se Claude Code aplica apenas a fonte gerenciada de prioridade mais alta ou [compõe cada uma delas](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/pt/settings-reference#managedsourcesbehavior) | Se Claude Code aplica apenas a fonte gerenciada de prioridade mais alta ou [compõe cada uma delas](#compose-every-managed-source) |

memory.md +6 −0

Details

115 115 

116Caminhos relativos e absolutos são permitidos. Caminhos relativos são resolvidos em relação ao arquivo que contém a importação, não ao diretório de trabalho. Os arquivos importados podem importar recursivamente outros arquivos, com uma profundidade máxima de quatro saltos.116Caminhos relativos e absolutos são permitidos. Caminhos relativos são resolvidos em relação ao arquivo que contém a importação, não ao diretório de trabalho. Os arquivos importados podem importar recursivamente outros arquivos, com uma profundidade máxima de quatro saltos.

117 117 

118Para importar um arquivo cujo caminho contém espaços, coloque uma barra invertida antes de cada espaço. Sem as barras invertidas, o caminho termina no primeiro espaço, mesmo quando a importação está em uma linha por si só. Um caminho envolvido em aspas não é importado, com ou sem as barras invertidas. Esta importação carrega um arquivo de uma pasta chamada `Design Docs`:

119 

120```text theme={null}

121- API conventions @Design\ Docs/api-conventions.md

122```

123 

118A análise de importação ignora spans de código Markdown e blocos de código cercados. Para mencionar um caminho em seu CLAUDE.md sem importá-lo, envolva-o em backticks: escrever `` `@README` `` mantém o texto literal, enquanto `@README` fora de backticks importa o arquivo.124A análise de importação ignora spans de código Markdown e blocos de código cercados. Para mencionar um caminho em seu CLAUDE.md sem importá-lo, envolva-o em backticks: escrever `` `@README` `` mantém o texto literal, enquanto `@README` fora de backticks importa o arquivo.

119 125 

120Para trazer um README, package.json e um guia de fluxo de trabalho, referencie-os com a sintaxe `@` em qualquer lugar em seu CLAUDE.md:126Para trazer um README, package.json e um guia de fluxo de trabalho, referencie-os com a sintaxe `@` em qualquer lugar em seu CLAUDE.md:

model-config.md +11 −11

Details

65Os aliases apontam para a versão recomendada para seu provedor e são atualizados ao longo do tempo. Para fixar uma versão específica, use o nome completo do modelo, por exemplo `claude-opus-5-5`, ou defina a variável de ambiente correspondente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Os aliases apontam para a versão recomendada para seu provedor e são atualizados ao longo do tempo. Para fixar uma versão específica, use o nome completo do modelo, por exemplo `claude-opus-5-5`, ou defina a variável de ambiente correspondente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Sonnet 5.5 requer Claude Code v2.1.284 ou posterior, e Opus 5.5 requer v2.1.280 ou posterior. Execute `claude update` para atualizar.68 Sonnet 5.5 requer Claude Code v2.1.284 ou posterior, e Opus 5.5 requer v2.1.280 ou posterior. Se uma solicitação para um deles de uma versão mais antiga falhar, consulte [Claude Code does not support this model](/docs/pt/errors#claude-code-does-not-support-this-model). Execute `claude update` para atualizar.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


164 164 

165Quando Claude Code não consegue dizer quais hooks PreModelSwitch seus [plugins gerenciados](/docs/pt/settings-reference#enabledplugins) da organização entregam, por exemplo porque um plugin gerenciado falhou ao carregar, ele recusa a mudança em vez de aplicá-la sem verificação, e verifica novamente em cada nova tentativa. Consulte [Model switch was blocked by a PreModelSwitch hook](/docs/pt/errors#model-switch-was-blocked-by-a-premodelswitch-hook) para a mensagem e recuperação.165Quando Claude Code não consegue dizer quais hooks PreModelSwitch seus [plugins gerenciados](/docs/pt/settings-reference#enabledplugins) da organização entregam, por exemplo porque um plugin gerenciado falhou ao carregar, ele recusa a mudança em vez de aplicá-la sem verificação, e verifica novamente em cada nova tentativa. Consulte [Model switch was blocked by a PreModelSwitch hook](/docs/pt/errors#model-switch-was-blocked-by-a-premodelswitch-hook) para a mensagem e recuperação.

166 166 

167Quando você muda de modelos através do método `setModel()` do [Agent SDK](/docs/pt/agent-sdk/overview) ou de um dispositivo conectado através de [Remote Control](/docs/pt/remote-control), ou um aplicativo como o [Desktop app](/docs/pt/desktop) que executa o CLI do Claude Code muda para você, Claude Code verifica se a string é uma que ele reconhece antes de salvá-la. Esta verificação requer Claude Code v2.1.200 ou posterior. Verificar uma escolha Remote Control requer Claude Code v2.1.260 ou posterior em sua máquina. Na API Anthropic, Claude Code reconhece:167Quando você muda de modelos através do método `setModel()` do [Agent SDK](/docs/pt/agent-sdk/overview), através de um aplicativo como o [Desktop app](/docs/pt/desktop), ou de um dispositivo conectado através de [Remote Control](/docs/pt/remote-control), Claude Code verifica o valor na mudança:

168 168 

169* um alias de modelo169* **Agent SDK ou um aplicativo**: com Claude Code v2.1.268 ou posterior, a menos que Claude Code aceite um ID de modelo localmente, como faz para sua [opção de modelo personalizado](#add-a-custom-model-option), ele confirma o ID com seu provedor na primeira vez que a sessão muda para ele. A confirmação é executada em cada provedor, e um ID que seu provedor não oferece é recusado na mudança em vez de falhar em sua próxima solicitação.

170* uma entrada do seletor `/model`170* **Remote Control**: na API Anthropic, Claude Code verifica o valor localmente e não envia nenhuma solicitação.

171* qualquer nome que comece com `claude-`

172* um valor que você configurou como uma [opção de modelo personalizado](#add-a-custom-model-option) ou em [`modelOverrides`](#override-model-ids-per-version)

173 171 

174Claude Code rejeita uma string não reconhecida com `Model "<name>" is not a recognized model id.` e a sessão mantém seu modelo atual, em vez de salvar a string e falhar na próxima solicitação. Consulte [a referência de erro](/docs/pt/errors#model-is-not-a-recognized-model-id) para etapas de recuperação.172Consulte [Model is not a recognized model id](/docs/pt/errors#model-is-not-a-recognized-model-id) e [Model not found](/docs/pt/errors#model-not-found) para as mensagens.

175 173 

176A verificação é executada apenas na API Anthropic. Em Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e atrás de um [gateway LLM](/docs/pt/llm-gateway) ou um `ANTHROPIC_BASE_URL` personalizado, seu provedor ou gateway define os nomes dos modelos, então Claude Code passa qualquer string sem verificá-la. A verificação também não cobre a flag `--model`, a variável de ambiente `ANTHROPIC_MODEL`, ou a configuração `model`; um valor digitado incorretamente lá produz [There's an issue with the selected model](/docs/pt/errors#theres-an-issue-with-the-selected-model) na primeira solicitação em vez disso. Claude Code ainda pode escrever a [linha de diagnóstico de modelo não reconhecido](/docs/pt/errors#unrecognized-model-id-on-a-request) no tempo de solicitação, em cada provedor.174Se você definir o modelo com a flag `--model`, a variável de ambiente `ANTHROPIC_MODEL`, ou a configuração `model`, Claude Code não o verifica antecipadamente, e um valor digitado incorretamente produz [There's an issue with the selected model](/docs/pt/errors#theres-an-issue-with-the-selected-model) na primeira solicitação.

177 175 

178Quando o modelo solicitado tem uma data de aposentadoria programada ou é automaticamente remapeado para uma versão mais recente, Claude Code mostra um aviso que nomeia o modelo solicitado. Sessões interativas o mostram como um aviso de inicialização. A partir da v2.1.182, o mesmo aviso é escrito em stderr em [modo não interativo](/docs/pt/headless) ao usar o formato de saída de texto padrão. A verificação também cobre um `model` definido em [frontmatter de subagentos](/docs/pt/sub-agents). O aviso stderr é suprimido para `--output-format json` e `stream-json`; leia o modelo real do campo `modelUsage` da [mensagem de resultado](/docs/pt/headless#get-structured-output) em vez disso.176Quando o modelo solicitado tem uma data de aposentadoria programada ou é automaticamente remapeado para uma versão mais recente, Claude Code mostra um aviso que nomeia o modelo solicitado. Sessões interativas o mostram como um aviso de inicialização. A partir da v2.1.182, o mesmo aviso é escrito em stderr em [modo não interativo](/docs/pt/headless) ao usar o formato de saída de texto padrão. A verificação também cobre um `model` definido em [frontmatter de subagentos](/docs/pt/sub-agents). O aviso stderr é suprimido para `--output-format json` e `stream-json`; leia o modelo real do campo `modelUsage` da [mensagem de resultado](/docs/pt/headless#get-structured-output) em vez disso.

179 177 


241 Restringir seleção de modelo239 Restringir seleção de modelo

242</h2>240</h2>

243 241 

244Administradores corporativos podem usar `availableModels` em [configurações gerenciadas ou de política](/docs/pt/managed-settings) para restringir quais modelos os usuários podem selecionar. As entradas correspondem a uma família de modelos como `sonnet`, um prefixo de versão como `claude-sonnet-4-5`, ou um ID de modelo completo como `claude-sonnet-4-5-20250929`. Um prefixo de versão também corresponde a IDs de modelo posteriores que o estendem com outro segmento, portanto `claude-fable-5` permite tanto Fable 5 quanto Fable 5.1, enquanto `claude-fable-5-1` permite apenas Fable 5.1. Para bloquear um modelo que a lista permite, ou para fazer cada entrada de ID de modelo permitir apenas a versão que nomeia, veja [Bloquear modelos ou versões específicas](#block-specific-models-or-versions).242Administradores podem usar `availableModels` em [configurações gerenciadas ou de política](/docs/pt/managed-settings) para restringir quais modelos os usuários podem selecionar. As entradas correspondem a uma família de modelos como `sonnet`, um prefixo de versão como `claude-sonnet-4-5`, ou um ID de modelo completo como `claude-sonnet-4-5-20250929`. Um prefixo de versão também corresponde a IDs de modelo posteriores que o estendem com outro segmento, portanto `claude-fable-5` permite tanto Fable 5 quanto Fable 5.1, enquanto `claude-fable-5-1` permite apenas Fable 5.1. Para bloquear um modelo que a lista permite, ou para fazer cada entrada de ID de modelo permitir apenas a versão que nomeia, veja [Bloquear modelos ou versões específicas](#block-specific-models-or-versions).

245 243 

246Em plataformas que incorporam Claude Code e definem [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars), a configuração de modelo do host tem precedência sobre as configurações de modelo gerenciadas, enquanto uma lista de permissões `availableModels` gerenciada permanece em vigor a menos que o host forneça a sua própria; [Exceções à precedência de configurações gerenciadas](/docs/pt/settings#exceptions-to-managed-settings-precedence) diz quais chaves e variáveis o host substitui.244Em plataformas que incorporam Claude Code e definem [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/pt/env-vars), a configuração de modelo do host tem precedência sobre as configurações de modelo gerenciadas, enquanto uma lista de permissões `availableModels` gerenciada permanece em vigor a menos que o host forneça a sua própria; [Exceções à precedência de configurações gerenciadas](/docs/pt/settings#exceptions-to-managed-settings-precedence) diz quais chaves e variáveis o host substitui.

247 245 


751| Definir o padrão global | Execute `/config` e alterne o modo de pensamento. Salvo como `alwaysThinkingEnabled` em `~/.claude/settings.json` |749| Definir o padrão global | Execute `/config` e alterne o modo de pensamento. Salvo como `alwaysThinkingEnabled` em `~/.claude/settings.json` |

752| Desativar através de uma variável de ambiente | Defina [`MAX_THINKING_TOKENS=0`](/docs/pt/env-vars), que desativa o pensamento na Anthropic API exceto em Opus 5.5, Sonnet 5.5 e modelos Fable. Em [provedores de terceiros](/docs/pt/third-party-integrations), Claude Code omite o parâmetro `thinking`, e modelos de raciocínio adaptativo ainda podem pensar. Outros valores se aplicam apenas com um [orçamento de pensamento fixo](#adaptive-reasoning-and-fixed-thinking-budgets) |750| Desativar através de uma variável de ambiente | Defina [`MAX_THINKING_TOKENS=0`](/docs/pt/env-vars), que desativa o pensamento na Anthropic API exceto em Opus 5.5, Sonnet 5.5 e modelos Fable. Em [provedores de terceiros](/docs/pt/third-party-integrations), Claude Code omite o parâmetro `thinking`, e modelos de raciocínio adaptativo ainda podem pensar. Outros valores se aplicam apenas com um [orçamento de pensamento fixo](#adaptive-reasoning-and-fixed-thinking-budgets) |

753 751 

754Você não pode desativar o pensamento em Opus 5.5, Sonnet 5.5 ou nos modelos Fable. O alternador de sessão, `alwaysThinkingEnabled` e `MAX_THINKING_TOKENS=0` não têm efeito lá, e o modelo decide por etapa quanto pensar com base no nível de esforço.752Você não pode desativar o pensamento em Opus 5.5, Sonnet 5.5 ou nos modelos Fable. O alternador de sessão e a linha `/config` mostram `Thinking can't be turned off` para esses modelos em vez de oferecer a alternância, e um `alwaysThinkingEnabled: false` ou `MAX_THINKING_TOKENS=0` salvo não tem efeito lá. Nesses modelos, o modelo decide por etapa quanto pensar com base no nível de esforço. A configuração salva se aplica novamente quando você alterna para um modelo que a aceita.

755 753 

756Claude Code recolhe a saída de pensamento por padrão. Pressione `Ctrl+O` para alternar o modo detalhado e ver o raciocínio como texto itálico cinzento. Sessões interativas na Anthropic API recebem blocos de pensamento redigidos por padrão, portanto defina `showThinkingSummaries: true` em [configurações](/docs/pt/settings) se quiser os resumos completos disponíveis quando expandir. Você é cobrado por todos os tokens de pensamento gerados, mesmo quando recolhidos ou redigidos.754Claude Code recolhe a saída de pensamento por padrão. Pressione `Ctrl+O` para alternar o modo detalhado e ver o raciocínio como texto itálico cinzento. Sessões interativas na Anthropic API recebem blocos de pensamento redigidos por padrão, portanto defina `showThinkingSummaries: true` em [configurações](/docs/pt/settings) se quiser os resumos completos disponíveis quando expandir. Você é cobrado por todos os tokens de pensamento gerados, mesmo quando recolhidos ou redigidos.

757 755 


784 782 

785A janela de contexto de 1M usa preços de modelo padrão sem prêmio para tokens além de 200K. Para planos onde contexto estendido está incluído em sua assinatura, o uso permanece coberto por sua assinatura. Para planos que acessam contexto estendido através de créditos de uso, tokens são faturados para créditos de uso.783A janela de contexto de 1M usa preços de modelo padrão sem prêmio para tokens além de 200K. Para planos onde contexto estendido está incluído em sua assinatura, o uso permanece coberto por sua assinatura. Para planos que acessam contexto estendido através de créditos de uso, tokens são faturados para créditos de uso.

786 784 

787Se sua conta suporta contexto de 1M, a opção aparece no seletor `/model` nas versões mais recentes de Claude Code. Se você não a vê, tente reiniciar sua sessão.785Se sua conta suporta contexto de 1M, a opção aparece no seletor `/model` nas versões mais recentes de Claude Code. Se você não a vê, reinicie sua sessão, e em um provedor de terceiros verifique se sua implantação [fixou o modelo](#pin-models-for-third-party-deployments) com uma variável `ANTHROPIC_DEFAULT_*_MODEL`.

788 786 

789Você também pode usar o sufixo `[1m]` com aliases de modelo ou nomes de modelo completos:787Você também pode usar o sufixo `[1m]` com aliases de modelo ou nomes de modelo completos:

790 788 


957* Apenas anexe `[1m]` quando o modelo subjacente [suportar contexto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).955* Apenas anexe `[1m]` quando o modelo subjacente [suportar contexto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).

958* O sufixo é lido por variável, não por modelo. No Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, um ID de modelo sem `[1m]` em uma variável usa contexto 200K mesmo se outra variável define o mesmo modelo com o sufixo. Sonnet 5 sempre é executado com a janela 1M nesses provedores e nunca precisa do sufixo.956* O sufixo é lido por variável, não por modelo. No Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, um ID de modelo sem `[1m]` em uma variável usa contexto 200K mesmo se outra variável define o mesmo modelo com o sufixo. Sonnet 5 sempre é executado com a janela 1M nesses provedores e nunca precisa do sufixo.

959 957 

958Quando você define uma variável `ANTHROPIC_DEFAULT_*_MODEL`, o seletor `/model` mostra uma linha para esse modelo no lugar das linhas integradas da família, incluindo qualquer linha de contexto 1M. Para alcançar a janela 1M sem adicionar o sufixo a essa variável, seus usuários executam `/model opus[1m]`, e Claude Code aplica o sufixo ao modelo que a variável nomeia. `/model sonnet[1m]` funciona da mesma forma.

959 

960<Note>960<Note>

961 Uma lista de permissões `availableModels` entregue através de [MDM ou um arquivo de configurações gerenciado](/docs/pt/managed-settings#delivery-mechanisms) ainda se aplica ao usar provedores de terceiros; [configurações gerenciadas pelo servidor não são entregues lá](/docs/pt/server-managed-settings#platform-availability).961 Uma lista de permissões `availableModels` entregue através de [MDM ou um arquivo de configurações gerenciado](/docs/pt/managed-settings#delivery-mechanisms) ainda se aplica ao usar provedores de terceiros; [configurações gerenciadas pelo servidor não são entregues lá](/docs/pt/server-managed-settings#platform-availability).

962 962 

Details

47 Configuração do administrador47 Configuração do administrador

48</h2>48</h2>

49 49 

50Os administradores podem configurar as definições de OpenTelemetry para todos os usuários através do [arquivo de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms). Consulte a [precedência de configurações](/docs/pt/settings#settings-precedence) para obter mais informações sobre como as configurações são aplicadas.50Os administradores podem configurar as definições do OpenTelemetry para todos os utilizadores através do [ficheiro de definições geridas](/docs/pt/managed-settings#delivery-mechanisms). Consulte a [precedência de definições](/docs/pt/settings#settings-precedence) para obter mais informações sobre como as definições são aplicadas.

51 51 

52Exemplo de configuração de configurações gerenciadas:52Exemplo de configuração de definições geridas:

53 53 

54```json theme={null}54```json theme={null}

55{55{


64}64}

65```65```

66 66 

67Claude Code ignora as [variáveis do exportador OpenTelemetry](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) no `.claude/settings.json` e `.claude/settings.local.json` de um repositório, portanto um repositório não pode usá-las para ativar a telemetria, escolher para onde ela vai ou capturar conteúdo. Defina-as nas configurações gerenciadas ou faça com que cada desenvolvedor as defina no seu shell ou `~/.claude/settings.json`. Um repositório ainda pode desativar um sinal definindo seu seletor de exportador, como `OTEL_LOGS_EXPORTER`, como `none`, a menos que as configurações gerenciadas, um arquivo `--settings` ou o ambiente a partir do qual você inicia Claude Code defina essa variável.67Na aplicação Claude Desktop, as sessões do separador Code leem estas definições geridas a partir das fontes que [chegam a cada tipo de sessão Desktop](/docs/pt/desktop#managed-settings). O formulário OpenTelemetry para Cowork em **Monitoring** nas [definições de Dados e privacidade](https://claude.ai/admin-settings/data-privacy-controls) da consola de administração aplica-se apenas a sessões Cowork, portanto, nem a CLI do terminal nem o separador Code exportam para um coletor que defina lá.

68 68 

69Claude Code não passa variáveis de ambiente `OTEL_*` para os subprocessos que ele gera, incluindo a ferramenta Bash, hooks, servidores MCP e servidores de linguagem. Um aplicativo instrumentado com OpenTelemetry que você executa através da ferramenta Bash não herda o endpoint do exportador ou cabeçalhos do Claude Code, então defina essas variáveis diretamente no comando se esse aplicativo precisar exportar sua própria telemetria.69Claude Code ignora as [variáveis do exportador OpenTelemetry](/docs/pt/settings-reference#variables-claude-code-ignores-in-env) no `.claude/settings.json` e `.claude/settings.local.json` de um repositório, portanto, um repositório não pode usá-las para ativar a telemetria, escolher para onde vai, ou capturar conteúdo. Defina-as nas definições geridas, ou deixe que cada programador as defina na sua shell ou `~/.claude/settings.json`. Um repositório ainda pode desativar um sinal definindo o seu seletor de exportador, como `OTEL_LOGS_EXPORTER`, para `none`, a menos que as definições geridas, um ficheiro `--settings`, ou o ambiente a partir do qual inicia Claude Code defina essa variável.

70 

71Claude Code não passa variáveis de ambiente `OTEL_*` para os subprocessos que gera, incluindo a ferramenta Bash, hooks, servidores MCP e servidores de linguagem. Uma aplicação instrumentada com OpenTelemetry que executa através da ferramenta Bash não herda o ponto final do exportador ou cabeçalhos de Claude Code, portanto, defina essas variáveis diretamente no comando se essa aplicação precisar de exportar a sua própria telemetria.

70 72 

71<h3 id="how-managed-settings-lock-the-otlp-destination">73<h3 id="how-managed-settings-lock-the-otlp-destination">

72 Como as configurações gerenciadas bloqueiam o destino OTLP74 Como as definições geridas bloqueiam o destino OTLP

73</h3>75</h3>

74 76 

75Quando você define uma variável `OTEL_EXPORTER_OTLP_*` nas configurações gerenciadas, Claude Code remove variáveis conflitantes definidas pelo desenvolvedor na inicialização e registra um aviso no log de depuração. O que ele remove depende de qual variável você define:77Quando define uma variável `OTEL_EXPORTER_OTLP_*` nas definições geridas, Claude Code remove variáveis conflitantes definidas pelo programador na inicialização e regista um aviso no registo de depuração. O que remove depende de qual variável define:

76 78 

77* **Endpoints**: quando você define `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code remove todos os endpoints por sinal definidos pelo desenvolvedor. Os desenvolvedores não podem apontar um sinal para um coletor diferente, portanto você não precisa também definir as variáveis de endpoint por sinal nas configurações gerenciadas.79* **Pontos finais**: quando define `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code remove todos os pontos finais por sinal definidos pelo programador. Os programadores não podem apontar um sinal para um coletor diferente, portanto, não precisa de definir também as variáveis de ponto final por sinal nas definições geridas.

78* **Protocolos**: quando você define `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code remove todos os protocolos por sinal definidos pelo desenvolvedor.80* **Protocolos**: quando define `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code remove todos os protocolos por sinal definidos pelo programador.

79* **Credenciais**: quando você define `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_EXPORTER_OTLP_CLIENT_KEY` ou `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, Claude Code remove as versões por sinal definidas pelo desenvolvedor dessa variável, além de todas as variáveis de endpoint definidas pelo desenvolvedor, genéricas ou por sinal, já que essas credenciais de outra forma alcançariam um coletor que as configurações gerenciadas não escolheram.81* **Credenciais**: quando define `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_EXPORTER_OTLP_CLIENT_KEY`, ou `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, Claude Code remove as versões por sinal definidas pelo programador dessa variável, mais todas as variáveis de ponto final definidas pelo programador, genéricas ou por sinal, uma vez que essas credenciais chegariam de outra forma a um coletor que as definições geridas não escolheram.

80* **Seletores de exportador**: `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER` e o `OTEL_TRACES_EXPORTER` beta seguem a precedência normal por chave. Uma configuração do desenvolvedor ainda pode desabilitar um sinal ou alterá-lo para o exportador de console, portanto defina os seletores nas configurações gerenciadas também se você precisar que eles sejam bloqueados. Através de [fontes de administrador](/docs/pt/managed-settings#precedence-within-the-managed-tier), `OTEL_LOGS_EXPORTER` segue a [unidade de telemetria](/docs/pt/server-managed-settings#per-key-exceptions-across-managed-sources) enquanto os outros dois seletores se mesclam por chave. Requer Claude Code v2.1.223 ou posterior.82* **Seletores de exportador**: `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, e o `OTEL_TRACES_EXPORTER` beta seguem a precedência normal por chave. A definição de um programador ainda pode desativar um sinal ou mudá-lo para o exportador de consola, portanto, defina também os seletores nas definições geridas se precisar que estejam bloqueados. Nas [fontes de administração](/docs/pt/managed-settings#precedence-within-the-managed-tier), `OTEL_LOGS_EXPORTER` segue a [unidade de telemetria](/docs/pt/server-managed-settings#per-key-exceptions-across-managed-sources) enquanto os outros dois seletores se mesclam por chave. Requer Claude Code v2.1.223 ou posterior.

81* **Endpoints de rastreamento beta**: com [rastreamento beta detalhado](#traces-beta) ativo, Claude Code exporta logs e rastreamentos para `BETA_TRACING_ENDPOINT` em vez de através dos exportadores de logs e rastreamentos. Claude Code portanto remove um `BETA_TRACING_ENDPOINT` definido pelo desenvolvedor sempre que qualquer uma dessas configurações gerenciadas decide o destino de qualquer sinal:83* **Pontos finais de rastreamento beta**: com [rastreamento beta detalhado](#traces-beta) ativo, Claude Code exporta registos e rastreamentos para `BETA_TRACING_ENDPOINT` em vez de através dos exportadores de registos e rastreamentos. Claude Code remove portanto um `BETA_TRACING_ENDPOINT` definido pelo programador sempre que qualquer uma destas definições geridas decide o destino de qualquer um dos dois sinais:

82 84 

83 * Um endpoint genérico ou de logs/rastreamentos ou credencial85 * Um ponto final genérico ou de registos/rastreamentos ou credencial

84 * Um [`otelHeadersHelper`](/docs/pt/settings-reference#otelheadershelper)86 * Um [`otelHeadersHelper`](/docs/pt/settings-reference#otelheadershelper)

85 * Um seletor de exportador de logs ou rastreamentos definido como `none`, `console` ou vazio, valores que mantêm o sinal fora de um coletor87 * Um seletor de exportador de registos ou rastreamentos definido para `none`, `console`, ou vazio, valores que mantêm o sinal fora de um coletor

86 * `CLAUDE_CODE_ENABLE_TELEMETRY` desativado88 * `CLAUDE_CODE_ENABLE_TELEMETRY` desativado

87 89 

88 Um endpoint ou credencial apenas de métricas não o remove. Antes da v2.1.251, um `BETA_TRACING_ENDPOINT` definido pelo desenvolvedor redirecionava os logs e rastreamentos que o rastreamento beta detalhado exporta mesmo quando as configurações gerenciadas fixavam o coletor.90 Um ponto final ou credencial apenas de métricas não o remove. Antes da v2.1.251, um `BETA_TRACING_ENDPOINT` definido pelo programador redirecionava os registos e rastreamentos que o rastreamento beta detalhado exporta mesmo quando as definições geridas fixavam o coletor.

89 91 

90Claude Code não remove variáveis por sinal que você define nas configurações gerenciadas em si, portanto você pode rotear um sinal para um coletor diferente definindo sua variável lá, como o [exemplo SIEM](#send-events-to-a-siem) faz. Se você definir uma credencial por sinal lá, Claude Code remove o endpoint definido pelo desenvolvedor para esse sinal.92Claude Code não remove variáveis por sinal que define nas próprias definições geridas, portanto, pode encaminhar um sinal para um coletor diferente definindo a sua variável lá, como o [exemplo SIEM](#send-events-to-a-siem) faz. Se definir uma credencial por sinal lá, Claude Code remove o ponto final definido pelo programador para esse sinal.

91 93 

92Este comportamento de remoção muda para onde a telemetria é entregue, não o que Claude Code coleta.94Este comportamento de remoção altera para onde a telemetria é entregue, não o que Claude Code recolhe.

93 95 

94Antes da v2.1.217, cada variável seguia a precedência de configurações por chave independentemente, portanto um endpoint específico de sinal definido nas configurações do usuário ou no shell redirecionava esse sinal para longe do coletor gerenciado.96Antes da v2.1.217, cada variável seguia a precedência de definições por chave independentemente, portanto, um ponto final específico de sinal definido nas definições do utilizador ou na shell redirecionava esse sinal para longe do coletor gerido.

95 97 

96Quando o aplicativo de desktop ou um executor de [ambiente auto-hospedado](/docs/pt/self-hosted-environments) inicia Claude Code e nomeia um endpoint OTLP no ambiente que fornece, Claude Code fixa o destino da mesma forma: as variáveis de telemetria do iniciador removem variáveis definidas pelo desenvolvedor exatamente como as configurações gerenciadas fazem. Claude Code não remove variáveis que o próprio iniciador definiu. Requer Claude Code v2.1.251 ou posterior.98Quando a aplicação desktop ou um executor de [ambiente auto-hospedado](/docs/pt/self-hosted-environments) inicia Claude Code e nomeia um ponto final OTLP no ambiente que fornece, Claude Code fixa o destino da mesma forma: as variáveis de telemetria do iniciador removem variáveis definidas pelo programador exatamente como as definições geridas fazem. Claude Code não remove variáveis que o próprio iniciador definiu. Requer Claude Code v2.1.251 ou posterior.

97 99 

98<h2 id="configuration-details">100<h2 id="configuration-details">

99 Detalhes de configuração101 Detalhes de configuração


582| Chaves de `OTEL_RESOURCE_ATTRIBUTES` | Atributos personalizados que você define, como `department` ou `team.id`. Veja [Suporte a organização multi-equipe](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (padrão: true) |584| Chaves de `OTEL_RESOURCE_ATTRIBUTES` | Atributos personalizados que você define, como `department` ou `team.id`. Veja [Suporte a organização multi-equipe](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (padrão: true) |

583| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | A identidade do repositório da sessão, derivada do seu remoto `origin`. Veja [Atributos de repositório](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (padrão: false). Requer Claude Code v2.1.269 ou posterior |585| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | A identidade do repositório da sessão, derivada do seu remoto `origin`. Veja [Atributos de repositório](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (padrão: false). Requer Claude Code v2.1.269 ou posterior |

584 586 

585Quando Claude Code está conectado a um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), a CLI marca as exportações com a identidade autenticada da sessão do gateway: `user.id` é o assunto do IdP em vez de um identificador de instalação anônimo, `user.email` é o email conectado, e `user.groups` carrega a associação de grupo do IdP como uma string separada por vírgulas. Cada exportação também carrega `identity.source: gateway-oidc`. A identidade do gateway é aplicada por último, então as chaves `user.*` e `identity.*` definidas através de `OTEL_RESOURCE_ATTRIBUTES` são ignoradas em sessões de gateway.587Em sessões conectadas a um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) através de `/login`, a CLI marca as exportações com a identidade autenticada: `user.id` é o assunto do IdP, `user.email` é o email conectado, e `user.groups` carrega a associação de grupo do IdP como uma string separada por vírgulas. Cada exportação também carrega `identity.source: gateway-oidc`. A identidade do gateway é aplicada por último, então as chaves `user.*` e `identity.*` definidas através de `OTEL_RESOURCE_ATTRIBUTES` são ignoradas nessas sessões.

588 

589Para os atributos de identidade em sessões Claude Desktop e Cowork que se conectam através de um gateway, veja a [referência de telemetria do gateway](/docs/pt/claude-apps-gateway-config#telemetry).

586 590 

587Os eventos incluem adicionalmente os seguintes atributos. Estes nunca são anexados a métricas porque causariam cardinalidade ilimitada:591Os eventos incluem adicionalmente os seguintes atributos. Estes nunca são anexados a métricas porque causariam cardinalidade ilimitada:

588 592 


1540 Atribuir ações a usuários1544 Atribuir ações a usuários

1541</h3>1545</h3>

1542 1546 

1543Os [atributos padrão](#standard-attributes) em cada evento incluem a identidade do usuário autenticado: `user.email`, `user.account_uuid`, `user.account_id` e `organization.id` quando conectado com uma conta Claude ou, em uma [sessão na nuvem](/docs/pt/claude-code-on-the-web), quando as credenciais da própria sessão as carregam, mais `user.id` e o `session.id` por sessão. `user.id` é um identificador com escopo de instalação, exceto em sessões do [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), onde é o assunto do IdP do token emitido pelo gateway.1547Os [atributos padrão](#standard-attributes) em cada evento incluem a identidade do usuário autenticado: `user.email`, `user.account_uuid`, `user.account_id` e `organization.id` quando conectado com uma conta Claude ou, em uma [sessão na nuvem](/docs/pt/claude-code-on-the-web), quando as credenciais da própria sessão as carregam, mais `user.id` e o `session.id` por sessão. `user.id` é um identificador com escopo de instalação, exceto em sessões do [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) através de `/login`, onde é o assunto do IdP do token emitido pelo gateway.

1544 1548 

1545Em uma sessão que um desenvolvedor inicia, chamadas de ferramenta MCP, comandos Bash e edições de arquivo são, portanto, atribuídas a esse desenvolvedor. Claude Code não atua sob uma conta de serviço separada; a identidade registrada em cada evento é a própria conta Claude do desenvolvedor, ou a identidade do IdP do desenvolvedor em uma sessão do [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway). Em sessões de canal Claude Tag, Claude funciona como a [identidade compartilhada](/docs/pt/cloud-environments#set-the-environment-a-claude-tag-channel-uses) da sua organização.1549Em uma sessão que um desenvolvedor inicia, chamadas de ferramenta MCP, comandos Bash e edições de arquivo são, portanto, atribuídas a esse desenvolvedor. Claude Code não atua sob uma conta de serviço separada; a identidade registrada em cada evento é a própria conta Claude do desenvolvedor, ou a identidade do IdP do desenvolvedor em uma sessão do [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway). Em sessões de canal Claude Tag, Claude funciona como a [identidade compartilhada](/docs/pt/cloud-environments#set-the-environment-a-claude-tag-channel-uses) da sua organização.

1546 1550 

1547Quando Claude Code autentica com uma chave de API direta, ou contra Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, não há conta Claude na sessão e apenas `user.id` e `session.id` são preenchidos. Nessas implantações, anexe identidade do usuário você mesmo com `OTEL_RESOURCE_ATTRIBUTES`, definido por usuário através do arquivo de [configurações gerenciadas](#administrator-configuration) ou um wrapper de inicialização. Sessões do gateway de aplicativos Claude não precisam de nada disso: a CLI marca a identidade do IdP automaticamente, conforme descrito em [Atributos padrão](#standard-attributes).1551Quando Claude Code autentica com uma chave de API direta, ou contra Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry, não há conta Claude na sessão e apenas `user.id` e `session.id` são preenchidos. Nessas implantações, anexe identidade do usuário você mesmo com `OTEL_RESOURCE_ATTRIBUTES`, definido por usuário através do arquivo de [configurações gerenciadas](#administrator-configuration) ou um wrapper de inicialização. Sessões do gateway de aplicativos Claude não precisam de nada disso: veja [Atributos padrão](#standard-attributes) para a identidade que suas exportações carregam.

1548 1552 

1549```bash theme={null}1553```bash theme={null}

1550export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1554export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."

Details

210| Prazo de primeiro byte | Nenhum cabeçalho de resposta chega após Claude Code enviar a solicitação | API Anthropic direta e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), incluindo através de um proxy HTTPS, mas não quando `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` as roteia através de um [gateway](/docs/pt/gateways). Opt-in no Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta, 300 segundos em outro lugar, mais um segundo por 32KB de corpo da solicitação |210| Prazo de primeiro byte | Nenhum cabeçalho de resposta chega após Claude Code enviar a solicitação | API Anthropic direta e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), incluindo através de um proxy HTTPS, mas não quando `ANTHROPIC_BASE_URL` ou `ANTHROPIC_AWS_BASE_URL` as roteia através de um [gateway](/docs/pt/gateways). Opt-in no Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta, 300 segundos em outro lugar, mais um segundo por 32KB de corpo da solicitação |

211| Watchdog de nível de evento | Nenhum evento de resposta é analisado. Em conexões onde o watchdog de nível de byte executa, bytes chegando, incluindo pings de keep-alive, também redefinem este watchdog, por até cerca de cinco minutos sem um evento analisado | Cada provedor | 300 segundos |211| Watchdog de nível de evento | Nenhum evento de resposta é analisado. Em conexões onde o watchdog de nível de byte executa, bytes chegando, incluindo pings de keep-alive, também redefinem este watchdog, por até cerca de cinco minutos sem um evento analisado | Cada provedor | 300 segundos |

212| Watchdog de nível de byte | Nenhum byte chega no fio, incluindo pings de keep-alive SSE | API Anthropic direta, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e [gateway](/docs/pt/gateways) conexões, incluindo um `ANTHROPIC_BASE_URL` customizado. Opt-in no Amazon Bedrock `vnd.amazon.eventstream` respostas com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta, 300 segundos em outro lugar |212| Watchdog de nível de byte | Nenhum byte chega no fio, incluindo pings de keep-alive SSE | API Anthropic direta, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e [gateway](/docs/pt/gateways) conexões, incluindo um `ANTHROPIC_BASE_URL` customizado. Opt-in no Amazon Bedrock `vnd.amazon.eventstream` respostas com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; não executa no Agent Platform do Google Cloud ou no Microsoft Foundry | 180 segundos na API Anthropic direta, 300 segundos em outro lugar |

213| Tempo limite de inatividade do corpo | Nenhum byte chega por 5 minutos | Provedores diferentes da API Anthropic direta e Claude Platform on AWS, a menos que [`API_FORCE_IDLE_TIMEOUT`](/docs/pt/env-vars) mude isso | 5 minutos |213| Tempo limite de inatividade do corpo | Nenhum byte chega por 5 minutos | Provedores diferentes da API Anthropic direta, Claude Platform on AWS, e Amazon Bedrock com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` definido, a menos que [`API_FORCE_IDLE_TIMEOUT`](/docs/pt/env-vars) mude isso | 5 minutos |

214 

215Se você definir `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, o watchdog de nível de byte substitui o tempo limite de inatividade do corpo no Bedrock em vez de executar junto com ele. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` então também governa quanto tempo um stream Bedrock pode permanecer silencioso antes de Claude Code tratar a conexão como morta, dentro dos limites listados abaixo. Bytes chegando ainda não redefinem o watchdog de nível de evento no Bedrock. Com logging de debug ativado, cada stream Bedrock então registra uma mensagem de debug que começa com `wire-heartbeat: _chunkTimes absent`.

214 216 

215Configure os temporizadores com estas variáveis, cada uma detalhada na [referência de variáveis de ambiente](/docs/pt/env-vars):217Configure os temporizadores com estas variáveis, cada uma detalhada na [referência de variáveis de ambiente](/docs/pt/env-vars):

216 218 


277 279 

278Se sua organização GitHub Enterprise Cloud restringe o acesso por endereço IP, ative [herança de lista de permissões de IP para GitHub Apps instalados](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) e também [adicione uma entrada de lista de permissões](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) para os [endereços IP de saída](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) da Anthropic. A herança cobre apenas as solicitações que o GitHub App Claude faz como uma instalação, não as solicitações que faz em nome de seus usuários. Para outros firewalls, consulte os [endereços IP da API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).280Se sua organização GitHub Enterprise Cloud restringe o acesso por endereço IP, ative [herança de lista de permissões de IP para GitHub Apps instalados](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) e também [adicione uma entrada de lista de permissões](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) para os [endereços IP de saída](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) da Anthropic. A herança cobre apenas as solicitações que o GitHub App Claude faz como uma instalação, não as solicitações que faz em nome de seus usuários. Para outros firewalls, consulte os [endereços IP da API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).

279 281 

280Para instâncias [GitHub Enterprise Server](/docs/pt/github-enterprise-server) auto-hospedadas atrás de um firewall, coloque na lista de permissões os [endereços IP de saída](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) da Anthropic para que a infraestrutura Anthropic possa alcançar seu host GHES para clonar repositórios e postar comentários de revisão. Sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#configure-git) alcançam seu host GHES de dentro de sua rede, portanto essa exposição se aplica apenas a sessões hospedadas pela Anthropic, a fluxos pré-sessão hospedados, como o seletor de repositório, e a executores auto-hospedados que optam pelo [proxy git Anthropic](/docs/pt/self-hosted-environments-deploy#use-the-anthropic-git-proxy), que busca do lado da Anthropic. Para um host GHES que é roteável apenas dentro de sua rede, o [conector SCM](/docs/pt/self-hosted-environments-reference#scm-connector-flags) carrega os fluxos pré-sessão hospedados sobre uma conexão de saída, portanto a lista de permissões não é necessária para eles.282Para instâncias [GitHub Enterprise Server](/docs/pt/github-enterprise-server) auto-hospedadas atrás de um firewall, coloque na lista de permissões os [endereços IP de saída](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) da Anthropic para que a infraestrutura Anthropic possa alcançar seu host GHES para clonar repositórios e postar comentários de revisão. Sessões em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments-deploy#configure-git) alcançam seu host GHES de dentro de sua rede, portanto essa exposição se aplica apenas a sessões hospedadas pela Anthropic, a fluxos pré-sessão hospedados, como o seletor de repositório, e a executores auto-hospedados que optam pelo [proxy git Anthropic](/docs/pt/self-hosted-environments-deploy#use-the-anthropic-git-proxy), que busca do lado da Anthropic. O [conector SCM](/docs/pt/self-hosted-environments-reference#scm-connector-flags) não está disponível, portanto os fluxos pré-sessão hospedados não conseguem alcançar um host GHES que é roteável apenas dentro de sua rede.

281 283 

282<h3 id="desktop-and-claude-ai">284<h3 id="desktop-and-claude-ai">

283 Desktop e claude.ai285 Desktop e claude.ai

Details

291 Elimine prompts de permissão com modo automático291 Elimine prompts de permissão com modo automático

292</h2>292</h2>

293 293 

294O modo automático permite que Claude execute sem prompts de permissão rotineiros. Um modelo classificador separado revisa as ações antes de serem executadas, bloqueando qualquer coisa que escale além de sua solicitação, direcione infraestrutura não reconhecida ou pareça impulsionada por conteúdo hostil que Claude leu. [Regras de solicitação](/docs/pt/permissions#manage-permissions) explícitas ainda forçam um prompt.294O modo automático permite que Claude execute sem prompts de permissão rotineiros. Um modelo classificador separado revisa as ações antes de serem executadas, bloqueando qualquer coisa que escale além da sua solicitação, direcione infraestrutura não reconhecida ou pareça impulsionada por conteúdo hostil que Claude leu. [Regras de solicitação](/docs/pt/permissions#manage-permissions) explícitas ainda forçam um prompt.

295 295 

296Com Claude Code v2.1.283 ou posterior, o modo automático é o [modo de permissão inicial integrado](#which-mode-a-session-starts-in) para sessões de terminal interativo e VS Code em todos os planos e provedores. Em versões anteriores, é o modo de permissão inicial integrado apenas nos planos Pro, Max e Team.296Com Claude Code v2.1.283 ou posterior, o modo automático é o [modo de permissão inicial integrado](#which-mode-a-session-starts-in) para sessões de terminal interativo e VS Code em todos os planos e provedores. Em versões anteriores, é o modo de permissão inicial integrado apenas nos planos Pro, Max e Team.

297 297 

298O classificador também revisa cada mensagem que Claude envia para outro agente com [`SendMessage`](/docs/pt/tools-reference), seja texto simples ou uma mensagem estruturada de [equipe de agentes](/docs/pt/agent-teams), antes que Claude Code a entregue, tanto em modo automático quanto em [modo de plano enquanto o classificador revisa comandos](#analyze-before-you-edit-with-plan-mode); a revisão de envio requer Claude Code v2.1.222 ou posterior.298O classificador também revisa cada mensagem que Claude envia para outro agente com [`SendMessage`](/docs/pt/tools-reference), seja texto simples ou uma mensagem estruturada de [equipe de agentes](/docs/pt/agent-teams), antes que Claude Code a entregue, tanto no modo automático quanto no [modo de plano enquanto o classificador revisa comandos](#analyze-before-you-edit-with-plan-mode); a revisão de envio requer Claude Code v2.1.222 ou posterior.

299 299 

300Por padrão, o classificador não revisa remoções de `rm` e `rmdir` direcionadas a um caminho crítico, como `rm -rf /` ou `rm -rf ~`. [Caminhos críticos](#critical-paths) aborda o que acontece com eles em cada modo de permissão.300Por padrão, o classificador não revisa remoções de `rm` e `rmdir` direcionadas a um caminho crítico, como `rm -rf /` ou `rm -rf ~`. [Caminhos críticos](#critical-paths) aborda o que acontece com eles em cada modo de permissão.

301 301 


312* **Modelo**: na API Anthropic e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Claude Opus 4.6 ou posterior, Sonnet 4.6 ou posterior, ou um [modelo Fable](/docs/pt/model-config#work-with-fable). No Amazon Bedrock, na Agent Platform do Google Cloud, no Microsoft Foundry e em sessões [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectadas, apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior e os modelos Fable. Modelos mais antigos, incluindo Sonnet 4.5, Opus 4.5, Haiku e modelos claude-3, não são suportados em nenhum provedor.312* **Modelo**: na API Anthropic e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Claude Opus 4.6 ou posterior, Sonnet 4.6 ou posterior, ou um [modelo Fable](/docs/pt/model-config#work-with-fable). No Amazon Bedrock, na Agent Platform do Google Cloud, no Microsoft Foundry e em sessões [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectadas, apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior e os modelos Fable. Modelos mais antigos, incluindo Sonnet 4.5, Opus 4.5, Haiku e modelos claude-3, não são suportados em nenhum provedor.

313* **Provedor**: disponível por padrão na API Anthropic, Claude Platform on AWS, Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e sessões gateway de aplicativos Claude conectadas.313* **Provedor**: disponível por padrão na API Anthropic, Claude Platform on AWS, Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e sessões gateway de aplicativos Claude conectadas.

314 314 

315Se Claude Code relatar o modo automático como indisponível, primeiro verifique esses requisitos e se algum arquivo de configurações define [`disableAutoMode`](/docs/pt/settings-reference#disableautomode). A Anthropic também pode ter desativado o modo automático no servidor, ou o servidor pode ter rejeitado o modo automático para sua conta. Uma sessão que recebeu uma dessas respostas mantém o modo automático desativado até que a sessão termine, portanto, inicie uma nova sessão depois.315Se Claude Code relatar o modo automático como indisponível, primeiro verifique esses requisitos e se algum arquivo de configurações define [`disableAutoMode`](/docs/pt/settings-reference#disableautomode). A Anthropic também pode ter desativado o modo automático no servidor, ou o servidor pode ter rejeitado o modo automático para sua conta. Uma sessão que recebeu uma dessas respostas mantém o modo automático desativado até o final da sessão, portanto, inicie uma nova sessão mais tarde.

316 316 

317Uma mensagem separada que nomeia um modelo e diz que o modo automático "não pode determinar a segurança" de uma ação significa que uma solicitação do classificador falhou. Essa falha geralmente é transitória, mas no Amazon Bedrock pode se repetir até que sua conta possa invocar o modelo nomeado. Consulte a [referência de erros](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) para as causas e o que fazer.317Uma mensagem separada que nomeia um modelo e diz que o modo automático "não pode determinar a segurança" de uma ação significa que uma solicitação do classificador falhou. Essa falha geralmente é transitória, mas no Amazon Bedrock pode se repetir até que sua conta possa invocar o modelo nomeado. Consulte a [referência de erros](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) para as causas e o que fazer.

318 318 

319Se você definir `defaultMode: "auto"` em [configurações](/docs/pt/settings-reference#all-settings) e uma sessão de terminal iniciar em modo Manual sem erro, a configuração provavelmente está em `.claude/settings.json` ou `.claude/settings.local.json`. `auto` não entra em vigor nesses arquivos. Mova-o para `~/.claude/settings.json`. Para uma conversa que a extensão VS Code iniciou, verifique a lista própria da extensão em [Alternar modos de permissão](#switch-permission-modes) em vez disso.319Se você definir `defaultMode: "auto"` em [configurações](/docs/pt/settings-reference#all-settings) e uma sessão de terminal iniciar em modo Manual sem erro, a configuração provavelmente está em `.claude/settings.json` ou `.claude/settings.local.json`. `auto` não entra em vigor nesses arquivos. Mova-o para `~/.claude/settings.json`. Para uma conversa que a extensão VS Code iniciou, verifique a lista própria da extensão em [Alternar modos de permissão](#switch-permission-modes) em vez disso.

320 320 

321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

322 Modo automático em Bedrock, Agent Platform ou Foundry322 Modo automático no Bedrock, Agent Platform ou Foundry

323</h3>323</h3>

324 324 

325Em [Amazon Bedrock](/docs/pt/amazon-bedrock), [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai), [Microsoft Foundry](/docs/pt/microsoft-foundry) e sessões [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectadas, o modo automático está disponível por padrão. Com Claude Code v2.1.283 ou posterior, também é o [modo de permissão inicial integrado](#which-mode-a-session-starts-in) para sessões de terminal interativo e [VS Code](/docs/pt/vs-code). Para escolher o modo de permissão inicial você mesmo, defina `permissions.defaultMode` conforme [Iniciar em um modo de permissão diferente](#start-in-a-different-mode) descreve, ou escolha um modo de permissão do indicador de modo da extensão VS Code.325No [Amazon Bedrock](/docs/pt/amazon-bedrock), [Agent Platform do Google Cloud](/docs/pt/google-vertex-ai), [Microsoft Foundry](/docs/pt/microsoft-foundry) e sessões [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectadas, o modo automático está disponível por padrão. Com Claude Code v2.1.283 ou posterior, também é o [modo de permissão inicial integrado](#which-mode-a-session-starts-in) para sessões de terminal interativo e [VS Code](/docs/pt/vs-code). Para escolher o modo de permissão inicial você mesmo, defina `permissions.defaultMode` conforme [Iniciar em um modo de permissão diferente](#start-in-a-different-mode) descreve, ou escolha um modo de permissão do indicador de modo da extensão VS Code.

326 326 

327Apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior e os modelos Fable são suportados nesses provedores. Em qualquer outro modelo, a sessão inicia em Manual em vez disso.327Apenas Claude Sonnet 5 ou posterior, Opus 4.7 ou posterior e os modelos Fable são suportados nesses provedores. Em qualquer outro modelo, a sessão inicia em Manual em vez disso.

328 328 

329Para impedir que desenvolvedores usem o modo automático, defina `disableAutoMode` como `"disable"` em [configurações gerenciadas](/docs/pt/managed-settings). Isso remove `auto` do ciclo `Shift+Tab`, e uma sessão iniciada com `--permission-mode auto` inicia em Manual em vez disso. Uma sessão já em execução em modo automático o deixa quando a configuração chega a essa sessão de uma [fonte implantada por administrador](/docs/pt/managed-settings#which-managed-source-claude-code-uses) e mostra `auto mode disabled by settings`. Antes de v2.1.251, uma sessão em execução mantinha o modo automático até que terminasse.329Para impedir que desenvolvedores usem o modo automático, defina `disableAutoMode` como `"disable"` em [configurações gerenciadas](/docs/pt/managed-settings). Isso remove `auto` do ciclo `Shift+Tab`, e uma sessão iniciada com `--permission-mode auto` inicia em Manual em vez disso. Uma sessão já em execução no modo automático o deixa quando a configuração chega a essa sessão de uma [fonte implantada por administrador](/docs/pt/managed-settings#which-managed-source-claude-code-uses) e mostra `auto mode disabled by settings`. Antes da v2.1.251, uma sessão em execução mantinha o modo automático até o final.

330 330 

331Em v2.1.158 até v2.1.206, o modo automático estava desativado nesses provedores até você definir `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir de v2.1.207 em diante.331Na v2.1.158 até v2.1.206, o modo automático estava desativado nesses provedores até você definir `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir da v2.1.207 em diante.

332 332 

333<h3 id="server-side-classifier-review">333<h3 id="server-side-classifier-review">

334 Revisão do classificador no servidor334 Revisão do classificador no servidor

335</h3>335</h3>

336 336 

337Em modo automático, Claude Code pode pedir ao servidor para verificar as ações que [a ordem de decisão](#how-the-classifier-evaluates-actions) envia para revisão, como parte das solicitações de modelo da sessão, em vez de enviar suas próprias solicitações do classificador. Essas sessões pedem:337No modo automático, Claude Code pode pedir ao servidor para verificar as ações que [a ordem de decisão](#how-the-classifier-evaluates-actions) envia para revisão, como parte das solicitações de modelo da sessão, em vez de enviar suas próprias solicitações do classificador. Essas sessões solicitam:

338 338 

339* **Uma conexão direta com a API Anthropic**: em uma sessão de terminal interativo, em todos os planos claude.ai e em contas que usam a API Claude, conforme a Anthropic implementa. Requer Claude Code v2.1.271 ou posterior em planos Pro, Max e Team, e v2.1.278 ou posterior em planos Enterprise e contas da API Claude. A partir de v2.1.282, uma sessão que [não busca sinalizadores de recursos](/docs/pt/env-vars#features-that-need-feature-flag-fetching), por exemplo porque você desativou a telemetria, pede ao servidor por padrão em qualquer tipo de sessão.339* **Uma conexão direta com a API Anthropic**: em uma sessão de terminal interativo, em todos os planos claude.ai e em contas que usam a API Claude, conforme a Anthropic implementa. Requer Claude Code v2.1.271 ou posterior nos planos Pro, Max e Team, e v2.1.278 ou posterior nos planos Enterprise e contas da API Claude. A partir da v2.1.282, uma sessão que [não busca sinalizadores de recursos](/docs/pt/env-vars#features-that-need-feature-flag-fetching), por exemplo porque você desativou a telemetria, solicita o servidor por padrão em qualquer tipo de sessão.

340* **Um provedor de nuvem, ou um gateway LLM ou proxy**: em [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway LLM ou proxy](/docs/pt/llm-gateway), qualquer que seja seu plano. Pedir por padrão requer Claude Code v2.1.278 ou posterior.340* **Um provedor de nuvem, gateway LLM ou proxy**: no [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway LLM ou proxy](/docs/pt/llm-gateway), independentemente do seu plano. Solicitar por padrão requer Claude Code v2.1.278 ou posterior.

341* **Uma sessão [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectada**: requer Claude Code v2.1.280 ou posterior341* **Uma sessão [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) conectada**: requer Claude Code v2.1.280 ou posterior

342 342 

343Onde o servidor revisa as ações, seus vereditos as decidem. Dois outros resultados são possíveis:343Onde o servidor revisa as ações, seus vereditos as decidem. Dois outros resultados são possíveis:

344 344 

345* **O servidor não revisa a sessão**: uma resposta é concluída sem resultados de revisão, ou o servidor responde que não revisa essa sessão. As causas mais comuns são um gateway LLM ou proxy que descarta a solicitação de revisão ou os resultados, e uma plataforma, região ou credencial que ainda não tem verificações no servidor. Claude Code volta para suas próprias solicitações do classificador. Uma vez que esse fallback se mantém pelo resto da sessão, ele mostra um [aviso sobre cobranças de solicitação do classificador](/docs/pt/auto-mode-classifier-billing) em contas onde essas solicitações são cobradas.345* **O servidor não revisa a sessão**: uma resposta é concluída sem resultados de revisão, ou o servidor responde que não revisa essa sessão. As causas mais comuns são um gateway LLM ou proxy que descarta a solicitação de revisão ou os resultados, e uma plataforma, região ou credencial que ainda não tem verificações no servidor. Claude Code volta para suas próprias solicitações do classificador. Uma vez que esse fallback se mantém pelo resto da sessão, ele mostra um [aviso sobre cobranças de solicitação do classificador](/docs/pt/auto-mode-classifier-billing) em contas onde essas solicitações são cobradas.

346* **O servidor não fornece um veredito para uma ação**: Claude Code nega a ação em vez de executá-la sem revisão. Em qualquer conexão, isso acontece quando a resposta termina antes dos resultados de revisão chegarem ou os resultados chegam em uma forma que Claude Code não consegue ler. Um gateway LLM ou proxy que corta respostas ou reescreve os resultados pode causar qualquer um. Em uma conexão direta com a API Anthropic, também acontece quando a verificação do servidor falha para a ação, por exemplo, por timeout. [O servidor não retornou um veredito de segurança](/docs/pt/errors#the-server-returned-no-safety-verdict) aborda a mensagem de negação, o que acontece quando negações se repetem e o que fazer.346* **O servidor não fornece um veredito para uma ação**: Claude Code nega a ação em vez de executá-la sem revisão. Em qualquer conexão, isso acontece quando a resposta termina antes dos resultados de revisão chegarem ou os resultados chegam em um formato que Claude Code não consegue ler. Um gateway LLM ou proxy que encurta respostas ou reescreve os resultados pode causar qualquer um. Em uma conexão direta com a API Anthropic, também acontece quando a verificação do servidor falha para a ação, por exemplo, por timeout. [O servidor não retornou um veredito de segurança](/docs/pt/errors#the-server-returned-no-safety-verdict) aborda a mensagem de negação, o que acontece quando negações se repetem e o que fazer.

347 347 

348Para pular pedir ao servidor e sempre usar as próprias solicitações do classificador de Claude Code, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/pt/env-vars). Em uma conexão direta com a API Anthropic, a variável requer Claude Code v2.1.281 ou posterior. Defini-la como `1` lá ativa a revisão do servidor em uma sessão que não a tem ainda, como uma sessão `-p` ou Agent SDK, a menos que você também tenha definido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Se você definir `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e deixar `CLAUDE_CODE_AUTO_MODE_SERVER` indefinido, Claude Code também para de pedir ao servidor, exceto conforme [Desabilitar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) descreve.348Para pular a solicitação ao servidor e sempre usar as próprias solicitações do classificador de Claude Code, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/pt/env-vars). Em uma conexão direta com a API Anthropic, a variável requer Claude Code v2.1.281 ou posterior. Defini-la como `1` lá ativa a revisão do servidor em uma sessão que ainda não a tem, como uma sessão `-p` ou Agent SDK, a menos que você também tenha definido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Se você definir `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e deixar `CLAUDE_CODE_AUTO_MODE_SERVER` indefinido, Claude Code também para de solicitar o servidor, exceto conforme [Desabilitar capacidades de pré-lançamento](/docs/pt/llm-gateway-protocol#disable-pre-release-capabilities) descreve.

349 349 

350<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

351 O que o classificador bloqueia por padrão351 O que o classificador bloqueia por padrão

352</h3>352</h3>

353 353 

354O classificador confia em seu diretório de trabalho e nos remotos que foram configurados para ele quando a sessão iniciou. Um remoto adicionado ou reorientado durante a sessão com `git remote add` ou `git remote set-url` não é confiável, e tudo mais é tratado como externo até você [configurar infraestrutura confiável](/docs/pt/auto-mode-config). Antes de v2.1.200, remotos adicionados no meio da sessão também eram confiáveis.354O classificador confia em seu diretório de trabalho e nos remotos que foram configurados para ele quando a sessão iniciou. Um remoto adicionado ou redirecionado durante a sessão com `git remote add` ou `git remote set-url` não é confiável, e tudo mais é tratado como externo até você [configurar infraestrutura confiável](/docs/pt/auto-mode-config). Antes da v2.1.200, remotos adicionados no meio da sessão também eram confiáveis.

355 355 

356**Bloqueado por padrão**:356**Bloqueado por padrão**:

357 357 


363* Modificação de infraestrutura compartilhada363* Modificação de infraestrutura compartilhada

364* Destruição irreversível de arquivos que existiam antes da sessão364* Destruição irreversível de arquivos que existiam antes da sessão

365* Force push365* Force push

366* Fazer commit ou fazer push de uma alteração que enviaria segredos ou dados sensíveis fora do repositório quando executado, ou ampliaria o que uma implantação expõe. Isso abrange um fluxo de trabalho CI ou configuração de implantação que passa um segredo para um destino que ainda não o recebe, um script ou etapa de configuração que lê um armazenamento de segredos e envia os dados para fora, e uma mudança de configuração que amplia o que uma implantação publica, como um registro, visibilidade, artefato ou configuração de sourcemap. A verificação se aplica em qualquer branch, se aplica mesmo quando o repositório é público e dispara quando a alteração é feita commit ou push, independentemente de esse commit ou push disparar o pipeline; limpá-la requer nomear o efeito de execução, não apenas o commit ou push. Antes de v2.1.211, essa verificação era limitada ao branch padrão em vez disso: um push lá era bloqueado quando carregava conteúdo sensível, alterações encobertas ou mal descritas em relação ao que você pediu, conteúdo portado de fora do repositório ou roteado em torno de uma revisão que você pediu366* Fazer commit ou fazer push de uma alteração que enviaria segredos ou dados sensíveis para fora do repositório quando executado, ou ampliar o que uma implantação expõe. Isso abrange um fluxo de trabalho CI ou configuração de implantação que passa um segredo para um destino que ainda não o recebe, um script ou etapa de configuração que lê um armazenamento de segredos e envia os dados para fora, e uma alteração de configuração que amplia o que uma implantação publica, como um registro, visibilidade, artefato ou configuração de sourcemap. A verificação se aplica em qualquer branch, se aplica mesmo quando o repositório é público e dispara quando a alteração é feita commit ou push, independentemente de esse commit ou push disparar o pipeline; limpá-la requer nomear o efeito de execução, não apenas o commit ou push. Antes da v2.1.211, essa verificação era limitada ao branch padrão: um push lá era bloqueado quando carregava conteúdo sensível, alterações encobertas ou mal descritas em relação ao que você pediu, conteúdo portado de fora do repositório ou roteado em torno de uma revisão que você pediu

367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` ou `git stash clear`, que o classificador presume descartaria alterações não confirmadas367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` ou `git stash clear`, que o classificador presume descartaria alterações não confirmadas

368* `git commit --amend` quando o commit no HEAD não foi criado nesta sessão368* `git commit --amend` quando o commit no HEAD não foi criado nesta sessão

369* A partir de v2.1.198, `git commit --amend` quando o commit no HEAD já foi feito push. Uma reword apenas de mensagem não é bloqueada: `--amend -m` sem nada recém-preparado, em um commit que Claude criou durante esta sessão369* A partir da v2.1.198, `git commit --amend` quando o commit no HEAD já foi feito push. Uma reword apenas de mensagem não é bloqueada: `--amend -m` sem nada recém-preparado, em um commit que Claude criou durante esta sessão

370* `terraform destroy`, `pulumi destroy`, `cdk destroy` ou `terragrunt destroy`, e aplicar um plano que destrói recursos370* `terraform destroy`, `pulumi destroy`, `cdk destroy` ou `terragrunt destroy`, e aplicar um plano que destrói recursos

371 371 

372Claude Code v2.1.195 e posterior bloqueiam mais categorias por padrão. Várias dependem de entradas de [ambiente](/docs/pt/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensíveis e escopos IaC protegidos, que você pode estreitar para nomes concretos.372Claude Code v2.1.195 e posterior bloqueiam mais categorias por padrão. Várias dependem de entradas de [ambiente](/docs/pt/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensíveis e escopos IaC protegidos, que você pode restringir a nomes concretos.

373 373 

374* Escrita em um gerenciador de segredos, ou alteração de registros DNS ou certificados TLS374* Escrita em um gerenciador de segredos, ou alteração de registros DNS ou certificados TLS

375* Mesclagem de uma solicitação de pull que nenhum humano aprovou, aprovação do próprio pull request de Claude ou desabilitação de verificações CI375* Mesclagem de uma solicitação de pull que nenhum humano aprovou, aprovação da própria solicitação de pull de Claude ou desabilitação de verificações CI

376* Postagem de um comentário que é em si um comando para automação, como `atlantis apply` ou `/deploy` ou `/merge` de um bot376* Postagem de um comentário que é em si um comando para automação, como `atlantis apply` ou `/deploy` ou `/merge` de um bot

377* Alternância, ramificação ou exclusão de um sinalizador de recurso de produção377* Alternância, ramificação ou exclusão de um sinalizador de recurso de produção

378* Aplicação de alterações de infraestrutura a um escopo IaC protegido, ou drenagem e remoção de nós de cluster378* Aplicação de alterações de infraestrutura a um escopo IaC protegido, ou drenagem e remoção de nós de cluster

379* Escritas em um cluster de computação compartilhado que vão além do recurso que você nomeou, como um seletor de rótulo ou `--all` que pega trabalhos de outros usuários379* Escritas em um cluster de computação compartilhado que vão além do recurso que você nomeou, como um seletor de rótulo ou `--all` que captura trabalhos de outros usuários

380* Criação de recursos Kubernetes que executam em cada nó ou interceptam tráfego de cluster, como DaemonSets e webhooks de admissão380* Criação de recursos Kubernetes que executam em cada nó ou interceptam tráfego de cluster, como DaemonSets e webhooks de admissão

381* Shells interativos ou port-forwards em um destino remoto sensível381* Shells interativos ou port-forwards para um destino remoto sensível

382* Abertura de um túnel ou shell reverso que torna um serviço local acessível da internet pública382* Abertura de um túnel ou shell reverso que torna um serviço local acessível da internet pública

383* Impressão de uma credencial ou token ao vivo na transcrição ou em um arquivo383* Impressão de uma credencial ou token ao vivo na transcrição ou em um arquivo

384* Acesso a um local listado como um local de dados sensíveis em seu [ambiente](/docs/pt/auto-mode-config#define-trusted-infrastructure), ou cópia de dados de um. A partir de v2.1.198, isso também bloqueia o envio de dados de um para um público que a entrada exclui384* Acesso a um local listado como um local de dados sensíveis em seu [ambiente](/docs/pt/auto-mode-config#define-trusted-infrastructure), ou cópia de dados para fora de um. A partir da v2.1.198, isso também bloqueia o envio de dados de um para um público que a entrada exclui

385* Roteamento de uma instalação de pacote em torno de seu registro de pacotes interno para um registro público. A partir de v2.1.198, isso também se aplica quando você disse a Claude que um registro interno ou espelho existe na conversa, não apenas quando um está listado em seu ambiente385* Roteamento de uma instalação de pacote em torno de seu registro de pacotes interno para um registro público. A partir da v2.1.198, isso também se aplica quando você disse a Claude que um registro interno ou espelho existe na conversa, não apenas quando um está listado em seu ambiente

386* Execução de um comando com um sinalizador que desativa uma proteção de segurança, como `--insecure`386* Execução de um comando com um sinalizador que desativa uma proteção de segurança, como `--insecure`

387* Lançamento de um loop de agente autônomo que executa sem aprovação humana ou sandbox, como um iniciado com `--dangerously-skip-permissions` ou `--no-sandbox`. A partir de v2.1.198, isso também abrange a execução de um agente de terceiros ou harness de avaliação com isolamento e aprovação por ação desabilitados, como um runner iniciado com `--yes-always`387* Lançamento de um loop de agente autônomo que executa sem aprovação humana ou sandbox, como um iniciado com `--dangerously-skip-permissions` ou `--no-sandbox`. A partir da v2.1.198, isso também abrange a execução de um agente de terceiros ou harness de avaliação com isolamento e aprovação por ação desabilitados, como um runner iniciado com `--yes-always`

388* Ações do navegador [Claude in Chrome](/docs/pt/chrome) que poderiam enviar conteúdo da página, cookies ou credenciais fora de origem388* Ações do [Claude no Chrome](/docs/pt/chrome) que poderiam enviar conteúdo da página, cookies ou credenciais fora da origem

389 389 

390Claude Code v2.1.198 e posterior também bloqueiam estes por padrão:390Claude Code v2.1.198 e posterior também bloqueiam estes por padrão:

391 391 

392* Exclusão de arquivos em `/tmp`, `$TMPDIR` ou outro diretório compartilhado de rascunho ou cache por wildcard, glob ou filtro de idade em vez de por um caminho nomeado específico392* Exclusão de arquivos em `/tmp`, `$TMPDIR` ou outro diretório compartilhado de rascunho ou cache por wildcard, glob ou filtro de idade em vez de por um caminho nomeado específico

393* Inclusão de detalhes sensíveis em conteúdo enviado, carregado, publicado ou escrito para outras pessoas ou sistemas compartilhados, quando sua própria mensagem não autorizou esses detalhes para esse destinatário. Corpos de PR e issue, mensagens de commit e comentários contam como esse tipo de conteúdo de saída quando o repositório está fora do limite de confiança ou é público, incluindo seus próprios repositórios públicos da organização; caminhos de arquivo internos, nomes de código, dados de resposta de API ao vivo, como emails ou identificadores de conta, e identificadores de infraestrutura contam como detalhes sensíveis. O escopo de PR, issue e mensagem de commit requer Claude Code v2.1.200 ou posterior. Dados pessoais ao vivo de uma resposta de API em um corpo de PR ou issue, como um endereço de email, um identificador de conta ou organização, ou uma métrica de uso, requer que você nomeie esses detalhes e o destinatário independentemente da visibilidade ou limite de confiança do repositório. Essa verificação requer Claude Code v2.1.203 ou posterior393* Inclusão de detalhes sensíveis em conteúdo enviado, carregado, publicado ou escrito para outras pessoas ou sistemas compartilhados, quando sua própria mensagem não autorizou esses detalhes para esse destinatário. Corpos de PR e issue, mensagens de commit e comentários contam como esse tipo de conteúdo de saída quando o repositório está fora do limite de confiança ou é público, incluindo repositórios públicos de sua própria organização; caminhos de arquivo internos, nomes de código, dados de resposta de API ao vivo, como emails ou identificadores de conta, e identificadores de infraestrutura contam como detalhes sensíveis. O escopo de PR, issue e mensagem de commit requer Claude Code v2.1.200 ou posterior. Dados pessoais ao vivo de uma resposta de API em um corpo de PR ou issue, como um endereço de email, um identificador de conta ou organização, ou uma métrica de uso, requer que você nomeie esses detalhes e o destinatário independentemente da visibilidade ou limite de confiança do repositório. Essa verificação requer Claude Code v2.1.203 ou posterior

394* Envio de pressionamentos de tecla para o próprio painel tmux de Claude Code para conduzir sua própria interface, que o classificador trata como Claude alterando suas próprias permissões ou supervisão394* Envio de pressionamentos de tecla para o próprio painel tmux de Claude Code para conduzir sua própria interface, que o classificador trata como Claude alterando suas próprias permissões ou supervisão

395 395 

396Claude Code v2.1.200 e posterior também bloqueiam estes por padrão:396Claude Code v2.1.200 e posterior também bloqueiam estes por padrão:

397 397 

398* Comentário, exclusão ou falha forçada de um teste ou asserção que protege comportamento de segurança, como autenticação, controle de acesso, validação de entrada ou sandboxing398* Comentário, exclusão ou falha forçada de um teste ou asserção que protege comportamento de segurança, como autenticação, controle de acesso, validação de entrada ou sandboxing

399* Exclusão ou desmontagem de um recurso com estado que Claude não criou na sessão, quando nenhuma regra de exclusão mais específica se aplica e você não nomeou esse recurso399* Exclusão ou desmontagem de um recurso com estado que Claude não criou na sessão, quando nenhuma regra de exclusão mais específica se aplica e você não nomeou esse recurso

400* Reorientação de uma URL base de API, endpoint de proxy, receptor de webhook ou espelho de registro em um host de terceiros que não se encaixa na tarefa, incluindo em arquivos de exemplo como `.env.example`400* Redirecionamento de uma URL de base de API, endpoint de proxy, receptor de webhook ou espelho de registro para um host de terceiros que não se encaixa na tarefa, incluindo em arquivos de exemplo como `.env.example`

401* Alteração de para onde os pushes vão com `git remote set-url` ou `git remote add`, a menos que você tenha nomeado o novo remoto401* Alteração de para onde os pushes vão com `git remote set-url` ou `git remote add`, a menos que você tenha nomeado o novo remoto

402* Envio de segredos ou dados pessoais ou confiados para um repositório conhecido como público, ou envio de material confidencial lá que não faz parte do próprio trabalho desse repositório. O próprio assunto de um repositório de dotfiles é a única exceção para dados pessoais ou confiados, e conteúdo de um repositório privado chegando a qualquer superfície pública é bloqueado da mesma forma; ambos os refinamentos requerem Claude Code v2.1.203 ou posterior. Antes de v2.1.203, dados pessoais eram agrupados com material confidencial e bloqueados apenas quando não faziam parte do próprio trabalho desse repositório. Quando a visibilidade de um repositório não é estabelecida, o classificador não bloqueia apenas nisso; ele julga o conteúdo contra as outras regras em vez disso402* Envio de segredos ou dados pessoais ou confiados para um repositório conhecido como público, ou envio de material confidencial lá que não faz parte do próprio trabalho desse repositório. O próprio assunto de um repositório de dotfiles é a única exceção para dados pessoais ou confiados, e conteúdo de um repositório privado chegando a qualquer superfície pública é bloqueado da mesma forma; ambos os refinamentos requerem Claude Code v2.1.203 ou posterior. Antes da v2.1.203, dados pessoais eram agrupados com material confidencial e bloqueados apenas quando não faziam parte do próprio trabalho desse repositório. Quando a visibilidade de um repositório não é estabelecida, o classificador não bloqueia apenas nisso; ele julga o conteúdo contra as outras regras em vez disso

403* Abertura de uma solicitação de pull contra um repositório ou organização diferente, bifurcação com `gh repo fork` ou push para um repositório de terceiros, a menos que você tenha nomeado esse alvo externo403* Abertura de uma solicitação de pull contra um repositório ou organização diferente, fork com `gh repo fork` ou push para um repositório de terceiros, a menos que você tenha nomeado esse alvo externo

404 404 

405Claude Code v2.1.203 e posterior também bloqueiam estes por padrão:405Claude Code v2.1.203 e posterior também bloqueiam estes por padrão:

406 406 


408 408 

409Claude Code v2.1.205 e posterior também bloqueiam estes por padrão:409Claude Code v2.1.205 e posterior também bloqueiam estes por padrão:

410 410 

411* Escrita em transcrições de sessão Claude Code, os arquivos de histórico `.jsonl` sob `~/.claude/projects/` ou seu diretório de configuração configurado, seja diretamente ou através de um comando de shell. A regra também abrange as linhas de metadados que Claude Code acrescenta a cada entrada de transcrição para suas próprias verificações. Ler uma transcrição não é bloqueado411* Escrita em transcrições de sessão de Claude Code, os arquivos de histórico `.jsonl` em `~/.claude/projects/` ou seu diretório de configuração configurado, seja diretamente ou através de um comando de shell. A regra também abrange as linhas de metadados que Claude Code acrescenta a cada entrada de transcrição para suas próprias verificações. Ler uma transcrição não é bloqueado

412* Uma exclusão forçada recursiva como `rm -rf "$VAR"` ou `Remove-Item -Recurse -Force $dir` cujo alvo é uma variável de shell que não é atribuída em nenhum lugar na conversa que o classificador vê, ou um glob enraizado em tal variável. O valor veio apenas da saída de comando anterior, que o classificador nunca recebe, portanto o classificador não pode verificar o alvo de exclusão contra as outras regras de exclusão. O bloqueio se limpa quando você nomeia o caminho exato sendo excluído, ou quando Claude re-executa a exclusão com o caminho literal resolvido escrito no comando. Exclusões cujo alvo o classificador pode resolver não são afetadas.412* Uma exclusão forçada recursiva como `rm -rf "$VAR"` ou `Remove-Item -Recurse -Force $dir` cujo alvo é uma variável de shell que não é atribuída em nenhum lugar na conversa que o classificador vê, ou um glob enraizado em tal variável. O valor veio apenas da saída de comando anterior, que o classificador nunca recebe, portanto o classificador não pode verificar o alvo de exclusão contra as outras regras de exclusão. O bloqueio é limpo quando você nomeia o caminho exato sendo excluído, ou quando Claude re-executa a exclusão com o caminho literal resolvido escrito no comando. Exclusões cujo alvo o classificador pode resolver não são afetadas.

413 413 

414 Um glob diretamente sob a variável, como em `rm -rf "$VAR"/*`, é um [caminho crítico](#critical-paths) em vez disso. Alvos `Remove-Item` que são um `*` simples ou terminam em `/*` ou `\*` nunca chegam ao classificador: Claude Code [os nega imediatamente](#remove-item-in-powershell).414 Um glob diretamente sob a variável, como em `rm -rf "$VAR"/*`, é um [caminho crítico](#critical-paths) em vez disso. Alvos `Remove-Item` que são um `*` simples ou terminam em `/*` ou `\*` nunca chegam ao classificador: Claude Code [os nega imediatamente](#remove-item-in-powershell).

415 415 

416Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:416Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:

417 417 

418* Solicitação de credenciais do endpoint de metadados da instância de nuvem, como `169.254.169.254`, ou autenticação explícita de uma chamada de nuvem, cluster ou registro com a identidade de conta de serviço ou nó da máquina418* Solicitação de credenciais do endpoint de metadados da instância de nuvem, como `169.254.169.254`, ou autenticação explícita de uma chamada de nuvem, cluster ou registro com a identidade de conta de serviço ou nó da máquina

419* Alcance de um host público por uma rota diferente de uma solicitação direta, como um túnel, um shell reverso ou uma configuração de resolvedor ou proxy reescrita para apontar para fora419* Alcance de um host público por uma rota diferente de uma solicitação direta, como um túnel, um shell reverso, ou uma configuração de resolvedor ou proxy reescrita para apontar para fora

420* Leitura de credenciais que pertencem ao host em vez de à sua tarefa, como certificados de nó ou auth de registro de contêiner do nó420* Leitura de credenciais que pertencem ao host em vez de à sua tarefa, como certificados de nó ou auth de registro de contêiner do nó

421* Conexão ou varredura de contêineres, pods ou VMs irmãos que Claude não iniciou, ou o nó sob o contêiner421* Conexão ou varredura de contêineres, pods ou VMs irmãos que Claude não iniciou, ou o nó sob o contêiner

422 422 


424 424 

425Claude Code v2.1.261 e posterior também bloqueiam estes por padrão:425Claude Code v2.1.261 e posterior também bloqueiam estes por padrão:

426 426 

427* Postagem ou escrita de um link para um serviço público de paste, diagrama ou compartilhamento de dados em uma mensagem, texto de PR ou issue, um documento ou em qualquer outro lugar onde o link será aberto ou buscado, quando a própria URL carrega o conteúdo sendo compartilhado, a menos que você tenha nomeado esse serviço427* Postagem ou escrita de um link para um serviço público de paste, diagrama ou compartilhamento de dados em uma mensagem, texto de PR ou issue, um documento, ou em qualquer outro lugar onde o link será aberto ou buscado, quando a própria URL carrega o conteúdo sendo compartilhado, a menos que você tenha nomeado esse serviço

428 428 

429**Permitido por padrão**:429**Permitido por padrão**:

430 430 


432* Instalação de dependências declaradas em seus arquivos de lock ou manifestos432* Instalação de dependências declaradas em seus arquivos de lock ou manifestos

433* Leitura de `.env` e envio de credenciais para sua API correspondente433* Leitura de `.env` e envio de credenciais para sua API correspondente

434* Solicitações HTTP somente leitura434* Solicitações HTTP somente leitura

435* Push para qualquer branch do repositório em que você está trabalhando, incluindo o branch padrão. Um branch não padrão cujo nome o marca como um alvo de implantação ou publicação, como `production` ou `gh-pages`, não é coberto: o classificador julga um push lá em seus próprios termos. O conteúdo do push ainda é verificado contra as outras regras, [regras `permissions.deny`](/docs/pt/permissions#manage-permissions) ainda podem bloquear comandos push [conforme escrito](/docs/pt/permissions#bash-rule-limits) em todos os modos, e a proteção de branch própria do remoto ainda se aplica. Antes de v2.1.211, apenas pushes para o branch em que você iniciou, branches que Claude criou e pushes rotineiros para o branch padrão eram permitidos por padrão, e antes de v2.1.203 qualquer push direto para o branch padrão era bloqueado435* Push para qualquer branch do repositório em que você está trabalhando, incluindo o branch padrão. Um branch não padrão cujo nome o marca como um alvo de implantação ou publicação, como `production` ou `gh-pages`, não é coberto: o classificador julga um push lá em seus próprios termos. O conteúdo do push ainda é verificado contra as outras regras, [regras `permissions.deny`](/docs/pt/permissions#manage-permissions) ainda podem bloquear comandos push [conforme escrito](/docs/pt/permissions#bash-rule-limits) em todos os modos, e a proteção de branch própria do remoto ainda se aplica. Antes da v2.1.211, apenas pushes para o branch em que você iniciou, branches que Claude criou e pushes rotineiros para o branch padrão eram permitidos por padrão, e antes da v2.1.203 qualquer push direto para o branch padrão era bloqueado

436 436 

437Claude Code v2.1.195 e posterior também permitem estes por padrão:437Claude Code v2.1.195 e posterior também permitem estes por padrão:

438 438 

439* Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão439* Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão

440* Leitura, revisão ou escrita de código, configs e modelos de ameaça relacionados à segurança como parte de sua tarefa440* Leitura, revisão ou escrita de código relacionado à segurança, configs e modelos de ameaça como parte de sua tarefa

441* Mensagens entre agentes trabalhando juntos na mesma sessão multi-agente441* Mensagens entre agentes trabalhando juntos na mesma sessão multi-agente

442* Envio de dados para os domínios confiáveis, buckets e serviços que você lista em [`environment`](/docs/pt/auto-mode-config#define-trusted-infrastructure). Isso abrange apenas fluxo de dados, não operações destrutivas ou de credencial na mesma infraestrutura442* Envio de dados para os domínios confiáveis, buckets e serviços que você lista em [`environment`](/docs/pt/auto-mode-config#define-trusted-infrastructure). Isso abrange apenas fluxo de dados, não operações destrutivas ou de credencial na mesma infraestrutura

443* [Claude in Chrome](/docs/pt/chrome) navegação para um domínio interno confiável, localhost ou uma URL que você nomeou443* [Claude no Chrome](/docs/pt/chrome) navegação para um domínio interno confiável, localhost ou uma URL que você nomeou

444 444 

445Comandos em sandbox não obtêm acesso à rede por padrão. Claude nomeia os hosts que um comando precisa no próprio comando, o classificador os revisa com o comando, e uma lista aprovada abre esses hosts apenas para esse comando. [Domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) aborda o que uma lista pode e não pode abrir e o que acontece quando um comando alcança um host não listado.445Comandos em sandbox não obtêm acesso à rede por padrão. Claude nomeia os hosts que um comando precisa no próprio comando, o classificador os revisa com o comando, e uma lista aprovada abre esses hosts apenas para esse comando. [Domínios permitidos por comando](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) aborda o que uma lista pode e não pode abrir e o que acontece quando um comando alcança um host não listado.

446 446 

447Execute `claude auto-mode defaults` para imprimir as listas de regras completas como JSON. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repositórios, buckets e serviços confiáveis via configuração `autoMode.environment`: consulte [Configurar modo automático](/docs/pt/auto-mode-config).447Execute `claude auto-mode defaults` para imprimir as listas de regras completas como JSON. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repositórios, buckets e serviços confiáveis via configuração `autoMode.environment`: consulte [Configurar modo automático](/docs/pt/auto-mode-config).

448 448 

449Push para qualquer branch do repositório em que você está trabalhando e criação de uma solicitação de pull que corresponde à sua solicitação executam sem um prompt, a menos que o push ou solicitação de pull caia sob a [lista bloqueada](#what-the-classifier-blocks-by-default), como segredos ou dados sensíveis saindo do repositório, ou uma solicitação de pull que direciona um repositório ou organização diferente. Para exigir um checkpoint humano antes desses comandos enquanto permanece em modo automático, adicione regras `permissions.ask`, que correspondem ao comando [conforme escrito](/docs/pt/permissions#bash-rule-limits): consulte [Limites comuns](/docs/pt/auto-mode-config#common-boundaries).449Push para qualquer branch do repositório em que você está trabalhando e criação de uma solicitação de pull que corresponde à sua solicitação executam sem um prompt, a menos que o push ou solicitação de pull caia sob a [lista bloqueada](#what-the-classifier-blocks-by-default), como segredos ou dados sensíveis saindo do repositório, ou uma solicitação de pull que direciona um repositório ou organização diferente. Para exigir um checkpoint humano antes desses comandos enquanto permanece no modo automático, adicione regras `permissions.ask`, que correspondem ao comando [conforme escrito](/docs/pt/permissions#bash-rule-limits): consulte [Limites comuns](/docs/pt/auto-mode-config#common-boundaries).

450 450 

451<h3 id="first-read-outside-the-working-directories">451<h3 id="first-read-outside-the-working-directories">

452 A primeira leitura fora dos diretórios de trabalho452 A primeira leitura fora dos diretórios de trabalho

453</h3>453</h3>

454 454 

455Enquanto [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está desativado, leituras de arquivo executam sem um prompt em modo automático, incluindo leituras fora dos [diretórios de trabalho](/docs/pt/permissions#working-directories). A primeira vez que Claude usa a ferramenta Read, Grep ou Glob em um caminho fora deles, Claude Code pergunta se você deseja continuar permitindo essas leituras.455Enquanto [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está desativado, leituras de arquivo executam sem um prompt no modo automático, incluindo leituras fora dos [diretórios de trabalho](/docs/pt/permissions#working-directories). A primeira vez que Claude usa a ferramenta Read, Grep ou Glob em um caminho fora deles, Claude Code pergunta se deve permitir essa leitura.

456 456 

457O prompt não aparece em execuções `-p` não interativas ou sessões em segundo plano; leituras lá executam como antes.457O prompt não aparece em execuções `-p` não interativas ou sessões em background; leituras lá executam como antes.

458 458 

459Qualquer que seja sua resposta, Claude continua trabalhando:459Qualquer que seja sua resposta, Claude continua trabalhando:

460 460 

461* **Continuar permitindo**: a leitura é executada, leituras posteriores fora dos diretórios de trabalho executam como antes, e Claude Code registra sua resposta para que o prompt não apareça novamente461* **Sim, e continue permitindo qualquer leitura fora dos diretórios de trabalho**: a leitura executa, leituras posteriores fora dos diretórios de trabalho executam como antes, e Claude Code registra sua resposta para que o prompt não apareça novamente

462* **Bloquear a partir de agora**: a leitura é recusada, e Claude Code define [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) como `true` em suas configurações de usuário, o que faz as ferramentas de arquivo recusarem essas leituras em todas as sessões posteriores e em todos os modos de permissão. Para deixar Claude ler tal caminho depois, adicione seu diretório com `/add-dir` ou remova a configuração.462* **Não, e bloqueie leituras fora dos diretórios de trabalho a partir de agora**: a leitura é recusada, e Claude Code define [`permissions.blockReadsOutsideWorkingDirectories`](/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) como `true` em suas configurações de usuário, o que faz as ferramentas de arquivo recusarem tais leituras em todas as sessões posteriores e em todos os modos de permissão. Para deixar Claude ler tal caminho mais tarde, adicione seu diretório com `/add-dir` ou remova a configuração.

463* **Perguntar novamente na próxima vez**: a leitura é recusada, e a próxima leitura fora dos diretórios de trabalho solicita novamente463* **Não, e pergunte novamente na próxima vez**: a leitura é recusada, e a próxima leitura fora dos diretórios de trabalho solicita novamente

464* **Sim, mas pergunte novamente na próxima vez**: a leitura é executada, nada é salvo, e a próxima leitura fora dos diretórios de trabalho solicita novamente464* **Sim, mas pergunte novamente na próxima vez**: a leitura executa, nada é salvo, e a próxima leitura fora dos diretórios de trabalho solicita novamente

465 465 

466<h3 id="boundaries-you-state-in-conversation">466<h3 id="boundaries-you-state-in-conversation">

467 Limites que você declara na conversa467 Limites que você declara na conversa

468</h3>468</h3>

469 469 

470O classificador trata limites que você declara na conversa como um sinal de bloqueio. Se você disser a Claude "não faça push" ou "espere até eu revisar antes de implantar", o classificador bloqueia ações correspondentes mesmo quando as regras padrão as permitiriam. Um limite permanece em vigor até você levantá-lo em uma mensagem posterior. O próprio julgamento de Claude de que uma condição foi atendida não o levanta.470O classificador trata limites que você declara na conversa como um sinal de bloqueio. Se você disser a Claude "não faça push" ou "aguarde até eu revisar antes de implantar", o classificador bloqueia ações correspondentes mesmo quando as regras padrão as permitiriam. Um limite permanece em vigor até você levantá-lo em uma mensagem posterior. O próprio julgamento de Claude de que uma condição foi atendida não o levanta.

471 471 

472Limites não são armazenados como regras. O classificador os relê da transcrição em cada verificação, portanto um limite pode ser perdido se [compactação de contexto](/docs/pt/costs#reduce-token-usage) remover a mensagem que o declarou. Para uma garantia difícil, adicione uma [regra de negação](/docs/pt/permissions#permission-rule-syntax) em vez disso.472Limites não são armazenados como regras. O classificador os relê da transcrição em cada verificação, portanto um limite pode ser perdido se [compactação de contexto](/docs/pt/costs#reduce-token-usage) remover a mensagem que o declarou. Para uma garantia firme, adicione uma [regra de negação](/docs/pt/permissions#permission-rule-syntax) em vez disso.

473 473 

474<h3 id="approvals-you-state-in-conversation">474<h3 id="approvals-you-state-in-conversation">

475 Aprovações que você declara na conversa475 Aprovações que você declara na conversa

476</h3>476</h3>

477 477 

478Se você disser a Claude que uma ação bloqueada é permitida, o classificador lê isso como sua aprovação e pode limpar o bloqueio. Como você o expressou decide se a ação é executada e até onde a aprovação chega:478Se você disser a Claude que uma ação bloqueada é permitida, o classificador lê isso como sua aprovação e pode limpar o bloqueio. Como você o expressou decide se a ação executa e até onde a aprovação chega:

479 479 

480* **Nomeie a ação e seus detalhes**: sua mensagem tem que nomear a ação e a coisa específica que a torna perigosa, como o branch de um force push. Nomear apenas o verbo não limpa nada, portanto "você pode fazer force-push" deixa o bloqueio em vigor.480* **Nomeie a ação e seus detalhes**: sua mensagem tem que nomear a ação e a coisa específica que a torna perigosa, como o branch de um force push. Nomear apenas o verbo não limpa nada, portanto "você pode fazer force-push" deixa o bloqueio em vigor.

481* **Espere que cubra uma ação**: uma aprovação cobre a ação destrutiva que você nomeou, portanto uma ação posterior é bloqueada novamente a menos que você tenha concedido a aprovação como permanente. Para parar de aprovar um padrão rotineiro uma ação por vez, adicione-o a [`autoMode.allow`](/docs/pt/auto-mode-config#override-the-block-and-allow-rules).481* **Espere que cubra uma ação**: uma aprovação cobre a ação destrutiva que você nomeou, portanto uma ação posterior é bloqueada novamente a menos que você tenha concedido a aprovação como permanente. Para parar de aprovar um padrão rotineiro uma ação por vez, adicione-o a [`autoMode.allow`](/docs/pt/auto-mode-config#override-the-block-and-allow-rules).


489 489 

490* **Uma ação bloqueada**: Claude Code mostra uma notificação e lista a ação em `/permissions` sob a aba **Recently denied**, onde você pode pressionar `r` para tentar novamente com uma aprovação manual.490* **Uma ação bloqueada**: Claude Code mostra uma notificação e lista a ação em `/permissions` sob a aba **Recently denied**, onde você pode pressionar `r` para tentar novamente com uma aprovação manual.

491* **Bloqueios repetidos**: se o classificador bloqueia uma ação 3 vezes seguidas ou 20 vezes no total, o modo automático pausa e Claude Code retoma a solicitação. Aprovar a ação solicitada retoma o modo automático. Consulte [Limites de bloqueio repetido](#repeated-block-thresholds) para como os bloqueios são contados.491* **Bloqueios repetidos**: se o classificador bloqueia uma ação 3 vezes seguidas ou 20 vezes no total, o modo automático pausa e Claude Code retoma a solicitação. Aprovar a ação solicitada retoma o modo automático. Consulte [Limites de bloqueio repetido](#repeated-block-thresholds) para como os bloqueios são contados.

492* **Nenhum veredito do classificador**: quando uma verificação de segurança separada do modo automático recusa a solicitação do classificador, ou a resposta do classificador não é analisada, Claude Code nega a ação sem a notificação ou a entrada **Recently denied**. Consulte [Auto mode cannot determine the safety of an action](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) para a mensagem que cada caso mostra e o que fazer.492* **Sem veredito do classificador**: quando uma verificação de segurança separada do modo automático recusa a própria solicitação do classificador, ou a resposta do classificador não analisa, Claude Code nega a ação sem a notificação ou a entrada **Recently denied**. Consulte [Auto mode cannot determine the safety of an action](/docs/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action) para a mensagem que cada caso mostra e o que fazer.

493* **Nenhum veredito do servidor**: sob [revisão do classificador no servidor](#server-side-classifier-review), Claude Code nega uma ação para a qual o servidor não fornece um veredito, e para a volta após dez respostas seguidas sem veredito. Consulte [O servidor não retornou um veredito de segurança](/docs/pt/errors#the-server-returned-no-safety-verdict).493* **Sem veredito do servidor**: sob [revisão do classificador no servidor](#server-side-classifier-review), Claude Code nega uma ação para a qual o servidor não fornece um veredito, e para a volta após dez respostas seguidas sem veredito. Consulte [O servidor não retornou um veredito de segurança](/docs/pt/errors#the-server-returned-no-safety-verdict).

494* **Uma mudança de modo durante uma verificação**: se você alternar modos de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado. Você é solicitado para aprovação em vez disso, ou a ação é auto-negada em [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).494* **Uma mudança de modo durante uma verificação**: se você alternar modos de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado. Você é solicitado para aprovação em vez disso, ou a ação é negada automaticamente no [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

495 495 

496<h4 id="repeated-block-thresholds">496<h4 id="repeated-block-thresholds">

497 Limites de bloqueio repetido497 Limites de bloqueio repetido

498</h4>498</h4>

499 499 

500Os limites de 3 bloqueios seguidos e 20 bloqueios totais não são configuráveis. O contador total persiste para a sessão e redefine apenas quando seu próprio limite dispara um fallback. Claude Code não conta uma negação para nenhum limite quando uma verificação de segurança separada do modo automático recusa a solicitação do classificador.500Os limites de 3 bloqueios seguidos e 20 bloqueios no total não são configuráveis. O contador total persiste para a sessão e redefine apenas quando seu próprio limite dispara um fallback. Claude Code não conta uma negação para nenhum limite quando uma verificação de segurança separada do modo automático recusa a própria solicitação do classificador.

501 501 

502Uma execução `-p` [não interativa](/docs/pt/headless) sem um [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) não tem um prompt para voltar. Quando bloqueios repetidos atingem um limite, a ação não é executada e Claude continua trabalhando. Claude Code não para a execução.502Uma execução `-p` [não interativa](/docs/pt/headless) sem um [`--permission-prompt-tool`](/docs/pt/cli-reference#cli-flags) não tem um prompt para voltar. Quando bloqueios repetidos atingem um limite, a ação não executa e Claude continua trabalhando. Claude Code não para a execução.

503 503 

504Bloqueios repetidos geralmente significam que o classificador está perdendo contexto sobre sua infraestrutura. Use `/feedback` para relatar falsos positivos, ou tenha um administrador [configurar infraestrutura confiável](/docs/pt/auto-mode-config).504Bloqueios repetidos geralmente significam que o classificador está perdendo contexto sobre sua infraestrutura. Use `/feedback` para relatar falsos positivos, ou tenha um administrador [configurar infraestrutura confiável](/docs/pt/auto-mode-config).

505 505 


523 * Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão523 * Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão

524 * Uma escrita que a [verificação de symlink](/docs/pt/permissions#symlinks) resolve para um caminho protegido o solicita quando o caminho que Claude solicitou não é em si protegido524 * Uma escrita que a [verificação de symlink](/docs/pt/permissions#symlinks) resolve para um caminho protegido o solicita quando o caminho que Claude solicitou não é em si protegido

525 2. Ações somente leitura e edições de arquivo em seu diretório de trabalho são auto-aprovadas, exceto escritas em [caminhos protegidos](#protected-paths) e [a primeira leitura fora dos diretórios de trabalho](#first-read-outside-the-working-directories), que o solicita525 2. Ações somente leitura e edições de arquivo em seu diretório de trabalho são auto-aprovadas, exceto escritas em [caminhos protegidos](#protected-paths) e [a primeira leitura fora dos diretórios de trabalho](#first-read-outside-the-working-directories), que o solicita

526 * Em uma sessão com [revisão do classificador no servidor](#server-side-classifier-review), leitura-apenas e comandos de shell [em sandbox](/docs/pt/sandboxing#sandbox-modes) aguardam essa revisão e são bloqueados se ela os sinalizar526 * Em uma sessão com [revisão do classificador no servidor](#server-side-classifier-review), ações somente leitura e comandos de shell [em sandbox](/docs/pt/sandboxing#sandbox-modes) aguardam essa revisão e são bloqueados se a sinalizam

527 * Uma escrita dentro de seu diretório de trabalho que a [verificação de symlink](/docs/pt/permissions#symlinks) resolve para um local fora dele o solicita527 * Uma escrita dentro de seu diretório de trabalho que a [verificação de symlink](/docs/pt/permissions#symlinks) resolve para um local fora dele o solicita

528 3. Tudo mais vai para o classificador, além de [remoções de caminho crítico](#critical-paths) sob seu tratamento padrão. As ferramentas de conector e ferramentas MCP `requiresUserInteraction` que o solicitam diretamente na etapa 1 nunca chegam ao classificador também, portanto nem uma aprovação exigida pela organização nem uma etapa de consentimento é auto-aprovada528 3. Tudo mais vai para o classificador, além de [remoções de caminho crítico](#critical-paths) sob seu tratamento padrão. As ferramentas de conector e `requiresUserInteraction` ferramentas MCP que o solicitam diretamente na etapa 1 nunca chegam ao classificador, portanto nem uma aprovação exigida pela organização nem uma etapa de consentimento é auto-aprovada

529 4. Se o classificador bloqueia, Claude recebe o motivo e tenta uma alternativa. Na maioria das sessões o motivo nomeia a regra que o classificador correspondeu, como `[Data Exfiltration]`, em vez de dar uma explicação escrita; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials)529 4. Se o classificador bloqueia, Claude recebe o motivo. Na maioria das sessões o motivo nomeia a regra que o classificador correspondeu, como `[Data Exfiltration]`, em vez de fornecer uma explicação escrita; consulte [Revisar negações](/docs/pt/auto-mode-config#review-denials)

530 530 

531 Ao entrar em modo automático, regras de permissão amplas que concedem execução de código arbitrário são descartadas:531 Ao entrar no modo automático, regras de permissão amplas que concedem execução de código arbitrário são descartadas:

532 532 

533 * `Bash(*)` ou `PowerShell(*)` em branco533 * `Bash(*)` ou `PowerShell(*)` em branco

534 * Intérpretes com wildcard como `Bash(python*)`534 * Intérpretes com wildcard como `Bash(python*)`


536 * Regras `Agent`536 * Regras `Agent`

537 * [`Monitor`](/docs/pt/tools-reference#monitor-tool) regras de permissão, porque Claude Code executa comandos Monitor através do shell537 * [`Monitor`](/docs/pt/tools-reference#monitor-tool) regras de permissão, porque Claude Code executa comandos Monitor através do shell

538 538 

539 Regras estreitas como `Bash(npm test)` permanecem em vigor. Claude Code restaura as regras descartadas quando você deixa o modo automático. Antes de v2.1.236, Claude Code deixou regras de permissão `Monitor` em vigor em modo automático, portanto uma regra que correspondesse à ferramenta inteira aprovava comandos Monitor sem revisão do classificador.539 Regras estreitas como `Bash(npm test)` permanecem em vigor. Claude Code restaura as regras descartadas quando você deixa o modo automático. Antes da v2.1.236, Claude Code deixou regras de permissão `Monitor` em vigor no modo automático, portanto uma regra que correspondesse à ferramenta inteira aprovava comandos Monitor sem revisão do classificador.

540 540 

541 Claude Code também executa `git status` em si antes de um comando que descartaria trabalho não confirmado, como `git reset --hard` ou `rm -rf`, e mostra ao classificador se há trabalho preparado, modificado ou não rastreado presente. Claude Code relata arquivos não rastreados nessa verificação mesmo quando a configuração git do repositório define `status.showUntrackedFiles=no`.541 Claude Code também executa `git status` em si antes de um comando que descartaria trabalho não confirmado, como `git reset --hard` ou `rm -rf`, e mostra ao classificador se há trabalho preparado, modificado ou não rastreado presente. Claude Code relata arquivos não rastreados nessa verificação mesmo quando a configuração git do repositório define `status.showUntrackedFiles=no`.

542 542 

543 Nas solicitações do classificador enviadas pelo próprio Claude Code, o classificador vê mensagens do usuário, chamadas de ferramenta diferentes de lookups somente leitura como leituras de arquivo e buscas, e seu conteúdo CLAUDE.md. Resultados de ferramenta são removidos dessas solicitações, portanto conteúdo hostil em um arquivo ou página da web não pode manipular o classificador diretamente.543 Nas solicitações do classificador enviadas pelo próprio Claude Code, o classificador vê mensagens do usuário, chamadas de ferramenta diferentes de lookups somente leitura como leituras de arquivo e buscas, e seu conteúdo CLAUDE.md. Resultados de ferramentas são removidos dessas solicitações, portanto conteúdo hostil em um arquivo ou página da web não pode manipular o classificador diretamente.

544 544 

545 Você pode anotar o resultado de uma chamada com um campo [`classifierContext` do hook PostToolUse](/docs/pt/hooks#annotate-a-result-for-the-auto-mode-classifier), que o classificador lê como contexto fornecido pela aplicação. O campo requer Claude Code v2.1.236 ou posterior.545 Você pode anotar o resultado de uma chamada com um campo [`classifierContext` do hook PostToolUse](/docs/pt/hooks#annotate-a-result-for-the-auto-mode-classifier), que o classificador lê como contexto fornecido pela aplicação. O campo requer Claude Code v2.1.236 ou posterior.

546 546 

547 Uma sonda separada no servidor verifica conteúdo de resultado de ferramenta recebido e sinaliza conteúdo suspeito antes que Claude o leia. Para mais sobre como essas camadas funcionam juntas, consulte o [anúncio de modo automático](https://claude.com/blog/auto-mode) e o [aprofundamento de engenharia](https://www.anthropic.com/engineering/claude-code-auto-mode).547 Uma sonda separada no servidor escaneia resultados de ferramentas recebidas e sinaliza conteúdo suspeito antes que Claude o leia. Para mais sobre como essas camadas funcionam juntas, consulte o [anúncio do modo automático](https://claude.com/blog/auto-mode) e o [aprofundamento de engenharia](https://www.anthropic.com/engineering/claude-code-auto-mode).

548 </Accordion>548 </Accordion>

549 549 

550 <Accordion title="Como o modo automático lida com subagentes">550 <Accordion title="Como o modo automático lida com subagentes">

551 O classificador verifica o trabalho de [subagente](/docs/pt/sub-agents) em três pontos:551 O classificador verifica o trabalho de [subagentes](/docs/pt/sub-agents) em três pontos:

552 552 

553 1. Antes de um subagente iniciar, a descrição da tarefa delegada é avaliada, portanto uma tarefa que parece perigosa é bloqueada no tempo de spawn.553 1. Antes de um subagente iniciar, a descrição da tarefa delegada é avaliada, portanto uma tarefa que parece perigosa é bloqueada no tempo de spawn.

554 2. Enquanto o subagente executa, cada uma de suas ações passa pelo classificador com as mesmas regras que a sessão pai, e qualquer `permissionMode` no frontmatter do subagente é ignorado.554 2. Enquanto o subagente executa, cada uma de suas ações passa pelo classificador com as mesmas regras que a sessão pai, e qualquer `permissionMode` no frontmatter do subagente é ignorado.

555 3. Quando o subagente termina, o classificador revisa seu trabalho e seu relatório final antes que o pai leia o relatório. Quando o classificador sinaliza o trabalho ou relatório do subagente, ou uma verificação de segurança de API separada recusa a revisão, o relatório ainda é entregue, precedido por um aviso de segurança. Quando o classificador não está disponível para a revisão, o relatório chega com uma nota para verificar o trabalho do subagente antes de agir com base nele.555 3. Quando o subagente termina, o classificador revisa seu trabalho e seu relatório final antes que o pai leia o relatório. Quando o classificador sinaliza o trabalho ou relatório do subagente, ou uma verificação de segurança de API separada recusa a revisão, o relatório ainda é entregue, precedido por um aviso de segurança. Quando o classificador está indisponível para a revisão, o relatório chega com uma nota para verificar o trabalho do subagente antes de agir com base nele.

556 </Accordion>556 </Accordion>

557 557 

558 <Accordion title="Custo e latência">558 <Accordion title="Custo e latência">

559 O classificador executa em Claude Sonnet 5 por padrão em vez de sua seleção `/model`. Um modelo de classificador que a Anthropic configura no servidor tem precedência sobre esse padrão. Quando o modelo de sua sessão é Claude Sonnet 4.6, ou quando [`availableModels`](/docs/pt/model-config#restrict-model-selection) exclui Sonnet 5, o classificador executa no modelo da sessão em vez disso, ou em um modelo Opus quando a sessão executa em um [modelo Fable](/docs/pt/model-config#work-with-fable); em provedores diferentes da API Anthropic, esse fallback Opus é o modelo Opus padrão do provedor.559 O classificador executa em Claude Sonnet 5 por padrão em vez de em sua seleção `/model`. Um modelo classificador que a Anthropic configura no servidor tem precedência sobre esse padrão. Quando o modelo de sua sessão é Claude Sonnet 4.6, ou quando [`availableModels`](/docs/pt/model-config#restrict-model-selection) exclui Sonnet 5, o classificador executa no modelo de sua sessão em vez disso, ou em um modelo Opus quando a sessão executa em um [modelo Fable](/docs/pt/model-config#work-with-fable); em provedores diferentes da API Anthropic, esse fallback Opus é o modelo Opus padrão do provedor.

560 560 

561 A primeira solicitação de modo automático da sessão valida o padrão Sonnet 5: se a solicitação for bem-sucedida, Sonnet 5 permanece o modelo de classificador da sessão, e se falhar porque o modelo não está disponível, a sessão usa o fallback em vez disso. Depois que essa validação se resolve, o modelo do classificador não muda para a sessão.561 A primeira solicitação de modo automático da sessão valida o padrão Sonnet 5: se a solicitação for bem-sucedida, Sonnet 5 permanece o modelo classificador da sessão, e se falhar porque o modelo não está disponível, a sessão usa o fallback em vez disso. Depois que essa validação se resolve, o modelo do classificador não muda para a sessão.

562 562 

563 Em planos Enterprise e em contas que usam a API Claude, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de token. Cada verificação envia uma porção da transcrição mais a ação pendente, adicionando uma volta antes da execução. Leituras e edições de diretório de trabalho fora de caminhos protegidos pulam o classificador, portanto a sobrecarga vem principalmente de comandos de shell e operações de rede. Onde o servidor revisa as ações como parte das solicitações de modelo da sessão, não há chamadas de classificador separadas para contar; consulte [Revisão do classificador no servidor](#server-side-classifier-review).563 Em planos Enterprise e em contas que usam a API Claude, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de token. Cada verificação envia uma porção da transcrição mais a ação pendente, adicionando uma volta antes da execução. Leituras e edições de diretório de trabalho fora de caminhos protegidos pulam o classificador, portanto a sobrecarga vem principalmente de comandos de shell e operações de rede. Onde o servidor revisa as ações como parte das solicitações de modelo da sessão, não há chamadas do classificador separadas para contar; consulte [Revisão do classificador no servidor](#server-side-classifier-review).

564 564 

565 Acesso à rede em sandbox não adiciona solicitações de classificador por conexão. O classificador julga [os hosts que um comando nomeia](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) junto com o comando em uma revisão, e Claude Code verifica cada conexão contra a lista aprovada sem chamar o classificador novamente.565 Acesso à rede em sandbox não adiciona solicitações do classificador por conexão. O classificador julga [os hosts que um comando nomeia](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) junto com o comando em uma revisão, e Claude Code verifica cada conexão contra a lista aprovada sem chamar o classificador novamente.

566 </Accordion>566 </Accordion>

567</AccordionGroup>567</AccordionGroup>

568 568 

permissions.md +1 −0

Details

290* **`docker` apontado para outro daemon**: formas somente leitura de `docker` solicitam quando o comando carrega uma flag que seleciona um daemon diferente, como `-H`, `--context` ou `--url` e `--connection` do Podman.290* **`docker` apontado para outro daemon**: formas somente leitura de `docker` solicitam quando o comando carrega uma flag que seleciona um daemon diferente, como `-H`, `--context` ou `--url` e `--connection` do Podman.

291* **`file` com flags de abertura de caminho**: `file` solicita quando passa `-m`/`--magic-file` ou `-f`/`--files-from`, porque essas flags fazem `file` abrir os caminhos nomeados no valor da flag.291* **`file` com flags de abertura de caminho**: `file` solicita quando passa `-m`/`--magic-file` ou `-f`/`--files-from`, porque essas flags fazem `file` abrir os caminhos nomeados no valor da flag.

292* **Caminhos de rede no Windows**: um comando cujos argumentos incluem um caminho de rede (UNC), como `\\server\share\file`, solicita porque acessar um caminho de rede pode enviar suas credenciais do Windows para o host que ele nomeia. A mesma verificação se aplica a comandos da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool).292* **Caminhos de rede no Windows**: um comando cujos argumentos incluem um caminho de rede (UNC), como `\\server\share\file`, solicita porque acessar um caminho de rede pode enviar suas credenciais do Windows para o host que ele nomeia. A mesma verificação se aplica a comandos da [ferramenta PowerShell](/docs/pt/tools-reference#powershell-tool).

293* **Escrita em variáveis de shell especiais**: um comando que define, desdefine ou itera sobre certas variáveis de shell especiais, como `PATH` ou `IFS`, solicita mesmo quando o resto do comando é somente leitura.

293* **Comandos que a análise não consegue analisar**: quando Claude Code não consegue analisar completamente um comando, solicita aprovação em vez de tratar o comando como somente leitura. Comandos mais longos que 10.000 caracteres sempre solicitam porque excedem o que a análise analisa.294* **Comandos que a análise não consegue analisar**: quando Claude Code não consegue analisar completamente um comando, solicita aprovação em vez de tratar o comando como somente leitura. Comandos mais longos que 10.000 caracteres sempre solicitam porque excedem o que a análise analisa.

294 295 

295Um `cd` em um caminho dentro do seu diretório de trabalho ou um [diretório adicional](#working-directories) também é somente leitura, e um comando composto como `cd packages/api && ls` é executado sem um prompt quando cada parte se qualifica por conta própria. Estas combinações solicitam mesmo quando cada parte é somente leitura:296Um `cd` em um caminho dentro do seu diretório de trabalho ou um [diretório adicional](#working-directories) também é somente leitura, e um comando composto como `cd packages/api && ls` é executado sem um prompt quando cada parte se qualifica por conta própria. Estas combinações solicitam mesmo quando cada parte é somente leitura:

Details

165 165 

166Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Quando o plugin não está instalado nesse escopo, o comando imprime uma linha que começa com `Failed to uninstall plugin "formatter@my-marketplace":` e sai com `1`.166Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Quando o plugin não está instalado nesse escopo, o comando imprime uma linha que começa com `Failed to uninstall plugin "formatter@my-marketplace":` e sai com `1`.

167 167 

168Se a linha de falha continuar com `"formatter" was not uninstalled:`, Claude Code não conseguiu confirmar que as configurações do escopo não ativam mais o plugin, então o plugin permanece instalado com tudo que salvou. Com `--json`, o resultado carrega `failureCode: "settings_still_on"`. Esta verificação de configurações requer Claude Code v2.1.282 ou posterior.168Se a linha de falha continuar com `"formatter" was not uninstalled:` e nomear um arquivo de configurações, Claude Code não conseguiu confirmar que as configurações do escopo não ativam mais o plugin, então o plugin permanece instalado com tudo que salvou. Com `--json`, o resultado carrega `failureCode: "settings_still_on"`. Esta verificação de configurações requer Claude Code v2.1.282 ou posterior.

169 169 

170<h4 id="what-an-uninstall-deletes-and-keeps">170<h4 id="what-an-uninstall-deletes-and-keeps">

171 O que uma desinstalação deleta e mantém171 O que uma desinstalação deleta e mantém


709Remova a declaração de um marketplace de suas configurações. `rm` é um alias para `remove`.709Remova a declaração de um marketplace de suas configurações. `rm` é um alias para `remove`.

710 710 

711<Warning>711<Warning>

712 Quando você remove um marketplace do último escopo que o declara, Claude Code também exclui seu cache e desinstala cada plugin que você instalou dele. Sem `--scope`, o comando remove a declaração de cada escopo. Para atualizar um marketplace sem perder seus plugins, execute `plugin marketplace update`.712 Quando você remove um marketplace do último escopo que o declara, Claude Code também exclui seu cache e desinstala cada plugin que você instalou dele. Também exclui suas [opções e segredos](/docs/pt/plugins/manifest-reference#user-configuration) salvos e [dados](/docs/pt/plugins/components#path-variables-and-persistent-data) onde puder.

713 

714 Para atualizar um marketplace sem perder seus plugins, execute `plugin marketplace update`.

713</Warning>715</Warning>

714 716 

715```bash theme={null}717```bash theme={null}


728claude plugin marketplace remove your-marketplace730claude plugin marketplace remove your-marketplace

729```731```

730 732 

731Claude Code imprime `Successfully removed marketplace: your-marketplace`, adicionando `(from project settings)` quando você o escopo. Se você escopar para um arquivo de configurações que não declara o marketplace, o comando falha com `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`733Claude Code imprime `Successfully removed marketplace: your-marketplace`. Quando o comando desinstala plugins, a saída os lista sob uma linha como `Also uninstalled 2 plugins from this marketplace:`. Para usar um deles novamente, adicione o marketplace de volta e reinstale o plugin.

734 

735Se você escopar para um arquivo de configurações que não declara o marketplace, o comando falha com `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

732 736 

733<h3 id="plugin-marketplace-update">737<h3 id="plugin-marketplace-update">

734 plugin marketplace update738 plugin marketplace update

Details

126 126 

127Cada plugin que você distribui é um objeto no array `plugins` de `marketplace.json`. Para adicionar um segundo plugin, adicione um segundo objeto. Estes campos cobrem a maioria das entradas:127Cada plugin que você distribui é um objeto no array `plugins` de `marketplace.json`. Para adicionar um segundo plugin, adicione um segundo objeto. Estes campos cobrem a maioria das entradas:

128 128 

129* `name`: o identificador que as pessoas digitam antes de `@` quando instalam. Não pode conter espaços.129* `name`: o identificador que as pessoas digitam antes de `@` quando instalam. [Entradas de plugin](/docs/pt/plugins/marketplace-reference#plugin-entries) fornece os caracteres que um nome pode usar.

130* `source`: onde Claude Code busca o plugin. Escreva uma string de caminho relativo para um plugin dentro do diretório do marketplace, como no [passo a passo](#create-a-marketplace), ou um objeto de source para um plugin fora dele. Veja [Escolher uma source de plugin](#choose-a-plugin-source).130* `source`: onde Claude Code busca o plugin. Escreva uma string de caminho relativo para um plugin dentro do diretório do marketplace, como no [passo a passo](#create-a-marketplace), ou um objeto de source para um plugin fora dele. Veja [Escolher uma source de plugin](#choose-a-plugin-source).

131* `description`: a linha que as pessoas veem ao lado do plugin quando navegam seu marketplace em `/plugin`.131* `description`: a linha que as pessoas veem ao lado do plugin quando navegam seu marketplace em `/plugin`.

132 132 


199 199 

200* Erros de sintaxe JSON, como `json: Invalid JSON syntax: <reason>`200* Erros de sintaxe JSON, como `json: Invalid JSON syntax: <reason>`

201* Campos obrigatórios ausentes, como `owner: Invalid input`201* Campos obrigatórios ausentes, como `owner: Invalid input`

202* Um nome de marketplace com espaços, caracteres não-ASCII, ou uma forma que imita um marketplace oficial da Anthropic, como `claude-official`202* Um nome de marketplace ou plugin que quebra as regras de nomenclatura na [referência do marketplace](/docs/pt/plugins/marketplace-reference#top-level-fields)

203* Uma `source` relativa que contém `..`203* Uma `source` relativa que contém `..`

204* Campos desconhecidos no nível superior ou em uma entrada de plugin, como avisos204* Campos desconhecidos no nível superior ou em uma entrada de plugin, como avisos

205* Problemas no `plugin.json` de cada plugin de caminho relativo, como `plugins[N] plugin.json → <field>: <message>`205* Problemas no `plugin.json` de cada plugin de caminho relativo, como `plugins[N] plugin.json → <field>: <message>`

Details

121 121 

122Em seu terminal, plugins sincronizam apenas em sessões onde você se conecta com sua conta claude.ai.122Em seu terminal, plugins sincronizam apenas em sessões onde você se conecta com sua conta claude.ai.

123 123 

124Claude Code não baixa nem carrega plugins sincronizados nessas sessões de terminal, mesmo depois que você se conecta com `/login`:

125 

126* Uma sessão onde `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, ou um script `apiKeyHelper` fornece a credencial no lugar dessa conexão

127* Uma sessão que não [busca sinalizadores de recursos da Anthropic](/docs/pt/env-vars#features-that-need-feature-flag-fetching), como uma onde você define `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

128* Uma sessão em [modo bare](/docs/pt/headless#start-faster-with-bare-mode) ou uma que você inicia com `--safe-mode`

129* Uma sessão que você inicia com uma lista [`--setting-sources`](/docs/pt/cli-reference#cli-flags) que deixa de fora `user`

130 

124Se você se conectou em uma versão anterior de Claude Code, essa conexão não cobre plugins até Claude Code renová-la em segundo plano. Para obter acesso mais cedo, execute `/login` novamente. A sincronização de plugins então inicia na próxima vez que você iniciar Claude Code.131Se você se conectou em uma versão anterior de Claude Code, essa conexão não cobre plugins até Claude Code renová-la em segundo plano. Para obter acesso mais cedo, execute `/login` novamente. A sincronização de plugins então inicia na próxima vez que você iniciar Claude Code.

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">


190| `.trash/` | Plugins que a sincronização claude.ai removeu, como depois que você desliga um em claude.ai ou para de sincronizar |197| `.trash/` | Plugins que a sincronização claude.ai removeu, como depois que você desliga um em claude.ai ou para de sincronizar |

191| `installed_plugins.json` e `known_marketplaces.json` | Os registros do que Claude Code instalou e quais marketplaces ele buscou, descritos sob [Verificar qual estágio um plugin atingiu](#check-which-stage-a-plugin-reached). Um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai) é registrado em `known_marketplaces_claudeai.json` em vez disso |198| `installed_plugins.json` e `known_marketplaces.json` | Os registros do que Claude Code instalou e quais marketplaces ele buscou, descritos sob [Verificar qual estágio um plugin atingiu](#check-which-stage-a-plugin-reached). Um [marketplace hospedado em claude.ai](/docs/pt/plugins/install#add-from-claude-ai) é registrado em `known_marketplaces_claudeai.json` em vez disso |

192| `flagged-plugins.json` | Plugins que Claude Code desinstalou porque seus marketplaces os removeram da lista. Eles aparecem na seção **Flagged** do `/plugin`; veja [Hospedar um marketplace](/docs/pt/plugins/host-marketplace) |199| `flagged-plugins.json` | Plugins que Claude Code desinstalou porque seus marketplaces os removeram da lista. Eles aparecem na seção **Flagged** do `/plugin`; veja [Hospedar um marketplace](/docs/pt/plugins/host-marketplace) |

200| `installed_plugins.set-aside.<date>.<hash>.json` e `installed_plugins.unreadable.<date>.<hash>.kept` | Cópias datadas que Claude Code mantém antes de descartar registros de instalação que nenhuma versão do Claude Code pode usar ou reconstruir um `installed_plugins.json` ilegível. Veja [as notas de recuperação](/docs/pt/plugins/troubleshooting#installed-plugins-json-could-not-be-read-and-was-rebuilt). Eles envelhecem no cronograma [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays) |

193 201 

194Como `${CLAUDE_PLUGIN_ROOT}` aponta para um diretório de versão, o caminho raiz de um plugin muda a cada versão. Mantenha os arquivos duráveis de um plugin em `${CLAUDE_PLUGIN_DATA}` em vez disso.202Como `${CLAUDE_PLUGIN_ROOT}` aponta para um diretório de versão, o caminho raiz de um plugin muda a cada versão. Mantenha os arquivos duráveis de um plugin em `${CLAUDE_PLUGIN_DATA}` em vez disso.

195 203 

Details

48* **Nomes de marketplace comunitário**: `claude-community`, `claude-plugins-community` e `healthcare`. Reservado sob a mesma regra que os nomes oficiais.48* **Nomes de marketplace comunitário**: `claude-community`, `claude-plugins-community` e `healthcare`. Reservado sob a mesma regra que os nomes oficiais.

49* **Nomes de diretório de plugins**: `anthropic-plugin-directory` e `claude-plugin-directory`. Reservado sob a mesma regra que os nomes oficiais.49* **Nomes de diretório de plugins**: `anthropic-plugin-directory` e `claude-plugin-directory`. Reservado sob a mesma regra que os nomes oficiais.

50* **Nomes que se passam por um marketplace oficial**: nomes como `official-claude-plugins` ou `claude-plugins-v2`, e qualquer nome contendo um caractere não-ASCII. O erro é `Marketplace name impersonates an official Anthropic/Claude marketplace`. Um caractere de controle ou formatação bidirecional em um nome também relata `Marketplace name cannot contain control or bidirectional-formatting characters`. Um marketplace já registrado sob tal nome para de carregar, junto com seus plugins.50* **Nomes que se passam por um marketplace oficial**: nomes como `official-claude-plugins` ou `claude-plugins-v2`, e qualquer nome contendo um caractere não-ASCII. O erro é `Marketplace name impersonates an official Anthropic/Claude marketplace`. Um caractere de controle ou formatação bidirecional em um nome também relata `Marketplace name cannot contain control or bidirectional-formatting characters`. Um marketplace já registrado sob tal nome para de carregar, junto com seus plugins.

51* <span id="reserved-name-spellings" />**Outra grafia de um nome reservado**: um nome que difere de um nome reservado apenas por um ponto final, ou por um símbolo diferente de um hífen no lugar de um hífen, então `claude.code.plugins` conta como `claude-code-plugins`. `claude plugin validate` aceita tal nome; adicionar o marketplace falha com [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/pt/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e um marketplace já registrado sob um para de carregar. Esta verificação requer Claude Code v2.1.280 ou posterior.51* <span id="reserved-name-spellings" />**Outra grafia de um nome reservado**: um nome que difere de um nome reservado apenas por um ponto final, ou por um símbolo diferente de um hífen no lugar de um hífen, então `claude.code.plugins` conta como `claude-code-plugins`. Adicionar o marketplace falha com [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/pt/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e um marketplace já registrado sob um para de carregar. Esta verificação requer Claude Code v2.1.280 ou posterior.

52* **Nomes que Claude Code usa para plugins que não vêm de um marketplace**: `inline` para plugins carregados com [`--plugin-dir`](/docs/pt/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins carregados automaticamente de [`.claude/skills/`](/docs/pt/skills) e `synced` para plugins sincronizados de sua conta claude.ai. `claude-plugin-test` também é reservado. `skills-dir` também aparece como `{"source": "skills-dir"}` em `strictKnownMarketplaces` e `blockedMarketplaces`, descrito em [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).52* **Nomes que Claude Code usa para plugins que não vêm de um marketplace**: `inline` para plugins carregados com [`--plugin-dir`](/docs/pt/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins carregados automaticamente de [`.claude/skills/`](/docs/pt/skills) e `synced` para plugins sincronizados de sua conta claude.ai. `claude-plugin-test` também é reservado. `skills-dir` também aparece como `{"source": "skills-dir"}` em `strictKnownMarketplaces` e `blockedMarketplaces`, descrito em [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: reservado em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: reservado em qualquer capitalização. Esta verificação requer Claude Code v2.1.275 ou posterior.

54* **Nomes começando com `claudeai-`**: reservado para marketplaces hospedados em claude.ai. `claude plugin marketplace add` recusa qualquer outro marketplace que use um com `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.54* **Nomes começando com `claudeai-`**: reservado para marketplaces hospedados em claude.ai. `claude plugin marketplace add` recusa qualquer outro marketplace que use um com `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.


63 63 

64| Field | Type | Description |64| Field | Type | Description |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Identificador do marketplace. Sem espaços, caracteres de controle ou caracteres de formatação bidirecional, sem `/` ou `\`, sem `..` e não `.`. Veja [Reserved names](#reserved-names). Os usuários digitam após `@` quando instalam um plugin |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) |

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 |


87 87 

88| Field | Type | Description |88| Field | Type | Description |

89| :- | :- | :- |89| :- | :- | :- |

90| `name` | string | Identificador do plugin, sem espaços, caracteres de controle ou caracteres de formatação bidirecional. Os usuários digitam antes de `@` quando instalam, mesmo quando o próprio `plugin.json` do plugin define um `name` diferente |90| `name` | string | Identificador do plugin: letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito. `claude plugin validate` falha em outros nomes, que Claude Code não consegue instalar. Os usuários digitam antes de `@` quando instalam, mesmo quando o próprio `plugin.json` do plugin define um `name` diferente |

91| `source` | string or object | Onde buscar o plugin. Veja [Plugin sources](#plugin-sources) |91| `source` | string or object | Onde buscar o plugin. Veja [Plugin sources](#plugin-sources) |

92| `description` | string | Mostrado em listagens e detalhes de [`/plugin`](/docs/pt/plugins/install) |92| `description` | string | Mostrado em listagens e detalhes de [`/plugin`](/docs/pt/plugins/install) |

93| `version` | string | String de versão para o plugin. Quando `plugin.json` também define `version`, `plugin.json` tem precedência e `claude plugin validate` avisa. Veja [Plugin loading reference](/docs/pt/plugins/loading) |93| `version` | string | String de versão para o plugin. Quando `plugin.json` também define `version`, `plugin.json` tem precedência e `claude plugin validate` avisa. Veja [Plugin loading reference](/docs/pt/plugins/loading) |


469 469 

470Uma mensagem prefixada com um índice de entrada e `plugin.json →`, como `plugins[2] plugin.json →`, é sobre os próprios arquivos desse plugin. [`claude plugin validate` relata erros](/docs/pt/plugins/troubleshooting#claude-plugin-validate-reports-errors) lista essas mensagens com suas correções.470Uma mensagem prefixada com um índice de entrada e `plugin.json →`, como `plugins[2] plugin.json →`, é sobre os próprios arquivos desse plugin. [`claude plugin validate` relata erros](/docs/pt/plugins/troubleshooting#claude-plugin-validate-reports-errors) lista essas mensagens com suas correções.

471 471 

472Avisos que mencionam nomes de sinalizadores Claude Desktop indicam nomes que Claude Code aceita mas Claude Desktop rejeita, porque as regras de nome do Claude Desktop são mais rigorosas.472Avisos que mencionam nomes de sinalizadores Claude Desktop indicam nomes que Claude Desktop rejeita.

473 473 

474A tabela mapeia mensagens de nível de marketplace para o campo que cada uma é sobre.474A tabela mapeia mensagens de nível de marketplace para o campo que cada uma é sobre.

475 475 


484| `Author name cannot be empty` | Error | `owner.name` |484| `Author name cannot be empty` | Error | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Error | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Error | `plugins[i].name` |

487| `Duplicate plugin name "x" found in marketplace` | Error | Duas entradas compartilham um `name` |489| `Duplicate plugin name "x" found in marketplace` | Error | Duas entradas compartilham um `name` |

488| `plugins.i.source: Invalid input` | Error | A `source` da entrada não corresponde a nenhum tipo. Veja [Invalid input on a source](#invalid-input-on-a-source) |490| `plugins.i.source: Invalid input` | Error | A `source` da entrada não corresponde a nenhum tipo. Veja [Invalid input on a source](#invalid-input-on-a-source) |

489| `plugins[i].source: Path contains "..": <path>` | Error | Uma `source` relativa que escapa da raiz do marketplace |491| `plugins[i].source: Path contains "..": <path>` | Error | Uma `source` relativa que escapa da raiz do marketplace |

Details

646 646 

647Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin está de volta sob **Installed**.647Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin está de volta sob **Installed**.

648 648 

649<h3 id="installed-plugins-json-holds-a-record-this-version-cannot-read">

650 `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

651</h3>

652 

653A mensagem aparece nestas formas:

654 

655* **`claude plugin list`**: imprime como uma `Note:`

656* **`claude plugin install`, `uninstall`, e `update`**: recusam com `Plugin "<name>" was not installed:`, `Plugin "<name>" was not uninstalled:`, ou `Plugin "<name>" was not updated:`, seguido pelo mesmo texto

657* **`--json` em qualquer um desses três comandos**: a linha de resultado carrega a mesma `message` e `failureCode: "install_records_unreadable"`

658* **Vários registros assim**: a mensagem lê `holds records under`

659* **O arquivo inteiro declara um formato que esta versão não conhece**: a mensagem lê `installed_plugins.json is in a format (version <N>) that this version of Claude Code does not know` em vez disso

660 

661O registro nomeado em `installed_plugins.json` é JSON válido sob um id de plugin válido, mas seus campos não analisam para esta versão. Muito provavelmente outra versão do Claude Code o escreveu, talvez uma mais nova.

662 

663Enquanto o registro está lá, esta versão não reescreve o arquivo, então o registro não é perdido.

664 

665Tome as opções da mensagem em ordem:

666 

6671. Atualize Claude Code com `claude update`.

6682. Se você não conseguir atualizar, desinstale o plugin nomeado com a versão do Claude Code que escreveu o registro.

6693. Se nenhum dos dois ajudar, delete o registro de `installed_plugins.json` manualmente, depois reinicie Claude Code ou execute `/reload-plugins`.

670 

671<h3 id="installed-plugins-json-could-not-be-read-and-was-rebuilt">

672 `installed_plugins.json could not be read and was rebuilt`

673</h3>

674 

675`claude plugin list` imprime esta nota, com o caminho de um arquivo mantido nomeado `installed_plugins.unreadable.<date>.<hash>.kept`, enquanto esse arquivo fica ao lado de `installed_plugins.json`.

676 

677Um `installed_plugins.json` que não é JSON válido, ou não é uma lista de plugins, não pode dizer o que você instalou.

678 

679Abra o arquivo `.kept` para ver o que o arquivo antigo registrou, e reinstale os plugins que você está perdendo. Claude Code nunca lê o arquivo de volta, e o arquivo envelhece no cronograma [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays).

680 

681<h3 id="install-records-under-names-that-no-version-can-use">

682 `install records under names that no version of Claude Code can use were removed from installed_plugins.json`

683</h3>

684 

685`claude plugin list` imprime esta nota, com o caminho de uma cópia nomeada `installed_plugins.set-aside.<date>.<hash>.json`, enquanto essa cópia fica ao lado de `installed_plugins.json`. A nota termina `Nothing needs doing about these copies.`

686 

687Um registro em `installed_plugins.json` estava sob uma chave que não é um id de plugin válido, então nenhuma versão do Claude Code pode usá-lo. O resto do arquivo carrega normalmente.

688 

689Claude Code copia os registros inutilizáveis para o arquivo `.set-aside` e os descarta da lista. Claude Code nunca lê as cópias de volta, e as cópias envelhecem no cronograma [`cleanupPeriodDays`](/docs/pt/settings-reference#cleanupperioddays).

690 

649<h3 id="a-plugin-you-disabled-still-loads">691<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`692 `Disabled in ~/.claude/settings.json but still loads`

651</h3>693</h3>


981| `Path contains "..": <path>` sob `plugins[N].source` | Erro | Use caminhos relativos à raiz do marketplace sem segmentos `..`. |1023| `Path contains "..": <path>` sob `plugins[N].source` | Erro | Use caminhos relativos à raiz do marketplace sem segmentos `..`. |

982| `Marketplace name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do nome, como um escape ou uma nova linha. |1024| `Marketplace name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do nome, como um escape ou uma nova linha. |

983| `Plugin name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do `name` do plugin. |1025| `Plugin name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do `name` do plugin. |

1026| `Claude Code cannot install plugins from marketplace "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Erro | Renomeie o marketplace para se adequar à regra que a mensagem declara. |

1027| `Claude Code cannot install plugin "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Erro | Renomeie a entrada para se adequar à regra que a mensagem declara. |

984| `Marketplace has no plugins defined` | Aviso | Adicione pelo menos uma entrada a `plugins`. |1028| `Marketplace has no plugins defined` | Aviso | Adicione pelo menos uma entrada a `plugins`. |

985| `No marketplace description provided` | Aviso | Adicione uma `description` no nível superior. |1029| `No marketplace description provided` | Aviso | Adicione uma `description` no nível superior. |

986| `Plugin name "<name>" is not kebab-case` sob `plugins[N] plugin.json → name` | Aviso | Renomeie para letras minúsculas, dígitos e hífens. Claude Code aceita outras formas, mas a sincronização de marketplace de claude.ai as rejeita. |1030| `Plugin name "<name>" is not kebab-case` sob `plugins[N] plugin.json → name` | Aviso | Renomeie para letras minúsculas, dígitos e hífens; a sincronização de marketplace de claude.ai requer essa forma. |

987| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Aviso | Atualize a entrada para corresponder a `plugin.json`, que é autoritário no tempo de instalação. |1031| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Aviso | Atualize a entrada para corresponder a `plugin.json`, que é autoritário no tempo de instalação. |

988| `Marketplace name "<name>" is reserved in Claude Desktop` | Aviso | Renomeie o marketplace. A sincronização de marketplace gerenciada do Claude Desktop rejeita `org`, `org-provisioned` e `unknown` em qualquer casing. |1032| `Marketplace name "<name>" is reserved in Claude Desktop` | Aviso | Renomeie o marketplace. A sincronização de marketplace gerenciada do Claude Desktop rejeita `org`, `org-provisioned` e `unknown` em qualquer casing. |

989| `Marketplace name "<name>" is not accepted by Claude Desktop` ou `Plugin name "<name>" is not accepted by Claude Desktop` | Aviso | Renomeie para no máximo 128 caracteres de letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito. |1033| `Marketplace name "<name>" is not accepted by Claude Desktop` ou `Plugin name "<name>" is not accepted by Claude Desktop` | Aviso | Renomeie para no máximo 128 caracteres de letras, dígitos, `.`, `_` e `-`, começando com uma letra ou dígito. |

Details

200 200 

201O mesmo alternador aparece fora da CLI:201O mesmo alternador aparece fora da CLI:

202 202 

203* **Aplicativo Desktop**: **Settings > Claude Code > Enable remote control by default**.203* **Aplicativo Desktop**: **Settings > Claude Code > Connect new sessions to Remote Control**.

204* **Extensão VS Code**: **Enable Remote Control for all sessions** na seção Settings do [menu de comandos](/docs/pt/vs-code#use-the-prompt-box).204* **Extensão VS Code**: **Enable Remote Control for all sessions** na seção Settings do [menu de comandos](/docs/pt/vs-code#use-the-prompt-box).

205 205 

206Para ativar a conexão automática a partir de um arquivo de configurações, defina [`remoteControlAtStartup`](/docs/pt/settings-reference#remotecontrolatstartup) como `true` em seu `~/.claude/settings.json` de usuário ou em [configurações gerenciadas](/docs/pt/managed-settings). Em configurações de projeto ou local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra um `false` e desativa a conexão automática para esse repositório, mas ignora um `true`, para que um arquivo verificado não possa ativar Remote Control para todos que abrem o repositório.206Para ativar a conexão automática a partir de um arquivo de configurações, defina [`remoteControlAtStartup`](/docs/pt/settings-reference#remotecontrolatstartup) como `true` em seu `~/.claude/settings.json` de usuário ou em [configurações gerenciadas](/docs/pt/managed-settings). Em configurações de projeto ou local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra um `false` e desativa a conexão automática para esse repositório, mas ignora um `true`, para que um arquivo verificado não possa ativar Remote Control para todos que abrem o repositório.

routines.md +16 −6

Details

66 66 

67Em todos os outros casos, incluindo publicar um novo artifact, Claude pergunta primeiro. Quando o trabalho de uma rotina é manter uma página atual, dê a ela um artifact que você já publicou.67Em todos os outros casos, incluindo publicar um novo artifact, Claude pergunta primeiro. Quando o trabalho de uma rotina é manter uma página atual, dê a ela um artifact que você já publicou.

68 68 

69As rotinas pertencem à sua conta individual claude.ai. Elas não são compartilhadas com colegas de equipe e contam contra a permissão de execução diária da sua conta. Qualquer coisa que uma rotina faz através de sua identidade do GitHub conectada ou conectores aparece como você: commits e pull requests carregam seu usuário do GitHub, e mensagens do Slack, tickets do Linear ou outras ações de conector usam suas contas vinculadas para esses serviços.69As rotinas pertencem à sua conta individual claude.ai. Elas não são compartilhadas com colegas de equipe e suas execuções contam contra a [utilização e limites](#usage-and-limits) da sua conta. Qualquer coisa que uma rotina faz através de sua identidade do GitHub conectada ou conectores aparece como você: commits e pull requests carregam seu usuário do GitHub, e mensagens do Slack, tickets do Linear ou outras ações de conector usam suas contas vinculadas para esses serviços.

70 70 

71<h3 id="create-from-the-web">71<h3 id="create-from-the-web">

72 Criar a partir da web72 Criar a partir da web


174 174 

175A mesma conversão local-para-UTC que os cronogramas recorrentes se aplica aos timestamps únicos.175A mesma conversão local-para-UTC que os cronogramas recorrentes se aplica aos timestamps únicos.

176 176 

177As execuções únicas não contam contra o limite diário de execução de rotina. Consulte [Uso e limites](#usage-and-limits) para obter detalhes.177As execuções únicas contam contra o mesmo limite horário que outras execuções agendadas. Consulte [Uso e limites](#usage-and-limits) para obter detalhes.

178 178 

179<h3 id="add-an-api-trigger">179<h3 id="add-an-api-trigger">

180 Adicionar um acionador de API180 Adicionar um acionador de API


256Um acionador do GitHub inicia uma nova sessão automaticamente quando um evento correspondente ocorre em um repositório conectado. Claude Code não reutiliza sessões entre eventos, portanto duas atualizações de PR produzem duas sessões independentes.256Um acionador do GitHub inicia uma nova sessão automaticamente quando um evento correspondente ocorre em um repositório conectado. Claude Code não reutiliza sessões entre eventos, portanto duas atualizações de PR produzem duas sessões independentes.

257 257 

258<Note>258<Note>

259 Durante a visualização de pesquisa, os eventos de webhook do GitHub estão sujeitos a limites por hora por rotina e por conta. Os eventos além do limite são descartados até que a janela seja redefinida. Veja seus limites atuais em [claude.ai/code/routines](https://claude.ai/code/routines).259 Os eventos de webhook do GitHub estão sujeitos a limites por hora por rotina e por conta. Os eventos além do limite são descartados até que a janela seja redefinida.

260</Note>260</Note>

261 261 

262O aplicativo Claude GitHub deve ser instalado no repositório ao qual você deseja se inscrever, qualquer que seja a superfície a partir da qual você configura o acionador.262O aplicativo Claude GitHub deve ser instalado no repositório ao qual você deseja se inscrever, qualquer que seja a superfície a partir da qual você configura o acionador.


421 Uso e limites421 Uso e limites

422</h2>422</h2>

423 423 

424As rotinas reduzem o uso da assinatura da mesma forma que as sessões interativas. Além dos limites de assinatura padrão, as rotinas têm um limite diário de quantas execuções podem começar por conta. Veja seu consumo atual e execuções de rotina diárias restantes em [claude.ai/code/routines](https://claude.ai/code/routines) ou [claude.ai/settings/usage](https://claude.ai/settings/usage).424As rotinas reduzem o uso da assinatura da mesma forma que as sessões interativas. Veja seu consumo atual em [claude.ai/settings/usage](https://claude.ai/settings/usage).

425 425 

426Quando uma rotina atinge o limite diário ou seu limite de uso de assinatura, organizações com créditos de uso ativados podem continuar executando rotinas em excesso medido. Sem créditos de uso, execuções adicionais são rejeitadas até que a janela seja redefinida. Ative os créditos de uso em [claude.ai/settings/usage](https://claude.ai/settings/usage). Nos planos Team e Enterprise, um administrador os ativa para a organização em [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).426Separadamente do uso da assinatura, cada forma de iniciar uma execução tem um limite por hora:

427 427 

428As execuções únicas não contam contra o limite diário de execução de rotina. Elas reduzem seu uso de assinatura regular como qualquer outra sessão.428| Ação | Limite | Contado para | Acima do limite |

429| :- | :- | :- | :- |

430| Execuções agendadas, incluindo execuções únicas | 100 por hora | Sua conta | A execução aguarda até que o limite seja redefinido |

431| **Executar agora**, disparos de API e configurar uma rotina única para executar novamente | 30 por hora | Cada rotina, uma contagem compartilhada pelos três | A ação falha até que o limite seja redefinido |

432| **Executar agora** e configurar uma rotina única para executar novamente | 100 por hora | Sua conta | Igual |

433| Disparos de API | 100 por hora | Sua conta, contado separadamente de **Executar agora** | Igual |

434| Eventos do GitHub | Veja [Adicionar um gatilho do GitHub](#add-a-github-trigger) | | |

435 

436Nenhum desses limites por hora tem excedente.

437 

438Quando uma rotina atinge seu limite de uso de assinatura, organizações com créditos de uso ativados podem continuar executando rotinas em excesso medido. Sem créditos de uso, execuções adicionais são rejeitadas até que sua janela de uso seja redefinida. Ative os créditos de uso em [claude.ai/settings/usage](https://claude.ai/settings/usage). Nos planos Team e Enterprise, um administrador os ativa para a organização em [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).

429 439 

430Enquanto sua assinatura está pausada, suas rotinas são colocadas em espera e não são executadas. Assim que sua assinatura estiver ativa novamente, ative-as novamente.440Enquanto sua assinatura está pausada, suas rotinas são colocadas em espera e não são executadas. Assim que sua assinatura estiver ativa novamente, ative-as novamente.

431 441 

Details

48* **Zero Data Retention**: indisponível para organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado.48* **Zero Data Retention**: indisponível para organizações com [Zero Data Retention](/docs/pt/zero-data-retention) habilitado.

49* **Inferência de modelo**: as sessões usam a API Anthropic, e a inferência não pode ser roteada através de [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/pt/third-party-integrations) ou um [gateway LLM](/docs/pt/llm-gateway).49* **Inferência de modelo**: as sessões usam a API Anthropic, e a inferência não pode ser roteada através de [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/pt/third-party-integrations) ou um [gateway LLM](/docs/pt/llm-gateway).

50* **Superfícies**: sessões iniciadas a partir de [claude.ai/code](https://claude.ai/code), dos aplicativos móvel e desktop, [rotinas agendadas](/docs/pt/routines) e do terminal, com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) ou um [despacho `--environment`](/docs/pt/self-hosted-environments-testing#run-the-test-loop), podem ser executadas em ambientes auto-hospedados. Sessões de [Claude Tag](https://claude.com/docs/claude-tag/overview) também podem ser executadas neles, mas Claude ainda não pode usar [Pacotes de acesso](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) nessas sessões. Sessões de [Claude Security](/docs/pt/claude-security) e [Code Review](/docs/pt/code-review) ainda não são roteadas para eles. O suporte para essas duas superfícies segue separadamente.50* **Superfícies**: sessões iniciadas a partir de [claude.ai/code](https://claude.ai/code), dos aplicativos móvel e desktop, [rotinas agendadas](/docs/pt/routines) e do terminal, com [`claude --cloud`](/docs/pt/claude-code-on-the-web#from-terminal-to-cloud) ou um [despacho `--environment`](/docs/pt/self-hosted-environments-testing#run-the-test-loop), podem ser executadas em ambientes auto-hospedados. Sessões de [Claude Tag](https://claude.com/docs/claude-tag/overview) também podem ser executadas neles, mas Claude ainda não pode usar [Pacotes de acesso](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) nessas sessões. Sessões de [Claude Security](/docs/pt/claude-security) e [Code Review](/docs/pt/code-review) ainda não são roteadas para eles. O suporte para essas duas superfícies segue separadamente.

51* **Repositórios**: as sessões verificam repositórios do GitHub; consulte [Opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options).51* **Repositórios**: as sessões verificam repositórios do GitHub; consulte [Opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options). Para um host GitHub Enterprise Server, consulte seus [requisitos de rede](/docs/pt/github-enterprise-server#network-requirements).

52* **Faturamento**: as sessões em um ambiente auto-hospedado consomem o uso de Claude Code de sua organização da mesma forma que as sessões em ambientes hospedados pela Anthropic.52* **Faturamento**: as sessões em um ambiente auto-hospedado consomem o uso de Claude Code de sua organização da mesma forma que as sessões em ambientes hospedados pela Anthropic.

53 53 

54<h2 id="why-self-host">54<h2 id="why-self-host">

Details

170 170 

171Se seu host git rejeitar a credencial, ou você não configurou uma, o runner tenta novamente algumas vezes e depois falha na preparação do repositório quando o repositório é aquele para o qual a sessão envia resultados. Para um repositório que a sessão apenas lê, [Troubleshooting](#troubleshooting) cobre quando o runner o pula em vez disso. O runner não passa essas configurações para o ambiente da sessão.171Se seu host git rejeitar a credencial, ou você não configurou uma, o runner tenta novamente algumas vezes e depois falha na preparação do repositório quando o repositório é aquele para o qual a sessão envia resultados. Para um repositório que a sessão apenas lê, [Troubleshooting](#troubleshooting) cobre quando o runner o pula em vez disso. O runner não passa essas configurações para o ambiente da sessão.

172 172 

173Mantenha qualquer programa que você nomeie em `GIT_SSH_COMMAND` ou `GIT_ASKPASS` onde as sessões não possam escrever nele, da forma que a [lista de verificação de endurecimento](#harden-your-deployment) pede para o diretório de hooks e o script wrapper. O mesmo vale para qualquer chave ou arquivo na linha de comando desse programa. O próprio git do runner executa esse programa quando clona ou busca.

174 

173Se os diretórios de checkout são possuídos por um uid diferente do processo runner, git se recusa a operar neles; adicione `safe.directory`:175Se os diretórios de checkout são possuídos por um uid diferente do processo runner, git se recusa a operar neles; adicione `safe.directory`:

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185O proxy requer `--capacity 1` porque a URL do proxy é por sessão, e git 2.32 ou mais recente porque git mais antigo ignora o mecanismo de configuração que o proxy usa para isolar sessões uma da outra. O runner se recusa a iniciar se qualquer requisito não for atendido. Como o proxy busca do lado da Anthropic, seu host git deve ser alcançável a partir da infraestrutura da Anthropic, o mesmo requisito que as sessões hospedadas pela Anthropic têm; para um host git que é apenas roteável dentro de sua rede, use um [hook de ciclo de vida `checkout`](/docs/pt/self-hosted-environments-configuration#checkout) em vez disso. Cada processo runner lida com uma sessão por vez, então execute mais réplicas para paralelismo. Quando o proxy está habilitado, `--git-host-rewrite` e `--git-ssh-rewrite` não têm efeito: a URL do proxy aponta para `api.anthropic.com`, não seu host git.187O proxy requer `--capacity 1` porque a URL do proxy é por sessão, e git 2.32 ou mais recente porque git mais antigo ignora o mecanismo de configuração que o proxy usa para isolar sessões uma da outra. O runner se recusa a iniciar se qualquer requisito não for atendido. Como o proxy busca do lado da Anthropic, seu host git deve ser alcançável a partir da infraestrutura da Anthropic, o mesmo requisito que as sessões hospedadas pela Anthropic têm; para um host git que é apenas roteável dentro de sua rede, use um [hook de ciclo de vida `checkout`](/docs/pt/self-hosted-environments-configuration#checkout) em vez disso. Cada processo runner lida com uma sessão por vez, então execute mais réplicas para paralelismo. Quando o proxy está habilitado, `--git-host-rewrite` e `--git-ssh-rewrite` não têm efeito: a URL do proxy aponta para `api.anthropic.com`, não seu host git.

186 188 

189<Warning>

190 As receitas [Kubernetes](#kubernetes) e [Docker Compose](#docker-compose) nesta página usam `--capacity 4`. Se você adicionar `--use-anthropic-git-proxy` ou `CLAUDE_RUNNER_USE_GIT_PROXY=1` a uma delas sem alterar a capacidade para `1`, o runner sai na inicialização toda vez que seu orquestrador o reinicia. Defina `--capacity 1` e execute mais réplicas para paralelismo. [Quando o runner sai](#when-the-runner-exits) mostra a linha que o runner imprime.

191</Warning>

192 

187O runner também relata a aceitação à Anthropic quando se registra, imprimindo `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` na inicialização. Relatar a aceitação requer Claude Code v2.1.267 ou posterior, e versões anteriores aceitam o sinalizador sem relatá-lo ou imprimir essa linha. Cada sessão em um runner aceito usa a git gerenciada pela Anthropic ou a URL do proxy por sessão. Quando uma sessão usa a URL do proxy por sessão, o runner registra uma linha `[runner:warn]` dizendo isso.193O runner também relata a aceitação à Anthropic quando se registra, imprimindo `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` na inicialização. Relatar a aceitação requer Claude Code v2.1.267 ou posterior, e versões anteriores aceitam o sinalizador sem relatá-lo ou imprimir essa linha. Cada sessão em um runner aceito usa a git gerenciada pela Anthropic ou a URL do proxy por sessão. Quando uma sessão usa a URL do proxy por sessão, o runner registra uma linha `[runner:warn]` dizendo isso.

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 Confie em uma autoridade de certificado privada com git gerenciada pela Anthropic

197</h4>

198 

199Esta seção se aplica se você definir `GIT_SSL_CAINFO` ou `GIT_SSL_NO_VERIFY` no ambiente de um runner cujas sessões usam git gerenciada pela Anthropic. O tratamento que ela descreve requer que o runner execute Claude Code v2.1.283 ou posterior.

200 

201Quando git no runner deve confiar em uma autoridade de certificado privada (CA), como aquela que um proxy de inspeção TLS assina, as abordagens usuais funcionam da seguinte forma:

202 

203* **Armazenamento de certificado do sistema**: instale sua CA no armazenamento de certificado do sistema do host runner, e git confia nela sem nenhuma variável.

204* **`GIT_SSL_CAINFO`**: defina-a para um arquivo PEM de suas CAs, por exemplo `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`.

205* **`GIT_SSL_NO_VERIFY`**: não ajuda atrás de um proxy de re-assinatura. O clone do runner através de git gerenciada pela Anthropic verifica certificados mesmo quando a variável está definida, então esse clone falha até que git confie em sua CA através de uma das outras duas abordagens.

206 

207Para conexões git que carregam o token de uma sessão para git gerenciada pela Anthropic, o runner aplica as duas variáveis da seguinte forma. Um [hook `command`](/docs/pt/self-hosted-environments-configuration#command) começa com o ambiente da sessão, então ele obtém o que git dentro da sessão obtém:

208 

209* **`GIT_SSL_CAINFO`**: o que git verifica git gerenciada pela Anthropic depende de onde git é executado:

210 * **Clone e fetches do runner**: executados sem a variável e verificam git gerenciada pela Anthropic contra um arquivo de certificado por sessão que o runner escreve. Esse arquivo contém o pacote de CA do sistema do host runner mais os certificados do seu arquivo.

211 * **Git dentro da sessão**: obtém configuração `http.sslCAInfo` nomeando seu arquivo no lugar da variável, mais entradas `http.<url>.sslCAInfo` que verificam git gerenciada pela Anthropic contra o arquivo por sessão.

212 * **Hooks `checkout` e `post-session`**: herdam a variável inalterada.

213* **`GIT_SSL_NO_VERIFY`**: quais verificações de certificado permanecem desligadas depende de onde git é executado:

214 * **Clone e fetches do runner**: executados sem a variável e verificam o certificado que lhes é apresentado.

215 * **Git dentro da sessão**: obtém configuração `http.sslVerify=false` no lugar da variável, então as verificações permanecem desligadas para outros hosts. Ele também obtém entradas `http.<url>.sslVerify=true` que mantêm as verificações ligadas para git gerenciada pela Anthropic.

216 * **Hooks `checkout` e `post-session`**: quando a sessão tem um repositório em git gerenciada pela Anthropic, obtêm configuração `http.sslVerify=false` no lugar da variável. Eles também obtêm entradas `http.<url>.sslVerify=true` que mantêm as verificações ligadas para git gerenciada pela Anthropic.

217 

218O arquivo de certificado por sessão precisa de um pacote de CA do sistema em `/etc/ssl/certs/ca-certificates.crt` ou `/etc/pki/tls/certs/ca-bundle.crt` no host runner. Ele também precisa de um arquivo `GIT_SSL_CAINFO` que o usuário do runner possa ler, que contenha blocos `CERTIFICATE` PEM, e que tenha no máximo 1 MiB. Quando o runner não consegue construir o arquivo por sessão, ele registra uma linha `[runner:warn]` contendo `did not build the certificate file` e o motivo. Git então usa seu arquivo como está para git gerenciada pela Anthropic. Corrija o que a linha nomeia.

219 

220Para cada sessão que usa git gerenciada pela Anthropic, o runner também registra uma linha `[runner:warn]` que começa com `governed git: GIT_SSL_CAINFO is set` ou `governed git: GIT_SSL_NO_VERIFY is set`. A linha diz o que o runner fez com essa variável para seu próprio git, para git dentro da sessão, e para seus hooks de ciclo de vida. Ela termina com se você precisa alterar algo.

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 Reescrever URLs git para redes privadas223 Reescrever URLs git para redes privadas

191</h3>224</h3>


203 236 

204A Anthropic não publica uma imagem de runner pré-construída. Construa a sua própria em torno do binário `claude`, camadas em qualquer toolchain que seus repositórios precisem: runtimes de linguagem, compiladores, gerenciadores de pacotes, e sidecars [MCP](/docs/pt/mcp).237A Anthropic não publica uma imagem de runner pré-construída. Construa a sua própria em torno do binário `claude`, camadas em qualquer toolchain que seus repositórios precisem: runtimes de linguagem, compiladores, gerenciadores de pacotes, e sidecars [MCP](/docs/pt/mcp).

205 238 

206As receitas abaixo usam `--capacity 4`, para que um contêiner sirva até quatro sessões simultâneas do mesmo owner bloqueado. Isso não fornece o isolamento de contêiner por sessão na [seção de endurecimento](#harden-your-deployment): antes de conectar um ambiente a sistemas de produção, execute as receitas em `--capacity 1` com um contêiner por sessão, ou use [runners sob demanda](/docs/pt/self-hosted-environments-configuration#on-demand-runners), que também mantêm o segredo do ambiente fora dos hosts que executam sessões.239As receitas abaixo usam `--capacity 4`, para que um contêiner sirva até quatro sessões simultâneas do mesmo owner bloqueado. Isso não fornece o isolamento de contêiner por sessão na [seção de endurecimento](#harden-your-deployment): antes de conectar um ambiente a sistemas de produção, execute as receitas em `--capacity 1` com um contêiner por sessão, ou use [runners sob demanda](/docs/pt/self-hosted-environments-configuration#on-demand-runners), que também mantêm o segredo do ambiente fora dos hosts que executam sessões. Se você adicionar o [proxy git da Anthropic](#use-the-anthropic-git-proxy) a uma dessas receitas, também altere `--capacity` para `1`.

207 240 

208Este Dockerfile é um ponto de partida mínimo:241Este Dockerfile é um ponto de partida mínimo:

209 242 


338 371 

339O serviço Compose abaixo reinicia o runner sempre que ele sai, o que cobre tanto crashes quanto a saída normal após drenagem. Uma política de reinicialização Docker reinicia o mesmo contêiner com sua camada gravável intacta, então o runner volta em um sistema de arquivos reutilizado em vez do fresco que a [postura de endurecimento](#harden-your-deployment) recomenda; use esta receita para avaliação, e para produção recrie o contêiner por execução ou use um orquestrador que faça.372O serviço Compose abaixo reinicia o runner sempre que ele sai, o que cobre tanto crashes quanto a saída normal após drenagem. Uma política de reinicialização Docker reinicia o mesmo contêiner com sua camada gravável intacta, então o runner volta em um sistema de arquivos reutilizado em vez do fresco que a [postura de endurecimento](#harden-your-deployment) recomenda; use esta receita para avaliação, e para produção recrie o contêiner por execução ou use um orquestrador que faça.

340 373 

374Docker aguarda mais tempo antes de cada reinicialização de um contêiner que continua saindo, até um limite máximo, então um runner que não consegue iniciar não continua reiniciando em um loop apertado sob esta receita. [Quando o runner sai](#when-the-runner-exits) descreve o que verificar quando isso acontecer.

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452Cada processo filho Claude Code da sessão executa o próprio binário do runner, e o runner desativa auto-update dentro das sessões que gera, então cada sessão executa a versão que você instalou no host ou construiu na imagem. Uma atualização no nível do host entra em vigor na próxima vez que o runner inicia.487Cada processo filho Claude Code da sessão executa o próprio binário do runner, e o runner desativa auto-update dentro das sessões que gera, então cada sessão executa a versão que você instalou no host ou construiu na imagem. Uma atualização no nível do host entra em vigor na próxima vez que o runner inicia.

453 488 

489Um modelo que suas sessões usam pode exigir uma versão mais recente do Claude Code do que aquela que executam. O servidor então rejeita solicitações para esse modelo com [Claude Code does not support this model](/docs/pt/errors#claude-code-does-not-support-this-model). Antes de fixar uma versão, verifique [as versões do Claude Code que os modelos exigem](/docs/pt/model-config#available-models) para cada modelo que suas sessões usam.

490 

454* **Para manter uma frota em uma versão**: construa a imagem com uma versão fixada, ou em um host nu instale uma versão específica e [desabilite auto-updates](/docs/pt/setup#disable-auto-updates)491* **Para manter uma frota em uma versão**: construa a imagem com uma versão fixada, ou em um host nu instale uma versão específica e [desabilite auto-updates](/docs/pt/setup#disable-auto-updates)

455* **Para atualizar**: instale a versão mais recente ou reconstrua a imagem, depois reinicie os runners492* **Para atualizar**: instale a versão mais recente ou reconstrua a imagem, depois reinicie os runners

456* **Plugins**: marketplaces de plugin também não auto-atualizam; defina `FORCE_AUTOUPDATE_PLUGINS=1` no ambiente do runner para deixar plugins auto-atualizarem enquanto o binário permanece fixado493* **Plugins**: marketplaces de plugin também não auto-atualizam; defina `FORCE_AUTOUPDATE_PLUGINS=1` no ambiente do runner para deixar plugins auto-atualizarem enquanto o binário permanece fixado


554 591 

555O processo filho de cada sessão escreve um log de depuração separado. Em caso de falha, o runner exibe a cauda do log junto com a sessão em claude.ai/code. A menos que você tenha iniciado o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags), ele também mantém o log de uma sessão com falha no disco e imprime seu caminho no log do runner.592O processo filho de cada sessão escreve um log de depuração separado. Em caso de falha, o runner exibe a cauda do log junto com a sessão em claude.ai/code. A menos que você tenha iniciado o runner com [`--remove-session-state`](/docs/pt/self-hosted-environments-reference#runner-cli-flags), ele também mantém o log de uma sessão com falha no disco e imprime seu caminho no log do runner.

556 593 

594<h3 id="when-the-runner-exits">

595 When the runner exits

596</h3>

597 

598Não reinicie um [on-demand runner](/docs/pt/self-hosted-environments-configuration#on-demand-runners), porque sua ordem de trabalho é de uso único. Um runner que sai logo depois de iniciar precisa de tratamento diferente de um que sai por qualquer outro motivo.

599 

600* **A normal exit**: o runner terminou suas sessões e drenagem, atingiu seu tempo de aposentadoria ou foi instruído a parar. Reinicie-o para que o ambiente tenha capacidade novamente. [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve essas saídas.

601* **A failed start**: o runner não consegue iniciar com a configuração ou host que foi dado, então sai segundos depois de iniciar, e sai da mesma forma toda vez que você o reinicia. Reiniciá-lo mais rápido não ajuda. Alguém precisa ler sua saída e corrigir a causa.

602 

603Configure seu supervisor para reiniciar o runner sempre que sair, para aguardar mais tempo entre reinicializações quando o runner continuar saindo logo após iniciar, e para informar alguém quando isso continuar acontecendo.

604 

605<h4 id="recognize-a-failed-start">

606 Recognize a failed start

607</h4>

608 

609Quando o runner não consegue iniciar, ele imprime uma linha que diz o motivo e depois sai. Para a maioria das causas, a linha contém `[runner:fatal]`. Para algumas causas, a linha começa com `error:` em vez disso, incluindo quando o runner não consegue analisar seus sinalizadores, não consegue ler o segredo do ambiente ou não consegue criar ou escrever no diretório base. A próxima linha então aponta para `--help`.

610 

611A maioria das linhas de log começa com um timestamp e `[self-hosted-runner]`, que a amostra abaixo omite. Por exemplo, um runner iniciado com o proxy git da Anthropic e uma capacidade acima de um imprime uma linha como esta:

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617Procure pela linha na saída padrão e erro padrão do runner, nos logs do contêiner da sua plataforma ou no arquivo que você definiu com [`--log-file`](/docs/pt/self-hosted-environments-reference#runner-cli-flags). O runner imprime uma linha `error:` antes de abrir o arquivo de log, então procure por ela no terminal ou nos logs do seu contêiner, conforme [Troubleshooting](#troubleshooting) observa.

618 

619Estes também ajudam quando você lê um início com falha:

620 

621* **No line at all**: um runner que o host mata não imprime nenhum. Se a saída terminar sem nenhuma linha `[runner:fatal]` e nenhuma linha `error:`, verifique se o host ou seu orquestrador parou o processo, por exemplo por exceder um limite de memória.

622* **The exit code**: o runner não reserva um código de saída para erros que se repetem a cada início. Ele sai com o mesmo código para um erro de configuração, como uma combinação não suportada de sinalizadores, e para uma falha que pode se limpar por si mesma, como a API permanecendo inacessível através das próprias tentativas do runner. Baseie a decisão de aguardar mais tempo em quão rápido o runner saiu e leia a saída do runner para aprender por quê.

623* **An environment that looks healthy**: alguns passos de inicialização são executados depois que o runner se registra com seu ambiente, como [`--configure-git`](#let-the-runner-configure-git) e a configuração de credenciais do proxy git da Anthropic. Se uma dessas etapas falhar, o ambiente pode continuar listando esse runner por alguns minutos após o processo ter saído, e a página **Cloud environments** pode ler **Healthy** enquanto nenhum runner está pegando trabalho. Se as sessões ficarem enfileiradas em um ambiente que parece saudável, verifique se seu supervisor está reiniciando o runner.

624 

625<h4 id="restart-with-a-wait-that-grows">

626 Restart with a wait that grows

627</h4>

628 

629Como você obtém uma espera crescente depende do seu supervisor.

630 

631* **Kubernetes**: o [Deployment](#kubernetes) nesta página não precisa de alteração. Depois que um contêiner sai, o kubelet por padrão aguarda antes de reiniciar o contêiner, e a espera cresce a cada reinicialização até um teto. A espera recomeça uma vez que o contêiner tenha sido executado por um tempo sem sair.

632 

633 O kubelet aplica a mesma espera após uma saída normal quando o contêiner foi executado apenas brevemente. Um runner que drena frequentemente pode, portanto, também mostrar o status `CrashLoopBackOff`, então leia a saída antes de concluir que o runner não consegue iniciar. O comando abaixo lê a saída da última execução de um pod do Deployment:

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 Quando a última execução foi um início com falha, a linha `[runner:fatal]` ou `error:` está entre as últimas linhas da saída. Para ler a última execução de outro pod, nomeie esse pod no lugar de `deploy/claude-runner`.

640* **Docker and Docker Compose**: a [Compose recipe](#docker-compose) nesta página não precisa de alteração. Com `restart: always`, o Docker aguarda mais tempo antes de cada reinicialização de um contêiner que continua saindo, até um teto. Substitua `<container>` pelo nome do contêiner no comando abaixo, que lê quantas vezes o Docker reiniciou o contêiner:

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 O comando imprime um número. Um número que continua subindo significa que o Docker continua reiniciando o runner.

647* **A systemd unit**: por padrão, systemd aguarda o mesmo `RestartSec` antes de cada reinicialização e não o alonga, então uma unidade com `Restart=always` reinicia um runner que não consegue iniciar nesse mesmo intervalo cada vez. Quando os inícios vêm rápido o suficiente para atingir o limite de taxa de início da unidade, cinco inícios em 10 segundos por padrão, systemd para de reiniciar a unidade. A unidade permanece parada até que alguém a inicie novamente, o que systemd permite uma vez que o intervalo do limite de taxa tenha passado ou após `systemctl reset-failed`. Como `RestartSec` se aplica a cada reinicialização, um valor mais longo também atrasa a reinicialização após uma saída normal. Escolha um valor que equilibre os dois e alerte sobre a contagem de reinicializações da unidade.

648* **A shell loop or your own supervisor**: aplique a mesma regra você mesmo. Comece com uma espera de cinco segundos. Após cada execução que terminou dentro de um minuto, dobre a espera para a próxima reinicialização, até cinco minutos. Após uma execução que durou um minuto ou mais, volte para cinco segundos.

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 Check why the runner keeps exiting

652</h4>

653 

654Quando o runner saiu logo após iniciar várias vezes seguidas, pare e verifique estes antes de reiniciá-lo novamente.

655 

656* **The last `[runner:fatal]` or `error:` line**: ela diz por que o runner parou. [Troubleshooting](#troubleshooting) lista as causas comuns.

657* **The combination of flags**: o [Anthropic git proxy](#use-the-anthropic-git-proxy) requer `--capacity 1`. As receitas nesta página usam uma capacidade mais alta, então baixe-a quando adicionar o proxy a uma delas.

658* **What the service's environment can reach**: se o runner inicia manualmente e falha sob seu supervisor, compare o usuário, o diretório inicial, o `PATH` e o limite de memória. `--configure-git` e o proxy git da Anthropic precisam de git no `PATH` e um `~/.gitconfig` gravável.

659* **The environment secret**: se você revogou o segredo ou digitou errado, o runner imprime uma linha que contém `RegisterRunner auth failed`.

660* **The environment's Activity tab**: abra o ambiente e selecione **Activity**. Se novos runners continuarem aparecendo lá e nenhum pega trabalho, seu supervisor está reiniciando o runner.

661 

662Para diagnóstico orientado no host do runner, execute o [subcomando doctor](#troubleshooting).

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 O que vem a seguir665 O que vem a seguir

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108O runner sai por design uma vez que suas sessões ativas terminam; consulte [Ciclo de vida do runner](/docs/pt/self-hosted-environments#runner-lifecycle). Para produção, implante-o sob um orquestrador que o reinicia na saída. Consulte [Implantar em produção](/docs/pt/self-hosted-environments-deploy).108O runner sai por design uma vez que suas sessões ativas terminam; consulte [Ciclo de vida do runner](/docs/pt/self-hosted-environments#runner-lifecycle). Para produção, implante-o sob um orquestrador que o reinicia na saída e aguarda mais tempo entre reinicializações quando o runner continua saindo logo após iniciar. Consulte [Implantar em produção](/docs/pt/self-hosted-environments-deploy) e [Quando o runner sai](/docs/pt/self-hosted-environments-deploy#when-the-runner-exits).

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 Enviar uma mensagem de acompanhamento para uma sessão em execução111 Enviar uma mensagem de acompanhamento para uma sessão em execução

Details

80 Sinalizadores do conector SCM80 Sinalizadores do conector SCM

81</h3>81</h3>

82 82 

83O orquestrador pode manter uma conexão WebSocket permanente com o plano de controle da Anthropic para que fluxos pré-sessão hospedados, como o seletor de repositório e o resolvedor de branch ou ref, possam alcançar um host GitHub Enterprise Server que é apenas roteável de dentro de sua rede. O conector fica desligado a menos que você defina `--scm-connector-host`.83O conector SCM não está disponível, portanto deixe os sinalizadores nesta seção não definidos. Se você definir `--scm-connector-host`, a conexão não abre e o orquestrador continua tentando novamente. Os executores ainda iniciam conforme a fila de sessões.

84 

85O conector é uma conexão WebSocket permanente do orquestrador para o plano de controle da Anthropic. Ele foi projetado para permitir que fluxos pré-sessão hospedados, como o seletor de repositório e o resolvedor de branch ou ref, alcancem um host GitHub Enterprise Server que é apenas roteável de dentro de sua rede. Consulte [Requisitos de rede](/docs/pt/github-enterprise-server#network-requirements) na página GitHub Enterprise Server para saber o que esses fluxos precisam.

84 86 

85| Sinalizador | Padrão | Descrição |87| Sinalizador | Padrão | Descrição |

86| :- | :- | :- |88| :- | :- | :- |

87| `--scm-connector-host <host[:port]>` | não definido | Nome do host GitHub Enterprise Server para encaminhar solicitações. A porta padrão é `443`. Definir este sinalizador habilita o conector. |89| `--scm-connector-host <host[:port]>` | não definido | Nome do host GitHub Enterprise Server para encaminhar solicitações. A porta padrão é `443`. |

88| `--scm-connector-id <n>` | obrigatório com `--scm-connector-host` | O ID numérico da conexão GitHub Enterprise Server da sua organização. Entre em contato com sua equipe de conta Anthropic para o valor quando você habilitar o conector. |90| `--scm-connector-id <n>` | obrigatório com `--scm-connector-host` | O ID numérico da conexão GitHub Enterprise Server da sua organização. |

89| `--scm-connector-provider <slug>` | `ghe` | Segmento de caminho identificando o provedor, correspondendo a `^[a-z0-9-]{1,32}$`. |91| `--scm-connector-provider <slug>` | `ghe` | Segmento de caminho identificando o provedor, correspondendo a `^[a-z0-9-]{1,32}$`. |

90| `--scm-connector-ca-file <path>` | não definido | Pacote CA extra, em formato PEM, para conexões TLS com o host GitHub Enterprise Server. |92| `--scm-connector-ca-file <path>` | não definido | Pacote CA extra, em formato PEM, para conexões TLS com o host GitHub Enterprise Server. |

91| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | não definido | Apenas para testes de ponta a ponta: redireciona a conexão TCP mantendo o cabeçalho Host e TLS SNI como `--scm-connector-host`. |93| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | não definido | Apenas para testes de ponta a ponta: redireciona a conexão TCP mantendo o cabeçalho Host e TLS SNI como `--scm-connector-host`. |

92 94 

93O conector autentica com o segredo de ambiente existente do orquestrador e se reconecta automaticamente: com backoff exponencial em uma conexão descartada, ou um atraso fixo de 30 segundos quando o plano de controle fecha a conexão porque outra réplica do orquestrador já a mantém.95Em cada tentativa de conexão, o orquestrador envia seu segredo de ambiente existente e tenta novamente automaticamente com backoff exponencial, limitado a 30 segundos mais jitter.

94 96 

95<h2 id="environment-variable-only-settings">97<h2 id="environment-variable-only-settings">

96 Configurações somente de variável de ambiente98 Configurações somente de variável de ambiente

Details

595| [`agent`](#agent) | Inicie cada sessão como um [subagente](/docs/pt/sub-agents) nomeado com seu prompt, ferramentas e modelo | Agentes, sessões e worktrees | Any file |595| [`agent`](#agent) | Inicie cada sessão como um [subagente](/docs/pt/sub-agents) nomeado com seu prompt, ferramentas e modelo | Agentes, sessões e worktrees | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permita que Claude envie uma [notificação push para seu telefone](/docs/pt/remote-control#mobile-push-notifications) quando decidir | Remoto, desktop e notificações | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permita que Claude envie uma [notificação push para seu telefone](/docs/pt/remote-control#mobile-push-notifications) quando decidir | Remoto, desktop e notificações | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Carregue os [conectores claude.ai](/docs/pt/mcp) que Claude Code busca por conta própria junto com um [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) implantado | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Carregue os [conectores claude.ai](/docs/pt/mcp) que Claude Code busca por conta própria junto com um [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) implantado | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | Permita que o servidor [Claude in Chrome](/docs/pt/chrome) integrado seja executado junto com um [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) implantado | MCP | Managed |

598| [`allowedChannelPlugins`](#allowedchannelplugins) | Substitua a lista de permissões padrão de [plugins de canal](/docs/pt/channels#restrict-which-channel-plugins-can-run) que podem enviar mensagens | Plugins e skills | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | Substitua a lista de permissões padrão de [plugins de canal](/docs/pt/channels#restrict-which-channel-plugins-can-run) que podem enviar mensagens | Plugins e skills | Managed |

599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite quais URLs os [hooks HTTP](/docs/pt/hooks) podem atingir | Hooks e automação | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite quais URLs os [hooks HTTP](/docs/pt/hooks) podem atingir | Hooks e automação | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | Lista de permissões de quais [servidores MCP](/docs/pt/mcp) os usuários podem adicionar | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | Lista de permissões de quais [servidores MCP](/docs/pt/mcp) os usuários podem adicionar | MCP | Any file |


3064</h4>3065</h4>

3065 3066 

3066* Um valor aqui sobrescreve a mesma variável exportada em seu shell, e quando mais de um arquivo de configurações define uma variável, a [precedência mais alta](/docs/pt/settings#settings-precedence) se aplica. [Variáveis que Claude Code ignora em `env`](#variables-claude-code-ignores-in-env) lista as exceções para configurações de projeto e local.3067* Um valor aqui sobrescreve a mesma variável exportada em seu shell, e quando mais de um arquivo de configurações define uma variável, a [precedência mais alta](/docs/pt/settings#settings-precedence) se aplica. [Variáveis que Claude Code ignora em `env`](#variables-claude-code-ignores-in-env) lista as exceções para configurações de projeto e local.

3068* Quando o aplicativo Claude Desktop ou um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) inicia a sessão, o ambiente de inicialização que ele constrói tem precedência: Claude Code ignora um valor `env` de qualquer arquivo de configurações para uma variável que o ambiente de inicialização já define. O [log de depuração](/docs/pt/debug-your-config) nomeia cada variável ignorada.

3067* Para cancelar uma exportação de shell, defina a variável como `""`. Claude Code trata um valor vazio como não definido para seleção de provedor, e subprocessos herdam o valor vazio.3069* Para cancelar uma exportação de shell, defina a variável como `""`. Claude Code trata um valor vazio como não definido para seleção de provedor, e subprocessos herdam o valor vazio.

3068* `NO_COLOR` e `FORCE_COLOR` definidos aqui chegam apenas aos subprocessos. Para alterar as cores da própria interface de Claude Code, defina-as em seu shell antes de iniciar `claude`.3070* `NO_COLOR` e `FORCE_COLOR` definidos aqui chegam apenas aos subprocessos. Para alterar as cores da própria interface de Claude Code, defina-as em seu shell antes de iniciar `claude`.

3069* Valores aqui são texto simples no arquivo de configurações e chegam a cada subprocesso que Claude Code inicia. Para um token de portador OTLP que gira, use [`otelHeadersHelper`](#otelheadershelper); para credenciais de API, use [`apiKeyHelper`](#apikeyhelper).3071* Valores aqui são texto simples no arquivo de configurações e chegam a cada subprocesso que Claude Code inicia. Para um token de portador OTLP que gira, use [`otelHeadersHelper`](#otelheadershelper); para credenciais de API, use [`apiKeyHelper`](#apikeyhelper).


5157 5159 

5158[`allowedMcpServers`](#allowedmcpservers) e [`deniedMcpServers`](#deniedmcpservers) ainda se aplicam aos conectores que essa chave carrega. Os conectores entregues a uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) cujo host carrega um `managed-mcp.json`, como um executor auto-hospedado, permanecem suprimidos. Veja [Permitir conectores claude.ai junto com o conjunto gerenciado](/docs/pt/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).5160[`allowedMcpServers`](#allowedmcpservers) e [`deniedMcpServers`](#deniedmcpservers) ainda se aplicam aos conectores que essa chave carrega. Os conectores entregues a uma [sessão na nuvem](/docs/pt/claude-code-on-the-web) cujo host carrega um `managed-mcp.json`, como um executor auto-hospedado, permanecem suprimidos. Veja [Permitir conectores claude.ai junto com o conjunto gerenciado](/docs/pt/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).

5159 5161 

5162<h3 id="allowclaudeinchromewithmanagedmcp">

5163 `allowClaudeInChromeWithManagedMcp`

5164</h3>

5165 

5166Permita que o servidor [Claude no Chrome](/docs/pt/chrome) integrado seja executado junto com um `managed-mcp.json` implantado. Sem essa chave, um `managed-mcp.json` implantado bloqueia Claude no Chrome em sessões de terminal. Requer Claude Code v2.1.282 ou posterior.

5167 

5168* **Escopo**: [`Managed`](#scopes), apenas das configurações gerenciadas do próprio dispositivo: um plist implantado por MDM ou chave de registro HKLM, ou um arquivo `managed-settings.json` do sistema. O Claude Code ignora em configurações gerenciadas pelo servidor, no registro HKCU gravável pelo usuário e em configurações de usuário ou projeto.

5169* **Tipo**: Booleano

5170 * `true`: o servidor Claude no Chrome integrado pode ser executado junto com um `managed-mcp.json` implantado

5171 * `false`: um `managed-mcp.json` implantado bloqueia Claude no Chrome em sessões de terminal

5172* **Padrão**: `false`, portanto um `managed-mcp.json` implantado bloqueia Claude no Chrome em sessões de terminal

5173 

5174```json managed-settings.json theme={null}

5175{

5176 "allowClaudeInChromeWithManagedMcp": true

5177}

5178```

5179 

5180Uma entrada [`deniedMcpServers`](#deniedmcpservers) para `claude-in-chrome` ainda bloqueia o servidor com essa chave ativada. Veja [Permitir Claude no Chrome junto com o conjunto gerenciado](/docs/pt/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set).

5181 

5160<h3 id="allowedmcpservers">5182<h3 id="allowedmcpservers">

5161 `allowedMcpServers`5183 `allowedMcpServers`

5162</h3>5184</h3>

5163 5185 

5164Crie uma lista de permissões dos servidores MCP que as pessoas podem adicionar. O Claude Code bloqueia qualquer servidor que não corresponda a uma entrada onde quer que seja definido, incluindo servidores de plugins, servidores passados com `--mcp-config` e servidores do claude.ai.5186Crie uma lista de permissões dos servidores MCP que as pessoas podem adicionar. O Claude Code bloqueia qualquer servidor que não corresponda a uma entrada onde quer que seja definido, incluindo servidores de plugins, servidores passados com `--mcp-config` e servidores do claude.ai.

5165 5187 

5166Servidores integrados como Claude no Chrome, o servidor `ide` ao qual o Claude Code se conecta em um [VS Code](/docs/pt/vs-code#the-built-in-ide-mcp-server) ou [JetBrains](/docs/pt/jetbrains#the-built-in-ide-mcp-server) IDE em execução, e servidores que a própria CLI configura estão isentos da lista de permissões, e a lista de negação ainda se aplica a eles. Servidores `type: "sdk"` em processo estão isentos de ambas as listas; o [aplicativo que iniciou a sessão](/docs/pt/mcp#how-connectors-reach-claude-code) os registra.5188Servidores integrados como Claude no Chrome, o servidor `ide` ao qual o Claude Code se conecta em um [VS Code](/docs/pt/vs-code#the-built-in-ide-mcp-server) ou [JetBrains](/docs/pt/jetbrains#the-built-in-ide-mcp-server) IDE em execução, e servidores que a própria CLI configura estão isentos da lista de permissões, e a lista de negação ainda se aplica a eles. Na Claude Code v2.1.268 ou posterior, as ferramentas Slack de uma sessão [Claude Tag](/docs/pt/claude-tag) também estão isentas da lista de permissões, e a lista de negação ainda se aplica a elas. Servidores `type: "sdk"` em processo estão isentos de ambas as listas; o [aplicativo que iniciou a sessão](/docs/pt/mcp#how-connectors-reach-claude-code) os registra.

5167 5189 

5168Os servidores que sua organização entrega também estão isentos da lista de permissões, e a lista de negação ainda se aplica a eles. A isenção cobre cada entrada [`managedMcpServers`](#managedmcpservers) e qualquer entrada [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) cujos valores não usam expansão `${VAR}`. Veja [Como um servidor é avaliado](/docs/pt/managed-mcp#how-a-server-is-evaluated) para a ordem de verificação completa. Antes da v2.1.259, servidores do `managed-mcp.json` também tinham que corresponder.5190Os servidores que sua organização entrega também estão isentos da lista de permissões, e a lista de negação ainda se aplica a eles. A isenção cobre cada entrada [`managedMcpServers`](#managedmcpservers) e qualquer entrada [`managed-mcp.json`](/docs/pt/managed-mcp#exclusive-control-with-managed-mcp-json) cujos valores não usam expansão `${VAR}`. Veja [Como um servidor é avaliado](/docs/pt/managed-mcp#how-a-server-is-evaluated) para a ordem de verificação completa. Antes da v2.1.259, servidores do `managed-mcp.json` também tinham que corresponder.

5169 5191 


6304 `disableSideloadFlags`6326 `disableSideloadFlags`

6305</h3>6327</h3>

6306 6328 

6307Rejeite os sinalizadores CLI `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização, que os usuários poderiam passar para contornar [`strictKnownMarketplaces`](#strictknownmarketplaces) em uma única execução. Claude Code sai com um erro nomeando os sinalizadores rejeitados e aplica a mesma verificação a superfícies que iniciam o CLI com esses sinalizadores internamente, atualmente [Cowork](/docs/pt/desktop) sessões locais no aplicativo desktop. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), Claude Code descarta os servidores MCP que o servidor entregou através de `--mcp-config`, exceto entradas `type: "sdk"` em processo, e inicia a sessão. Requer Claude Code v2.1.193 ou posterior.6329Rejeite os sinalizadores CLI `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização, que os usuários poderiam passar para contornar [`strictKnownMarketplaces`](#strictknownmarketplaces) em uma única execução. Claude Code sai com um erro nomeando os sinalizadores rejeitados e aplica a mesma verificação a superfícies que iniciam o CLI com esses sinalizadores internamente, atualmente [Cowork](/docs/pt/desktop) sessões locais no aplicativo desktop. Em [sessões na nuvem](/docs/pt/claude-code-on-the-web), Claude Code inicia a sessão e descarta todas as entradas `--mcp-config` entregues pelo servidor, exceto entradas `type: "sdk"` em processo e as ferramentas Slack de uma sessão [Claude Tag](/docs/pt/claude-tag). Requer Claude Code v2.1.193 ou posterior.

6308 6330 

6309* **Escopo**: [`Managed`](#scopes)6331* **Escopo**: [`Managed`](#scopes)

6310* **Tipo**: Booleano6332* **Tipo**: Booleano

6311 * `true`: Claude Code rejeita `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização e sai com um erro nomeando-os, exceto que em sessões na nuvem ele descarta os servidores MCP que o servidor entregou através de `--mcp-config`, exceto entradas `type: "sdk"` em processo, e inicia a sessão6333 * `true`: Claude Code rejeita `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização e sai com um erro nomeando-os. Em sessões na nuvem, ele inicia a sessão e descarta todas as entradas `--mcp-config` entregues pelo servidor, exceto entradas `type: "sdk"` em processo e as ferramentas Slack de uma sessão Claude Tag

6312 * `false`: Claude Code aceita esses sinalizadores6334 * `false`: Claude Code aceita esses sinalizadores

6313* **Padrão**: `false`6335* **Padrão**: `false`

6314 6336 


6322 6344 

6323A mesma verificação cobre pastas de plugins nomeadas na variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables), que requer Claude Code v2.1.280 ou posterior. Quando a variável nomeia uma pasta, Claude Code sai com o mesmo erro, e o erro diz para desconfigurar a variável.6345A mesma verificação cobre pastas de plugins nomeadas na variável de ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/pt/env-vars#variables), que requer Claude Code v2.1.280 ou posterior. Quando a variável nomeia uma pasta, Claude Code sai com o mesmo erro, e o erro diz para desconfigurar a variável.

6324 6346 

6325Em sessões na nuvem, Claude Code também ignora atualizações MCP entregues pelo servidor no meio da sessão, o caminho por trás da configuração de sessão na nuvem e SDK `setMcpServers()` que alcançam essas sessões. Entradas `type: "sdk"` em processo permanecem isentas lá também. Antes da v2.1.239, um `--mcp-config` entregue pelo servidor bloqueava uma sessão na nuvem de iniciar.6347Em sessões na nuvem, Claude Code também ignora atualizações MCP entregues pelo servidor no meio da sessão, o caminho por trás da configuração de sessão na nuvem e SDK `setMcpServers()` que alcançam essas sessões. Entradas `type: "sdk"` em processo e as ferramentas Slack de uma sessão Claude Tag permanecem isentas lá também. Antes da v2.1.268, tanto esse descarte quanto o descarte de inicialização também removiam as ferramentas Slack de uma sessão Claude Tag. Antes da v2.1.239, um `--mcp-config` entregue pelo servidor bloqueava uma sessão na nuvem de iniciar.

6326 6348 

6327<h3 id="forceremotesettingsrefresh">6349<h3 id="forceremotesettingsrefresh">

6328 `forceRemoteSettingsRefresh`6350 `forceRemoteSettingsRefresh`

statusline.md +1 −1

Details

1178**Porcentagem de contexto mostra valores inesperados**1178**Porcentagem de contexto mostra valores inesperados**

1179 1179 

1180* Use `used_percentage` para o estado de contexto mais simples e preciso1180* Use `used_percentage` para o estado de contexto mais simples e preciso

1181* A porcentagem de contexto pode diferir da saída `/context` devido a quando cada uma é calculada1181* A linha de status relata as contagens da última resposta de API, enquanto `/context` adiciona uma estimativa para mensagens adicionadas desde essa resposta, portanto `/context` pode ler mais alto até a próxima resposta

1182 1182 

1183**Links OSC 8 não clicáveis**1183**Links OSC 8 não clicáveis**

1184 1184 

sub-agents.md +3 −3

Details

802 - matcher: "Bash"802 - matcher: "Bash"

803 hooks:803 hooks:

804 - type: command804 - type: command

805 command: "./scripts/validate-command.sh $TOOL_INPUT"805 command: "./scripts/validate-command.sh"

806 PostToolUse:806 PostToolUse:

807 - matcher: "Edit|Write"807 - matcher: "Edit|Write"

808 hooks:808 hooks:


876 876 

877* **Linguagem natural**: nomeie o subagente em seu prompt; Claude decide se deve delegar877* **Linguagem natural**: nomeie o subagente em seu prompt; Claude decide se deve delegar

878* **@-mention**: garante que o subagente seja executado para uma tarefa878* **@-mention**: garante que o subagente seja executado para uma tarefa

879* **Em toda a sessão**: toda a sessão usa o prompt do sistema, restrições de ferramentas e modelo desse subagente via sinalizador `--agent` ou configuração `agent`879* **Em toda a sessão**: toda a sessão é executada como esse subagente via sinalizador `--agent` ou configuração `agent`

880 880 

881Para linguagem natural, não há sintaxe especial. Nomeie o subagente e Claude normalmente delega:881Para linguagem natural, não há sintaxe especial. Nomeie o subagente e Claude normalmente delega:

882 882 


897 897 

898Você também pode digitar a menção manualmente sem usar o seletor: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`. Enquanto você digita este formulário, a lista de sugestões mostra correspondências de arquivo em vez de agentes. A menção do agente ainda é resolvida quando você envia.898Você também pode digitar a menção manualmente sem usar o seletor: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`. Enquanto você digita este formulário, a lista de sugestões mostra correspondências de arquivo em vez de agentes. A menção do agente ainda é resolvida quando você envia.

899 899 

900**Execute toda a sessão como um subagente.** Passe [`--agent <name>`](/docs/pt/cli-reference) para iniciar uma sessão onde o thread principal em si assume o prompt do sistema, restrições de ferramentas e modelo desse subagente:900**Execute toda a sessão como um subagente.** Passe [`--agent <name>`](/docs/pt/cli-reference) para iniciar uma sessão onde o thread principal em si assume as restrições de ferramentas e o modelo desse subagente:

901 901 

902```bash theme={null}902```bash theme={null}

903claude --agent code-reviewer903claude --agent code-reviewer

Details

122 122 

123 <tr>123 <tr>

124 <td>Faturamento</td>124 <td>Faturamento</td>

125 <td><strong>Teams:</strong> \$150/assento (Premium) com PAYG disponível<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Entre em contato com vendas</a></td>125 <td><strong>Teams:</strong> assinatura por assento com PAYG disponível, consulte <a href="https://claude.com/pricing?utm_source=claude_code&utm_medium=docs&utm_content=third_party_pricing#team-&-enterprise">preços</a><br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Entre em contato com vendas</a></td>

126 <td>PAYG</td>126 <td>PAYG</td>

127 <td>PAYG através da AWS</td>127 <td>PAYG através da AWS</td>

128 <td>PAYG através do AWS Marketplace</td>128 <td>PAYG através do AWS Marketplace</td>

Details

445 TLS or SSL connection errors445 TLS or SSL connection errors

446</h3>446</h3>

447 447 

448Erros como `curl: (35) TLS connect error`, `schannel: next InitializeSecurityContext failed`, ou `Could not establish trust relationship for the SSL/TLS secure channel` do PowerShell indicam falhas de handshake TLS.448Erros como estes significam que o handshake TLS falhou:

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* PowerShell's `Could not create SSL/TLS secure channel`

453* PowerShell's `Could not establish trust relationship for the SSL/TLS secure channel`

449 454 

450**Soluções:**455**Soluções:**

451 456 

workflows.md +1 −1

Details

91 Acompanhar a execução91 Acompanhar a execução

92</h3>92</h3>

93 93 

94Workflows são executados em segundo plano, portanto a sessão permanece responsiva enquanto os agentes trabalham. Execute `/workflows` a qualquer momento para listar workflows em execução e concluídos, depois selecione um para abrir sua visualização de progresso.94Workflows são executados em segundo plano, portanto a sessão permanece responsiva enquanto os agentes trabalham. Execute `/workflows` a qualquer momento para listar workflows em execução e concluídos, depois selecione um para abrir sua visualização de progresso. Para parar um workflow em execução sem abri-lo, selecione-o na lista e pressione `x`.

95 95 

96A visualização de progresso mostra cada fase com suas contagens de agentes, totais de tokens e tempo decorrido. O rodapé lista a chave para cada ação:96A visualização de progresso mostra cada fase com suas contagens de agentes, totais de tokens e tempo decorrido. O rodapé lista a chave para cada ação:

97 97