SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 14:59 UTC

66 files changed +1,059 −594. View all changes and history on the product overview
2026
Wed 30 14:59 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

32 32 

33Para fazer logout e se autenticar novamente, digite `/logout` no prompt do Claude Code. Fazer logout também redefine seu estado de configuração de primeiro lançamento, portanto, na próxima vez que você executar `claude`, ele o guiará novamente pelo login e configuração.33Para fazer logout e se autenticar novamente, digite `/logout` no prompt do Claude Code. Fazer logout também redefine seu estado de configuração de primeiro lançamento, portanto, na próxima vez que você executar `claude`, ele o guiará novamente pelo login e configuração.

34 34 

35Se você está tendo problemas para fazer login, consulte [solução de problemas de autenticação](/docs/pt/troubleshoot-install#login-and-authentication).

36 

37<h3 id="log-in-with-multiple-accounts">

38 Faça login com múltiplas contas

39</h3>

40 

35Para permanecer conectado a várias contas ao mesmo tempo, como contas de trabalho e pessoais, dê a cada conta seu próprio diretório de configuração. Quando você inicia `claude`, defina a variável de ambiente [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars#variables) para o diretório da conta que você deseja usar. Cada diretório tem suas próprias configurações, histórico de sessão e login claude.ai ou chave de API. Por exemplo, em Bash ou Zsh, adicione este alias a `~/.bashrc` ou `~/.zshrc` para que `claude-work` use sua conta de trabalho enquanto `claude` mantém a sua pessoal:41Para permanecer conectado a várias contas ao mesmo tempo, como contas de trabalho e pessoais, dê a cada conta seu próprio diretório de configuração. Quando você inicia `claude`, defina a variável de ambiente [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars#variables) para o diretório da conta que você deseja usar. Cada diretório tem suas próprias configurações, histórico de sessão e login claude.ai ou chave de API. Por exemplo, em Bash ou Zsh, adicione este alias a `~/.bashrc` ou `~/.zshrc` para que `claude-work` use sua conta de trabalho enquanto `claude` mantém a sua pessoal:

36 42 

37```bash theme={null}43```bash theme={null}


40 46 

41Depois de abrir um novo terminal e executar `claude-work` pela primeira vez, Claude Code o guiará pelo login e configuração para o novo diretório. Diretórios separados não mantêm dois logins do Claude Console [sem uma chave de API](#sign-in-without-an-api-key) separados, porque Claude Code armazena esse tipo de login fora do diretório de configuração.47Depois de abrir um novo terminal e executar `claude-work` pela primeira vez, Claude Code o guiará pelo login e configuração para o novo diretório. Diretórios separados não mantêm dois logins do Claude Console [sem uma chave de API](#sign-in-without-an-api-key) separados, porque Claude Code armazena esse tipo de login fora do diretório de configuração.

42 48 

43Se você está tendo problemas para fazer login, consulte [solução de problemas de autenticação](/docs/pt/troubleshoot-install#login-and-authentication).

44 

45<h2 id="set-up-team-authentication">49<h2 id="set-up-team-authentication">

46 Configure a autenticação da equipe50 Configure a autenticação da equipe

47</h2>51</h2>

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

150* O diretório deve ser um repositório git com pelo menos um commit150* O diretório deve ser um repositório git com pelo menos um commit

151* O repositório agrupado deve ter menos de 100 MB. Repositórios maiores voltam a agrupar apenas a ramificação atual, depois a um único snapshot compactado da árvore de trabalho, e falham se o snapshot ainda for muito grande151* O repositório agrupado deve ter menos de 100 MB. Repositórios maiores voltam a agrupar apenas a ramificação atual, depois a um único snapshot compactado da árvore de trabalho, e falham se o snapshot ainda for muito grande

152* Arquivos não rastreados não são incluídos; execute `git add` em arquivos que você deseja que a sessão na nuvem veja152* Arquivos não rastreados não são incluídos; execute `git add` em arquivos que você deseja que a sessão na nuvem veja

153* No macOS, Linux e WSL, Claude Code recusa o upload quando não consegue seguir uma configuração git que afeta quais regras de atributo se aplicam aos seus arquivos, como `core.attributesFile` definido em um arquivo de configuração incluído. A [mensagem de recusa](/docs/pt/errors#the-repository-upload-cant-follow-a-git-setting) nomeia a configuração e a correção

153* Sessões criadas a partir de um pacote podem fazer push de volta para um remoto GitHub apenas quando sua [conexão GitHub](#github-authentication-options) tem acesso de push a esse repositório154* Sessões criadas a partir de um pacote podem fazer push de volta para um remoto GitHub apenas quando sua [conexão GitHub](#github-authentication-options) tem acesso de push a esse repositório

154 155 

155<h3 id="send-follow-ups-from-the-cli">156<h3 id="send-follow-ups-from-the-cli">

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 

claude-projects.md +26 −12

Details

4 4 

5# Deixe Claude coordenar trabalho contínuo com Projects5# Deixe Claude coordenar trabalho contínuo com Projects

6 6 

7> Dê a Claude um corpo de trabalho relacionado em uma conversa e deixe-o coordenar sessões em nuvem paralelas que compartilham repositórios, instruções e memória.7> Dê a Claude um fluxo de trabalho relacionado em uma conversa e deixe-o executar como sessões em nuvem paralelas que compartilham repositórios, instruções e memória.

8 8 

9<Note>9<Note>

10 Projects estão em beta público nos planos Pro e Max e estão sendo implementados gradualmente, começando com contas que usaram [sessões em nuvem](/docs/pt/claude-code-on-the-web) e não têm projetos existentes no chat claude.ai ou Cowork. Ainda não estão disponíveis nos planos Team ou Enterprise. Se **Projects** não aparecer na barra lateral em [claude.ai/code](https://claude.ai/code) ou na aba Code do [aplicativo desktop](/docs/pt/desktop), a implementação ainda não chegou à sua conta, e você pode [entrar na lista de espera](https://claude.com/form/projects). [Executar agentes em paralelo](/docs/pt/agents) lista o que você pode usar enquanto isso.10 Projects estão em beta público nos planos Pro e Max e estão sendo implementados gradualmente, começando com contas que usaram [sessões em nuvem](/docs/pt/claude-code-on-the-web) e não têm projetos existentes no chat claude.ai ou Cowork. Ainda não estão disponíveis nos planos Team ou Enterprise. Se **Projects** não aparecer na barra lateral em [claude.ai/code](https://claude.ai/code) ou na aba Code do [aplicativo desktop](/docs/pt/desktop), a implementação ainda não chegou à sua conta, e você pode [entrar na lista de espera](https://claude.com/form/projects). [Executar agentes em paralelo](/docs/pt/agents) lista o que você pode usar enquanto isso.


80Você cria e usa projects em [claude.ai/code](https://claude.ai/code), na aba Code do aplicativo desktop, ou no aplicativo móvel Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). No navegador e no aplicativo desktop existem duas maneiras de iniciar um projeto:80Você cria e usa projects em [claude.ai/code](https://claude.ai/code), na aba Code do aplicativo desktop, ou no aplicativo móvel Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) e [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). No navegador e no aplicativo desktop existem duas maneiras de iniciar um projeto:

81 81 

82* **Do zero**, quando você sabe o fluxo de trabalho que deseja que Claude execute: abra o diálogo **New project** e nomeie-o. [Iniciar um novo projeto do zero](#start-a-new-project-from-scratch) percorre o diálogo.82* **Do zero**, quando você sabe o fluxo de trabalho que deseja que Claude execute: abra o diálogo **New project** e nomeie-o. [Iniciar um novo projeto do zero](#start-a-new-project-from-scratch) percorre o diálogo.

83* **De uma sessão em nuvem que já está fazendo o trabalho**: escolha **Continue as a project** no menu dessa sessão, e Claude propõe a configuração do projeto a partir do que a sessão estava fazendo. Veja [Iniciar a partir de uma sessão em nuvem existente](#start-from-an-existing-cloud-session).83* **De uma sessão em nuvem que já está fazendo o trabalho**: escolha **Continue as project** no menu dessa sessão, e Claude propõe a configuração do projeto a partir do que a sessão estava fazendo. Veja [Iniciar a partir de uma sessão em nuvem existente](#start-from-an-existing-cloud-session).

84 84 

85De qualquer forma, [verifique os pré-requisitos](#check-the-prerequisites) primeiro.85De qualquer forma, [verifique os pré-requisitos](#check-the-prerequisites) primeiro.

86 86 


131 Iniciar a partir de uma sessão em nuvem existente131 Iniciar a partir de uma sessão em nuvem existente

132</h3>132</h3>

133 133 

134Se você já tem uma sessão em nuvem fazendo trabalho que pertence a um projeto, abra o menu da sessão na barra lateral e escolha **Continue as a project** ou **Move to project**:134Se você já tem uma sessão em nuvem fazendo trabalho que pertence a um projeto, abra o menu da sessão na barra lateral e escolha **Continue as project** ou **Move to project**:

135 135 

136* **Continue as a project** cria um novo projeto nomeado após a sessão e o abre. Claude lê a sessão e posta **Setup recommendations** na conversa para você confirmar. A sessão original permanece na sua lista de sessões, e se estava no meio de uma volta ela continua funcionando, então pare-a você mesmo se não quiser que ambas funcionem ao mesmo tempo. Se você usar o banner **Set up project** que pode aparecer acima da caixa de mensagem da sessão em nuvem, o resultado é o mesmo, exceto que a volta em execução da sessão para uma vez que o projeto abre.136* **Continue as project** cria um novo projeto nomeado após a sessão e o abre. Claude lê a sessão e posta **Setup recommendations** na conversa para você confirmar. A sessão original permanece na sua lista de sessões, e se estava no meio de uma volta ela continua funcionando, então pare-a você mesmo se não quiser que ambas funcionem ao mesmo tempo. Se você usar o banner **Set up project** que pode aparecer acima da caixa de mensagem da sessão em nuvem, o resultado é o mesmo, exceto que a volta em execução da sessão para uma vez que o projeto abre.

137* **Move to project** traz o trabalho da sessão para um projeto existente. Ele posta uma mensagem na conversa desse projeto pedindo a Claude para ler a sessão e continuar de onde parou, e o novo trabalho continua nas próprias threads do projeto. A sessão original permanece na sua lista de sessões, inalterada.137* **Move to project** traz o trabalho da sessão para um projeto existente. Ele posta uma mensagem na conversa desse projeto pedindo a Claude para ler a sessão e continuar de onde parou, e o novo trabalho continua nas próprias threads do projeto. A sessão original permanece na sua lista de sessões, inalterada.

138 138 

139Uma sessão local não tem essas opções. Para continuar seu trabalho em um projeto, descreva o trabalho na conversa do projeto, ou faça push de sua branch, adicione esse repositório ao projeto e nomeie a branch na tarefa.

140 

139<h3 id="set-up-github-access">141<h3 id="set-up-github-access">

140 Configurar acesso ao GitHub142 Configurar acesso ao GitHub

141</h3>143</h3>


275 277 

276As threads são executadas em [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) quando o modelo da thread o suporta, então a maioria das chamadas de ferramenta são executadas sem pedir a você. Quando uma thread precisa de sua aprovação, o prompt está dentro dessa thread e a thread aguarda até que você responda lá. Dizer a Claude na conversa do projeto para prosseguir não a alcança.278As threads são executadas em [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode) quando o modelo da thread o suporta, então a maioria das chamadas de ferramenta são executadas sem pedir a você. Quando uma thread precisa de sua aprovação, o prompt está dentro dessa thread e a thread aguarda até que você responda lá. Dizer a Claude na conversa do projeto para prosseguir não a alcança.

277 279 

278Cada aprovação cobre esse prompt, ou o resto dessa thread se você escolher a opção mais ampla. Para deixar cada thread executar certos comandos sem perguntar, ou para bloquear alguns, adicione [regras de permissão](/docs/pt/permissions) ao `.claude/settings.json` do repositório. As threads as aplicam apenas em um projeto com um repositório; veja [O que as threads pegam de seus repositórios](#what-threads-pick-up-from-your-repositories).280Cada aprovação cobre esse prompt, ou o resto dessa thread se você escolher a opção mais ampla. Para deixar cada thread executar certos comandos sem perguntar, ou para bloquear alguns, adicione [regras de permissão](/docs/pt/permissions) ao `.claude/settings.json` do repositório. As threads as aplicam apenas em um projeto com um repositório; veja [O que as threads pegam de seus repositórios](#what-threads-pick-up-from-your-repositories). Em um projeto com vários repositórios, nenhuma regra de permissão do repositório alcança uma thread na nuvem, então você depende do modo auto e das aprovações que você dá dentro de cada thread.

279 281 

280<h3 id="run-a-thread-on-your-own-computer">282<h3 id="run-a-thread-on-your-own-computer">

281 Executar uma thread no seu próprio computador283 Executar uma thread no seu próprio computador


283 285 

284Quando uma tarefa precisa de algo que apenas seu computador tem, como um banco de dados local, um emulador de dispositivo ou uma API atrás de seu VPN, peça a Claude para executar a thread para essa tarefa no seu computador em vez de na nuvem. Quando você pede na conversa do projeto, a thread é uma sessão Claude Code em uma pasta na sua máquina, conectada através de [Remote Control](/docs/pt/remote-control). As outras threads do projeto continuam funcionando na nuvem. Comparado com uma thread na nuvem, uma thread no seu computador:286Quando uma tarefa precisa de algo que apenas seu computador tem, como um banco de dados local, um emulador de dispositivo ou uma API atrás de seu VPN, peça a Claude para executar a thread para essa tarefa no seu computador em vez de na nuvem. Quando você pede na conversa do projeto, a thread é uma sessão Claude Code em uma pasta na sua máquina, conectada através de [Remote Control](/docs/pt/remote-control). As outras threads do projeto continuam funcionando na nuvem. Comparado com uma thread na nuvem, uma thread no seu computador:

285 287 

286* Funciona com os arquivos, ferramentas, servidores MCP e configurações Claude Code naquela máquina em vez do ambiente em nuvem do projeto288* Funciona com os arquivos, ferramentas, servidores MCP e configurações Claude Code naquela máquina, incluindo seus hooks e regras de permissão, em vez do ambiente em nuvem do projeto

287* Começa com as instruções do projeto, mas não com seus arquivos de memória carregados289* Começa com as instruções do projeto, mas não com seus arquivos de memória carregados

288* Executa apenas enquanto esse computador está acordado com Remote Control ligado290* Executa apenas enquanto esse computador está acordado com Remote Control ligado

289 291 


292 No computador que tem a pasta que a tarefa precisa, disponibilize-a através de Remote Control de uma de duas maneiras. Ambas precisam de Claude Code v2.1.280 ou posterior naquele computador.294 No computador que tem a pasta que a tarefa precisa, disponibilize-a através de Remote Control de uma de duas maneiras. Ambas precisam de Claude Code v2.1.280 ou posterior naquele computador.

293 295 

294 * **No aplicativo desktop Claude**: abra **Settings > Claude Code**, ative **Use this computer from your phone and claude.ai** e adicione a pasta à lista sob esse switch. As threads podem ser executadas neste computador enquanto o aplicativo está aberto.296 * **No aplicativo desktop Claude**: abra **Settings > Claude Code**, ative **Use this computer from your phone and claude.ai** e adicione a pasta à lista sob esse switch. As threads podem ser executadas neste computador enquanto o aplicativo está aberto.

295 * **Em um terminal**: execute `claude remote-control` na pasta e deixe-a funcionando.297 * **Em um terminal**: execute `claude remote-control` na pasta e deixe-a funcionando. Em um repositório git, adicione `--spawn worktree` para dar a cada thread lá seu próprio [worktree](/docs/pt/worktrees) em vez da pasta em si.

296 </Step>298 </Step>

297 299 

298 <Step title="Peça a tarefa com Work locally">300 <Step title="Peça a tarefa com Work locally">


300 </Step>302 </Step>

301 303 

302 <Step title="Permitir no cartão">304 <Step title="Permitir no cartão">

303 Claude responde com um cartão **Allow Claude to work in a folder on your device**. Escolha a pasta se você conectou várias. Depois clique em **Allow once**.305 Claude responde com um cartão **Allow Claude to work in a folder on your device**. Escolha a pasta se você conectou várias. Duas threads trabalhando em uma pasta ao mesmo tempo podem sobrescrever as mudanças uma da outra, então se a pasta é um repositório git, você pode ativar **Worktree** nas opções da pasta para dar a essa thread seu próprio worktree em vez disso. Então clique em **Allow once**.

304 </Step>306 </Step>

305</Steps>307</Steps>

306 308 


320| :- | :- | :- |322| :- | :- | :- |

321| Memória do projeto | Notas que Claude mantém sobre o projeto, como requisitos, decisões e armadilhas, armazenadas como arquivos. Cada thread em nuvem lê o arquivo de índice `MEMORY.md` quando começa e abre os outros arquivos quando precisa deles | Peça a Claude na conversa do projeto ou em qualquer thread em nuvem para lembrar um requisito, uma decisão ou uma armadilha, ou para esquecer um. Leia, edite e delete os arquivos em **Project settings > Memory** |323| Memória do projeto | Notas que Claude mantém sobre o projeto, como requisitos, decisões e armadilhas, armazenadas como arquivos. Cada thread em nuvem lê o arquivo de índice `MEMORY.md` quando começa e abre os outros arquivos quando precisa deles | Peça a Claude na conversa do projeto ou em qualquer thread em nuvem para lembrar um requisito, uma decisão ou uma armadilha, ou para esquecer um. Leia, edite e delete os arquivos em **Project settings > Memory** |

322| Instruções do projeto | Texto enviado para cada nova thread e para Claude na conversa do projeto, até 16.000 caracteres. [Escrever instruções do projeto](#write-project-instructions) cobre o que colocar nele | **Project settings > Memory > Project instructions**, ou peça a Claude para mudar as instruções |324| Instruções do projeto | Texto enviado para cada nova thread e para Claude na conversa do projeto, até 16.000 caracteres. [Escrever instruções do projeto](#write-project-instructions) cobre o que colocar nele | **Project settings > Memory > Project instructions**, ou peça a Claude para mudar as instruções |

323| Repositórios, arquivos e ambiente | Os repositórios que cada thread em nuvem clona, as pastas e arquivos que ela pode ler em `/mnt/project-files`, e o ambiente em nuvem em que ela é executada | Repositórios e ambiente em **Project settings > Environment**, ou peça a Claude na conversa para adicionar um repositório ao projeto. Arquivos e pastas de **Add** na aba **Library** em **Overview** |325| Repositórios, arquivos e ambiente | Os repositórios que cada thread em nuvem clona, as pastas e arquivos que ela pode ler em `/mnt/project-files`, e o ambiente em nuvem em que ela é executada | Repositórios e ambiente em **Project settings > Environment**, ou peça a Claude na conversa para adicionar um repositório ao projeto. [Arquivos e pastas](#add-files-and-folders) de **Add** na aba **Library** em **Overview** |

324 326 

325**Project settings > Memory** lista esses arquivos em **Auto memory**, porque Claude os escreve a si mesmo conforme trabalha no projeto. Eles são separados da [memória automática](/docs/pt/memory) que Claude Code mantém na sua máquina, mesmo que ambas usem um índice `MEMORY.md`. A memória do projeto também é separada dos arquivos `CLAUDE.md` nos repositórios do projeto. Cada thread em nuvem ainda lê esses arquivos `CLAUDE.md` de seu clone quando começa, então coloque instruções sobre um repositório em seu `CLAUDE.md` e notas sobre o projeto em memória do projeto.327**Project settings > Memory** lista esses arquivos em **Auto memory**, porque Claude os escreve a si mesmo conforme trabalha no projeto. Eles são separados da [memória automática](/docs/pt/memory) que Claude Code mantém na sua máquina, mesmo que ambas usem um índice `MEMORY.md`. A memória do projeto também é separada dos arquivos `CLAUDE.md` nos repositórios do projeto. Cada thread em nuvem ainda lê esses arquivos `CLAUDE.md` de seu clone quando começa, então coloque instruções sobre um repositório em seu `CLAUDE.md` e notas sobre o projeto em memória do projeto.

326 328 


364 366 

365Para um projeto que abrange muitos repositórios, como um recurso com código de servidor, web, mobile e desktop, adicione o um ou dois repositórios que quase cada tarefa toca e nomeie os outros em [instruções do projeto](#write-project-instructions) para que Claude saiba onde o resto do código vive. As threads em nuvem então começam pequenas e puxam os outros repositórios apenas para as tarefas que precisam deles.367Para um projeto que abrange muitos repositórios, como um recurso com código de servidor, web, mobile e desktop, adicione o um ou dois repositórios que quase cada tarefa toca e nomeie os outros em [instruções do projeto](#write-project-instructions) para que Claude saiba onde o resto do código vive. As threads em nuvem então começam pequenas e puxam os outros repositórios apenas para as tarefas que precisam deles.

366 368 

369<h3 id="add-files-and-folders">

370 Adicionar arquivos e pastas

371</h3>

372 

373Adicione os arquivos e pastas que você quer que as threads leiam no campo **Context** do diálogo **New project**, ou depois com **Add** na aba **Library** em **Overview**. Esses limites se aplicam ao que você adiciona:

374 

375* **Library tab**: até 100 arquivos e 2 GB em uma seleção, com um único arquivo até 480 MB.

376* **New project dialog**: arquivos acima de 30 MB são ignorados, então adicione arquivos maiores da aba **Library** depois de criar o projeto.

377* **Folders**: quando você adiciona uma pasta de qualquer lugar, o projeto recebe uma cópia de seus primeiros 100 arquivos até 200 MB, sem nenhum arquivo acima de 30 MB, arquivos ocultos ou `node_modules`. Um projeto contém até 10 pastas e pastas do Google Drive combinadas, e arquivos únicos não contam para esse limite.

378* **Changes after upload**: uploads são cópias, então uma mudança que você faz no seu computador depois não chega ao projeto até que você carregue o arquivo novamente e escolha **Replace** quando perguntado sobre o nome existente.

379 

367<h3 id="what-threads-pick-up-from-your-repositories">380<h3 id="what-threads-pick-up-from-your-repositories">

368 O que as threads pegam de seus repositórios381 O que as threads pegam de seus repositórios

369</h3>382</h3>


472Vários recursos Claude Code permitem que mais de uma sessão funcione ao mesmo tempo, então executar trabalho em paralelo não é por si só para que um projeto serve. Em um projeto, Claude inicia e rastreia as sessões em vez de você, e cada uma começa a partir das mesmas instruções. É assim que cada recurso vizinho se conecta a um projeto:485Vários recursos Claude Code permitem que mais de uma sessão funcione ao mesmo tempo, então executar trabalho em paralelo não é por si só para que um projeto serve. Em um projeto, Claude inicia e rastreia as sessões em vez de você, e cada uma começa a partir das mesmas instruções. É assim que cada recurso vizinho se conecta a um projeto:

473 486 

474* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) é Claude nos canais Slack da sua equipe, em planos Team e Enterprise. Qualquer pessoa em um canal pode dar trabalho a ele, todos no canal veem e o direcionam, e usa conexões que um admin configurou para esse canal. Um projeto é seu: você é o único que envia trabalho a ele ou vê suas threads, usa seu próprio acesso GitHub e connectors, e está em Pro e Max. [Como Claude Tag difere de Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tem o lado a lado.487* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) é Claude nos canais Slack da sua equipe, em planos Team e Enterprise. Qualquer pessoa em um canal pode dar trabalho a ele, todos no canal veem e o direcionam, e usa conexões que um admin configurou para esse canal. Um projeto é seu: você é o único que envia trabalho a ele ou vê suas threads, usa seu próprio acesso GitHub e connectors, e está em Pro e Max. [Como Claude Tag difere de Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tem o lado a lado.

475* **Sessões em nuvem**: cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web), a menos que você peça a Claude para executá-la na sua máquina. De qualquer forma, Claude inicia e rastreia em vez de você. Uma sessão em nuvem que você iniciou pode se tornar um projeto ou alimentar um através de [**Continue as a project** ou **Move to project**](#start-from-an-existing-cloud-session).488* **Sessões em nuvem**: cada thread é uma [sessão em nuvem](/docs/pt/claude-code-on-the-web), a menos que você peça a Claude para executá-la na sua máquina. De qualquer forma, Claude inicia e rastreia em vez de você. Uma sessão em nuvem que você iniciou pode se tornar um projeto ou alimentar um através de [**Continue as project** ou **Move to project**](#start-from-an-existing-cloud-session).

476* **Routines**: quando você pede trabalho agendado em um projeto, Claude cria uma [routine](/docs/pt/routines) que é executada como threads nesse projeto e aparece em sua aba **Routines**. Routines que você cria fora de um projeto continuam funcionando por conta própria.489* **Routines**: quando você pede trabalho agendado em um projeto, Claude cria uma [routine](/docs/pt/routines) que é executada como threads nesse projeto e aparece em sua aba **Routines**. Routines que você cria fora de um projeto continuam funcionando por conta própria.

477* **Remote Control**: [Remote Control](/docs/pt/remote-control) conecta claude.ai a uma sessão Claude Code em execução na sua máquina. Quando você pede a Claude em um projeto para executar uma thread no seu computador, o projeto [usa Remote Control para fazer isso](#run-a-thread-on-your-own-computer).490* **Remote Control**: [Remote Control](/docs/pt/remote-control) conecta claude.ai a uma sessão Claude Code em execução na sua máquina. Quando você pede a Claude em um projeto para executar uma thread no seu computador, o projeto [usa Remote Control para fazer isso](#run-a-thread-on-your-own-computer).

478* **Sessões locais e agent view**: uma sessão que você inicia na sua máquina em seu terminal, IDE ou no ambiente local do aplicativo desktop não pode ser adicionada a um projeto. [Agent view](/docs/pt/agent-view) é uma tela para rastrear várias sessões locais lado a lado, e você ainda inicia cada uma e dá sua tarefa a ela mesmo.491* **Sessões locais e agent view**: uma sessão que você inicia na sua máquina em seu terminal, IDE ou no ambiente local do aplicativo desktop não pode ser adicionada a um projeto. [Agent view](/docs/pt/agent-view) é uma tela para rastrear várias sessões locais lado a lado, e você ainda inicia cada uma e dá sua tarefa a ela mesmo.

479* **Worktrees**: um [worktree](/docs/pt/worktrees) dá a cada sessão local sua própria cópia de trabalho de um repositório para que sessões paralelas na sua máquina não se sobrescrevam. As threads em nuvem não precisam deles: cada uma clona seus repositórios em seu próprio sandbox em nuvem e funciona em seu próprio branch.492* **Worktrees**: um [worktree](/docs/pt/worktrees) dá a cada sessão local sua própria cópia de trabalho de um repositório para que sessões paralelas na sua máquina não se sobrescrevam. As threads em nuvem não precisam deles: cada uma clona seus repositórios em seu próprio sandbox em nuvem e funciona em seu próprio branch.

480* **Agent teams**: um [agent team](/docs/pt/agent-teams) é uma sessão que inicia sessões de colega de trabalho para uma única tarefa, na sua máquina ou dentro de uma sessão em nuvem, e termina com essa tarefa.493* **Agent teams**: um [agent team](/docs/pt/agent-teams) é uma sessão que inicia sessões de colega de trabalho para uma única tarefa, na sua máquina ou dentro de uma sessão em nuvem, e termina com essa tarefa.

494* **Subagents**: um [subagent](/docs/pt/sub-agents) é executado dentro de uma sessão, faz uma tarefa secundária em sua própria janela de contexto e retorna um resumo para essa sessão. As threads de um projeto são sessões completas que Claude inicia e que reportam de volta para a conversa do projeto, e uma thread ainda pode usar subagents para suas próprias tarefas secundárias.

481* **Projects no chat claude.ai e Cowork**: a [experiência anterior de Projects](https://support.claude.com/en/articles/9517075-what-are-projects), que agrupa conversas e arquivos de referência sem threads ou um coordenador. Esses projetos continuam funcionando como fazem hoje até que a experiência redesenhada os alcance.495* **Projects no chat claude.ai e Cowork**: a [experiência anterior de Projects](https://support.claude.com/en/articles/9517075-what-are-projects), que agrupa conversas e arquivos de referência sem threads ou um coordenador. Esses projetos continuam funcionando como fazem hoje até que a experiência redesenhada os alcance.

482 496 

483[Executar agentes em paralelo](/docs/pt/agents) compara essas opções lado a lado.497[Executar agentes em paralelo](/docs/pt/agents) compara essas opções lado a lado.


486 Limitações500 Limitações

487</h2>501</h2>

488 502 

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

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

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

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

493* Um projeto pertence a um usuário. Você não pode compartilhar um projeto ou suas threads com outro usuário, e transcrições de thread não têm a opção de compartilhamento que outras sessões em nuvem têm. Não há controles de nível de organização para projetos durante o beta.507* Um projeto pertence a um usuário. Você não pode compartilhar um projeto ou suas threads com outro usuário, e transcrições de thread não têm a opção de compartilhamento que outras sessões em nuvem têm. Não há controles de nível de organização para projetos durante o beta.

494* Uma thread pertence ao único projeto que a iniciou. Você não pode mover ou copiar uma thread para outro projeto, ou movê-la para ficar sozinha. [**Move to project**](#start-from-an-existing-cloud-session) vai apenas na outra direção: traz o trabalho de uma sessão em nuvem para um projeto.508* Uma thread pertence ao único project que a iniciou. Você não pode mover ou copiar uma thread para outro project, ou movê-la para ficar sozinha. [**Move to project**](#start-from-an-existing-cloud-session) vai apenas na outra direção: traz o trabalho de uma sessão em nuvem para um project. Você não pode mesclar dois projects em um.

495 509 

496<h2 id="troubleshooting">510<h2 id="troubleshooting">

497 Solução de problemas511 Solução de problemas

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

22| `claude -c -p "query"` | Continuar via SDK | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | Continuar via SDK | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | Retomar sessão por ID ou nome | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | Retomar sessão por ID ou nome | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | Atualizar para a versão mais recente | `claude update` |24| `claude update` | Atualizar para a versão mais recente | `claude update` |

25| `claude gateway` | Iniciar o servidor [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) auto-hospedado, para administradores implantando SSO e política na frente do Claude Code no Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry. Requer `--config` apontando para um [`gateway.yaml`](/docs/pt/claude-apps-gateway-config). Disponível no Claude Code v2.1.195 e posterior. | `claude gateway --config gateway.yaml` |25| `claude gateway` | Iniciar o servidor [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway) auto-hospedado, para administradores implantando SSO e política na frente do Claude Code no Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry. Requer `--config` apontando para um [`gateway.yaml`](/docs/pt/claude-apps-gateway-config). | `claude gateway --config gateway.yaml` |

26| `claude install [version]` | Instalar ou reinstalar o binário nativo. Aceita uma versão como `2.1.118`, ou `stable` ou `latest`. Veja [Instalar uma versão específica](/docs/pt/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Instalar ou reinstalar o binário nativo. Aceita uma versão como `2.1.118`, ou `stable` ou `latest`. Veja [Instalar uma versão específica](/docs/pt/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Faça login em sua conta Anthropic. Use `--email` para preencher previamente seu endereço de email, `--sso` para forçar autenticação SSO e `--console` para fazer login com Anthropic Console para faturamento de uso de API em vez de uma assinatura Claude | `claude auth login --console` |27| `claude auth login` | Faça login em sua conta Anthropic. Use `--email` para preencher previamente seu endereço de email, `--sso` para forçar autenticação SSO e `--console` para fazer login com Anthropic Console para faturamento de uso de API em vez de uma assinatura Claude | `claude auth login --console` |

28| `claude auth logout` | Fazer logout de sua conta Anthropic | `claude auth logout` |28| `claude auth logout` | Fazer logout de sua conta Anthropic | `claude auth logout` |

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 +7 −4

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 |


67| `/bug [report]` | Relate um bug ou compartilhe sua conversa. Você escolhe quanto histórico de sessão incluir e confirma em uma tela de consentimento antes de qualquer coisa ser enviada. Quando você está conectado ao Anthropic em uma conexão de primeira parte, o relatório vai para Anthropic; em um provedor de terceiros, ou sem credenciais Anthropic, Claude Code escreve o relatório em um [arquivo local sob `~/.claude/feedback-bundles/`](/docs/pt/data-usage#telemetry-services) que você encaminha você mesmo. Na [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box), `/bug` abre o diálogo de feedback próprio da extensão; requer Claude Code v2.1.229 ou posterior. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente. Antes da v2.1.232, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/share`. Antes da v2.1.212, `/bug` e `/share` eram aliases de `/feedback` |69| `/bug [report]` | Relate um bug ou compartilhe sua conversa. Você escolhe quanto histórico de sessão incluir e confirma em uma tela de consentimento antes de qualquer coisa ser enviada. Quando você está conectado ao Anthropic em uma conexão de primeira parte, o relatório vai para Anthropic; em um provedor de terceiros, ou sem credenciais Anthropic, Claude Code escreve o relatório em um [arquivo local sob `~/.claude/feedback-bundles/`](/docs/pt/data-usage#telemetry-services) que você encaminha você mesmo. Na [extensão VS Code](/docs/pt/vs-code#use-the-prompt-box), `/bug` abre o diálogo de feedback próprio da extensão; requer Claude Code v2.1.229 ou posterior. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente. Antes da v2.1.232, Claude Code enfileirava o comando até que a volta terminasse. Alias: `/share`. Antes da v2.1.212, `/bug` e `/share` eram aliases de `/feedback` |

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

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

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 |


84| `/design-sync [hint]` | **[Skill](/docs/pt/skills#bundled-skills).** Converta o sistema de design React do seu repositório e carregue-o em [Claude Design](https://claude.ai/design), para que os designs que produz usem seus componentes reais. Opcionalmente nomeie o sistema de design, por exemplo `/design-sync Acme DS`. Uma primeira sincronização verifica cada componente e pode levar algumas horas em um repositório grande. Disponível na API Anthropic. Precisa de claude.ai, que a CLI não contatará no Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou Claude Platform on AWS, ou através de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway#availability-and-limitations), então o comando não está disponível lá |87| `/design-sync [hint]` | **[Skill](/docs/pt/skills#bundled-skills).** Converta o sistema de design React do seu repositório e carregue-o em [Claude Design](https://claude.ai/design), para que os designs que produz usem seus componentes reais. Opcionalmente nomeie o sistema de design, por exemplo `/design-sync Acme DS`. Uma primeira sincronização verifica cada componente e pode levar algumas horas em um repositório grande. Disponível na API Anthropic. Precisa de claude.ai, que a CLI não contatará no Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry ou Claude Platform on AWS, ou através de um [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway#availability-and-limitations), então o comando não está disponível lá |

85| `/desktop` | Continue a sessão atual no aplicativo Claude Code Desktop. Requer macOS ou Windows x64 e uma assinatura Claude. Alias: `/app` |88| `/desktop` | Continue a sessão atual no aplicativo Claude Code Desktop. Requer macOS ou Windows x64 e uma assinatura Claude. Alias: `/app` |

86| `/diff` | Revise as mudanças em sua árvore de trabalho, incluindo as edições que Claude fez até agora. Consulte [Revise mudanças com /diff](/docs/pt/interactive-mode#review-changes-with-%2Fdiff) |89| `/diff` | Revise as mudanças em sua árvore de trabalho, incluindo as edições que Claude fez até agora. Consulte [Revise mudanças com /diff](/docs/pt/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/pt/skills#bundled-skills).** Execute uma verificação de configuração que diagnostica problemas e pode corrigi-los. Verifica a saúde da instalação, incluindo instalações duplicadas ou restantes, problemas de `PATH` e arquivos de configuração não analisáveis. Encontra skills, servidores MCP e plugins não utilizados versus seu custo de contexto, sinaliza [hooks](/docs/pt/hooks) lentos e verifica uma versão mais nova no seu [canal de lançamento](/docs/pt/setup#configure-release-channel). Deduplica arquivos `CLAUDE.md` locais contra os verificados, aparas arquivos [`CLAUDE.md`](/docs/pt/memory#my-claude-md-is-too-large) verificados cortando conteúdo que Claude poderia derivar do codebase, e migra a orientação sempre carregada que permanece em [skills](/docs/pt/skills) e arquivos `CLAUDE.md` aninhados que carregam sob demanda. Também oferece fazer [modo automático](/docs/pt/permissions#permission-modes) seu padrão e [pré-aprovar](/docs/pt/permissions) comandos somente leitura frequentemente negados. Relata descobertas primeiro e pede confirmação antes de alterar qualquer coisa. Do terminal, `claude doctor` imprime diagnósticos de instalação somente leitura sem iniciar uma sessão. Alias: `/checkup`. Execute `/doctor prompt-audit` para ter Claude [auditar seus arquivos `CLAUDE.md`, skills e outras configurações](/docs/pt/memory#write-effective-instructions) para instruções desatualizadas ou conflitantes em vez de executar a verificação. O subcomando `prompt-audit` requer Claude Code v2.1.283 ou posterior. A verificação de aparas `CLAUDE.md` requer Claude Code v2.1.206 ou posterior. Antes da v2.1.205, `/doctor` abria uma tela de diagnósticos somente leitura e pressionar `f` enviava o relatório para Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/pt/skills#bundled-skills).** Execute uma verificação de configuração que diagnostica problemas e pode corrigi-los. Verifica a saúde da instalação, incluindo instalações duplicadas ou restantes, problemas de `PATH` e arquivos de configuração não analisáveis. Encontra skills, servidores MCP e plugins não utilizados versus seu custo de contexto, sinaliza [hooks](/docs/pt/hooks) lentos e verifica uma versão mais nova no seu [canal de lançamento](/docs/pt/setup#configure-release-channel). Deduplica arquivos `CLAUDE.md` locais contra os verificados, aparas arquivos [`CLAUDE.md`](/docs/pt/memory#my-claude-md-is-too-large) verificados cortando conteúdo que Claude poderia derivar do codebase, e migra a orientação sempre carregada que permanece em [skills](/docs/pt/skills) e arquivos `CLAUDE.md` aninhados que carregam sob demanda. Também oferece fazer [modo automático](/docs/pt/permissions#permission-modes) seu padrão e [pré-aprovar](/docs/pt/permissions) comandos somente leitura frequentemente negados. Relata descobertas primeiro e pede confirmação antes de alterar qualquer coisa. Do terminal, `claude doctor` imprime diagnósticos de instalação somente leitura sem iniciar uma sessão. Alias: `/checkup`. Execute `/doctor prompt-audit` para ter Claude [auditar seus arquivos `CLAUDE.md`, skills e outras configurações](/docs/pt/memory#audit-your-instruction-files) para instruções desatualizadas ou conflitantes em vez de executar a verificação. O subcomando `prompt-audit` requer Claude Code v2.1.283 ou posterior. A verificação de aparas `CLAUDE.md` requer Claude Code v2.1.206 ou posterior. Antes da v2.1.205, `/doctor` abria uma tela de diagnósticos somente leitura e pressionar `f` enviava o relatório para Claude |

88| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Defina o [nível de esforço](/docs/pt/model-config#adjust-effort-level): `low` a `xhigh`, `max`, ou `auto`; `status` o imprime. `ultracode` ou `ultracode on` ativa [ultracode](/docs/pt/workflows#let-claude-decide-with-ultracode) para a sessão no nível atual, e `ultracode off` o desativa; a chave [`ultracode`](/docs/pt/settings-reference#ultracode) persiste. `max` é apenas de sessão. Os argumentos `on` e `off` e manter o nível atual requerem Claude Code v2.1.284 ou posterior. Antes da v2.1.284, `/effort ultracode` definia a sessão para `xhigh`, e `/effort ultracode off` falhava com `Invalid argument`. Execute-o enquanto Claude está respondendo e, uma vez que você confirme o [aviso de cache](/docs/pt/prompt-caching#changing-effort-level), se Claude Code mostrar um, Claude Code aplica o novo nível à próxima solicitação nessa volta. 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), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Funciona em `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Defina o [nível de esforço](/docs/pt/model-config#adjust-effort-level): `low` a `xhigh`, `max`, ou `auto`; `status` o imprime. `ultracode` ou `ultracode on` ativa [ultracode](/docs/pt/workflows#let-claude-decide-with-ultracode) para a sessão no nível atual, e `ultracode off` o desativa; a chave [`ultracode`](/docs/pt/settings-reference#ultracode) persiste. `max` é apenas de sessão. Os argumentos `on` e `off` e manter o nível atual requerem Claude Code v2.1.284 ou posterior. Antes da v2.1.284, `/effort ultracode` definia a sessão para `xhigh`, e `/effort ultracode off` falhava com `Invalid argument`. Execute-o enquanto Claude está respondendo e, uma vez que você confirme o [aviso de cache](/docs/pt/prompt-caching#changing-effort-level), se Claude Code mostrar um, Claude Code aplica o novo nível à próxima solicitação nessa volta. 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), como em um [provedor de terceiros](/docs/pt/third-party-integrations). Funciona em `-p` |

89| `/exit` | Saia da CLI. Em uma [sessão de fundo](/docs/pt/agent-view#attach-to-a-session) anexada, isso desanexa e a sessão continua em execução. Alias: `/quit` |92| `/exit` | Saia da CLI. Em uma [sessão de fundo](/docs/pt/agent-view#attach-to-a-session) anexada, isso desanexa e a sessão continua em execução. Alias: `/quit` |

90| `/export [filename]` | Exporte a conversa atual como texto simples. Com um nome de arquivo, escreve diretamente nesse arquivo. Sem, abre um diálogo para copiar para a área de transferência ou salvar em um arquivo |93| `/export [filename]` | Exporte a conversa atual como texto simples. Com um nome de arquivo, escreve diretamente nesse arquivo. Sem, abre um diálogo para copiar para a área de transferência ou salvar em um arquivo |

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


121| `/pr-comments [PR]` | Removido na v2.1.91. Peça ao Claude diretamente para visualizar comentários de pull request. Em versões anteriores, buscava e exibia comentários de um pull request GitHub; detecta automaticamente o PR para o branch atual, ou passe uma URL ou número de PR. Requer a CLI `gh` |124| `/pr-comments [PR]` | Removido na v2.1.91. Peça ao Claude diretamente para visualizar comentários de pull request. Em versões anteriores, buscava e exibia comentários de um pull request GitHub; detecta automaticamente o PR para o branch atual, ou passe uma URL ou número de PR. Requer a CLI `gh` |

122| `/privacy-settings` | Veja e atualize suas configurações de privacidade. Disponível apenas para assinantes de planos Pro e Max |125| `/privacy-settings` | Veja e atualize suas configurações de privacidade. Disponível apenas para assinantes de planos Pro e Max |

123| `/radio` | Abra Claude FM lo-fi radio no seu navegador. Imprime a URL do stream quando nenhum navegador está disponível |126| `/radio` | Abra Claude FM lo-fi radio no seu navegador. Imprime a URL do stream quando nenhum navegador está disponível |

124| `/rate-limit-options` | Mostre maneiras de continuar trabalhando quando um limite de uso claude.ai bloqueia uma solicitação: aguarde e [continue automaticamente quando o limite for redefinido](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset), adicione [créditos de uso](/docs/pt/costs#add-usage-credits-to-your-subscription) ou atualize seu plano. Claude Code também pode abrir este menu por conta própria quando você atinge um limite no seu próprio terminal. Consulte [Desative a continuação automática](/docs/pt/interactive-mode#turn-automatic-continue-off). Requer uma assinatura claude.ai. Não aparece no menu de comando; digite-o por completo. As linhas de espera e continuação requerem Claude Code v2.1.234 ou posterior |127| `/rate-limit-options` | Mostre maneiras de continuar trabalhando quando um limite de uso claude.ai bloqueia uma solicitação: aguarde e [continue automaticamente quando o limite for redefinido](/docs/pt/interactive-mode#wait-for-a-usage-limit-to-reset), adicione [créditos de uso](/docs/pt/costs#add-usage-credits-to-your-subscription) ou atualize seu plano. Claude Code também pode abrir este menu por conta própria quando você atinge um limite no seu próprio terminal. Consulte [Desative a continuação automática](/docs/pt/interactive-mode#turn-automatic-continue-off). Requer uma assinatura claude.ai. As linhas de espera e continuação requerem Claude Code v2.1.234 ou posterior |

125| `/recap` | Gere um resumo de uma linha da sessão atual sob demanda. Consulte [Recapitulação de sessão](/docs/pt/interactive-mode#session-recap) para o recapitulação automática que aparece depois que você esteve ausente |128| `/recap` | Gere um resumo de uma linha da sessão atual sob demanda. Consulte [Recapitulação de sessão](/docs/pt/interactive-mode#session-recap) para o recapitulação automática que aparece depois que você esteve ausente |

126| `/release-notes` | Veja o changelog em um seletor de versão interativo. Selecione uma versão específica para ver suas notas de lançamento, ou escolha mostrar todas as versões. As notas aparecem em sua transcrição sem entrar na conversa que Claude vê |129| `/release-notes` | Veja o changelog em um seletor de versão interativo. Selecione uma versão específica para ver suas notas de lançamento, ou escolha mostrar todas as versões. As notas aparecem em sua transcrição sem entrar na conversa que Claude vê |

127| `/reload-plugins [--force]` | Recarregue todos os [plugins](/docs/pt/plugins/overview) ativos para aplicar mudanças pendentes sem reiniciar. Relata contagens para cada componente recarregado e sinaliza erros de carregamento. Quando o recarregamento alteraria quais ferramentas MCP são carregadas e invalidaria o cache de prompt, o comando avisa e pula a menos que você passe `--force`. Também disponível em modo não interativo (`-p`), o Agent SDK e o aplicativo de desktop, onde é executado apenas em entrada digitada diretamente na sessão e não aplica mudanças de servidor MCP de plugin; requer Claude Code v2.1.260 ou posterior. Consulte [Aplique mudanças de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) |130| `/reload-plugins [--force]` | Recarregue todos os [plugins](/docs/pt/plugins/overview) ativos para aplicar mudanças pendentes sem reiniciar. Relata contagens para cada componente recarregado e sinaliza erros de carregamento. Quando o recarregamento alteraria quais ferramentas MCP são carregadas e invalidaria o cache de prompt, o comando avisa e pula a menos que você passe `--force`. Também disponível em modo não interativo (`-p`), o Agent SDK e o aplicativo de desktop, onde é executado apenas em entrada digitada diretamente na sessão e não aplica mudanças de servidor MCP de plugin; requer Claude Code v2.1.260 ou posterior. Consulte [Aplique mudanças de plugin sem reiniciar](/docs/pt/plugins/cli-reference#reload-plugins) |

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 +193 −117

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

158| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |159| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |

159| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |160| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |

160| `Model ... is not available. Your organization restricts model selection.` | [Request errors](#model-is-restricted-by-your-organizations-settings) |161| `Model ... is not available. Your organization restricts model selection.` | [Request errors](#model-is-restricted-by-your-organizations-settings) |

162| `Can't switch to the default model` | [Request errors](#cant-switch-to-the-default-model) |

161| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |163| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |

162| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |164| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |

163| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |165| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |


219| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) |221| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) |

220| `Your connected GitHub account can't see <owner>/<repo>` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) |222| `Your connected GitHub account can't see <owner>/<repo>` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) |

221| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) |223| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) |

224| `Not uploading this working tree` com `the upload cannot follow that setting` | [Command-line errors](#the-repository-upload-cant-follow-a-git-setting) |

222| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Command-line errors](#github-isnt-connected-to-your-claude-account) |225| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Command-line errors](#github-isnt-connected-to-your-claude-account) |

223| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |226| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |

224| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |227| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |


252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |255| `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) |256| `"<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) |257| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |

258| `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) |259| `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) |260| `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) |261| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |


727 The prompt to confirm went unanswered731 The prompt to confirm went unanswered

728</h3>732</h3>

729 733 

730Se sua conta exigir o [Fable usage-credits consent](/docs/pt/model-config#fable-and-usage-credits), Claude Code pede que você confirme antes de uma solicitação Fable cobrar créditos de uso. Quando ninguém responde esse prompt de consentimento em uma sessão que pode não ter ninguém em seu terminal, Claude Code fecha o prompt e encerra a volta com uma destas mensagens:734Se sua conta exigir o [Fable usage-credits consent](/docs/pt/model-config#fable-and-usage-credits), Claude Code pede que você confirme antes de uma solicitação Fable cobrar créditos de uso. Quando o prompt de consentimento fecha sem ninguém respondê-lo, Claude Code encerra a volta com uma destas mensagens:

731 735 

732```text theme={null}736```text theme={null}

733Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change737Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change


736 740 

737As mensagens nomeiam o modelo Fable da sessão, portanto, em Fable 5 elas leem `continuing on Fable 5` e `Fable 5 now uses usage credits`. Antes da v2.1.257, a primeira mensagem começava `Fable 5 limit reached`.741As mensagens nomeiam o modelo Fable da sessão, portanto, em Fable 5 elas leem `continuing on Fable 5` e `Fable 5 now uses usage credits`. Antes da v2.1.257, a primeira mensagem começava `Fable 5 limit reached`.

738 742 

739Isso acontece em sessões [Remote Control](/docs/pt/remote-control), [background sessions](/docs/pt/agent-view) e sessões de colegas de [agent team](/docs/pt/agent-teams). Claude Code mostra o prompt de consentimento apenas na visualização interativa da própria sessão: o terminal onde ela é executada, ou, para uma sessão em background, a [agents view](/docs/pt/agent-view) depois que você se conecta. Um cliente Remote Control não pode exibi-lo. Claude Code fecha o prompt no prazo [`dialogExpiry`](/docs/pt/settings-reference#dialogexpiry), cinco minutos por padrão, ou assim que um novo prompt chega enquanto ninguém digitou naquele terminal, como um prompt enviado de um cliente Remote Control. Digitar no terminal onde a sessão é executada cancela o prazo, e Claude Code aguarda sua resposta. Na visualização anexada de uma sessão em background, digitar não cancela o prazo, e um novo prompt ainda fecha o prompt de consentimento, portanto, responda antes que qualquer um deles aconteça. Claude Code não envia nada e mantém seu modelo, portanto, quando você enviar seu próximo prompt, Claude Code mostra o prompt de consentimento novamente.743Isso acontece em sessões [Remote Control](/docs/pt/remote-control), [background sessions](/docs/pt/agent-view), [agent team](/docs/pt/agent-teams) de colegas, e sessões que outro aplicativo hospeda através do Agent SDK. Para quando Claude Code fecha o prompt, veja [Fable and usage credits](/docs/pt/model-config#fable-and-usage-credits).

740 744 

741**O que fazer:**745**O que fazer:**

742 746 

743* No terminal onde a sessão é executada, envie outro prompt e responda o prompt de consentimento quando ele reaparecer. Para uma sessão em background, anexe-a primeiro da [agents view](/docs/pt/agent-view). Reenviar de um cliente Remote Control mostra esta mensagem novamente, porque o cliente não pode exibir o prompt.747* Onde a sessão é executada, no terminal ou no aplicativo que a hospeda, envie outro prompt e responda o prompt de consentimento quando ele reaparecer. Para uma sessão em background, anexe-a primeiro da [agents view](/docs/pt/agent-view). Reenviar de um cliente Remote Control mostra esta mensagem novamente, porque o cliente não pode exibir o prompt.

744* Execute `/model` para mudar para um modelo que não cobra créditos de uso748* Execute `/model` para mudar para um modelo que não cobra créditos de uso

745* Para dar a si mesmo mais tempo para alcançar aquele terminal, defina [`dialogExpiry`](/docs/pt/settings-reference#dialogexpiry) para um valor mais longo ou `"never"`749* Para dar a si mesmo mais tempo, defina [`dialogExpiry`](/docs/pt/settings-reference#dialogexpiry) para um valor mais longo ou `"never"`

746 750 

747Antes da v2.1.236, esta mensagem não aparecia: enquanto um cliente Remote Control estava conectado, Claude Code aguardava 60 segundos por uma resposta e depois continuava a volta em seu modelo padrão.751Antes da v2.1.236, esta mensagem não aparecia: enquanto um cliente Remote Control estava conectado, Claude Code aguardava 60 segundos por uma resposta e depois continuava a volta em seu modelo padrão.

748 752 


2067 Erros de solicitação2071 Erros de solicitação

2068</h2>2072</h2>

2069 2073 

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.2074Esses 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 2075 

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

2073 Prompt é muito longo2077 Prompt é muito longo


2079Prompt is too long2083Prompt is too long

2080```2084```

2081 2085 

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

2083 2087 

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

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


2087 2091 

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`.2092A 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 2093 

2090Quando você desativou o auto-compact nas suas [configurações de usuário](/docs/pt/settings-reference#autocompactenabled), a linha também diz:2094Quando 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 2095 

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

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

2094```2098```

2095 2099 

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.2100O 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 2101 

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.2102Amazon 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 2103 

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.2104Um [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 2105 

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:2106Quando 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 2107 

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

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


2107 2111 

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.2112Resolva 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 2113 

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:2114Quando 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 2115 

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.2116* 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.2117* Nesse caso, quando a conversa não termina com seu prompt, Claude Code resume a conversa inteira.

2114 2118 

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.2119Claude 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 2120 

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ê:2121Uma 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 2122 

2119```text theme={null}2123```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.2124Prompt 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```2125```

2122 2126 

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ê:2127Quando 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 2128 

2125```text theme={null}2129```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).2130Prompt 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 2140 

2137**O que fazer:**2141**O que fazer:**

2138 2142 

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 abaixo2143* 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 mensagens2144* 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 contexto2145* 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 relevante2146* 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.2147* 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 2148 

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

2146 2150 

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

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

2149</h3>2153</h3>

2150 2154 

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`.2155`/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 2156 

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

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

2155```2159```

2156 2160 

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.2161Quando 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 2162 

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

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


2164 2168 

2165**O que fazer:**2169**O que fazer:**

2166 2170 

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`2171* 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)2172* Para mais formas de reduzir o uso, veja [Prompt é muito longo](#prompt-is-too-long)

2169 2173 

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

2171 2175 


2173 Solicitação muito grande2177 Solicitação muito grande

2174</h3>2178</h3>

2175 2179 

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).2180O 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 2181 

2178```text theme={null}2182```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.2183Request 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 2185 

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:2186Quando 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 2187 

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.2188* `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.2189* `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 2190 

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.2191Antes 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 2192 

2189**O que fazer:**2193**O que fazer:**

2190 2194 

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 zero2195* 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 acumulados2196* 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ços2197* 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) abaixo2198* Para imagens, veja [Imagem era muito grande](#image-was-too-large) abaixo

2195 2199 

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

2197 Imagem era muito grande2201 Imagem era muito grande


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

2205```2209```

2206 2210 

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.2211Claude 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 2212 

2209**O que fazer:**2213**O que fazer:**

2210 2214 

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.2215* 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 inteira2216* Faça uma captura de tela mais apertada da região relevante em vez da tela inteira

2213 2217 

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


2250**O que fazer:**2254**O que fazer:**

2251 2255 

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 caminho2256* 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 novamente2257* Para PDFs protegidos ou inválidos, remova a senha ou re-exporte o arquivo de seu aplicativo de origem e tente novamente

2254 2258 

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

2256 2260 


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

2259```2263```

2260 2264 

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.2265Leituras 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 2266 

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

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


2274 2278 

2275**O que fazer:**2279**O que fazer:**

2276 2280 

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.2281* 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.2282* 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 2283 

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

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

2282</h3>2286</h3>

2283 2287 

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.2288Uma 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 2289 

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

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


2290 2294 

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.2295A 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 2296 

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.2297Claude 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 2298 

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.2299Em 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 2300 


2300 2304 

2301**O que fazer:**2305**O que fazer:**

2302 2306 

2303* Se sua versão do Claude Code é anterior à v2.1.216, execute `claude update`.2307* 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.2308* 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).2309* 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 2310 

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

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


2318 2322 

2319**O que fazer:**2323**O que fazer:**

2320 2324 

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.2325* 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 2326 

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.2327Antes 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 2328 


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

2327</h3>2331</h3>

2328 2332 

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.2333O 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 2334 

2331```text theme={null}2335```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.2336There'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 2340 

2337* **CLI interativa**: execute `/model` para escolher entre modelos disponíveis para sua conta.2341* **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.2342* **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.2343* **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).2344* 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.2345* 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.2346* 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).2347* 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 2348 

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

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

2347</h3>2351</h3>

2348 2352 

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).2353A 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 2354 

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

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

2353```2357```

2354 2358 

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.`2359Neste 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 2360 

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).2361Quando 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.

2362 

2363Quando 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 2364 

2359**O que fazer:**2365**O que fazer:**

2360 2366 

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á2367* 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).2368* 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).2369* 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.2370* 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 2371 

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

2367 Modelo não encontrado2373 Modelo não encontrado

2368</h3>2374</h3>

2369 2375 

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.2376Você 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 2377 

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

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


2379 2385 

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 mantido2386* 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.2387* 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.2388* 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.

2389* 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`.

2390 

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

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

2393</h3>

2394 

2395Você 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.

2396 

2397```text theme={null}

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

2399```

2400 

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

2402 

2403**O que fazer:**

2404 

2405* Mude para o modelo novamente

2406* 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 2407 

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

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

2386</h3>2410</h3>

2387 2411 

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:2412Você 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 2413 

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

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


2396**O que fazer:**2420**O que fazer:**

2397 2421 

2398* Aja sobre a explicação do servidor; para um limite de taxa ou um status 5xx, aguarde e escolha o modelo novamente2422* 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)2423* 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 2424 

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

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


2413**O que fazer:**2437**O que fazer:**

2414 2438 

2415* Execute `/model` e selecione um modelo que seu plano inclui2439* 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.2440* 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 inclui2441* Veja [claude.com/pricing](https://claude.com/pricing) para quais modelos cada plano inclui

2418 2442 

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

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

2421</h3>2445</h3>

2422 2446 

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.2447A 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 2448 

2425```text theme={null}2449```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.2450API 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.2456API 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```2457```

2434 2458 

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

2460 

2435**O que fazer:**2461**O que fazer:**

2436 2462 

2437* Execute `claude update` ou atualize o aplicativo Claude desktop, depois inicie uma nova sessão2463Atualize 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`2464 

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

2466| :- | :- |

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

2468| O aplicativo Claude desktop | Atualize o aplicativo |

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

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

2471 

2472* 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 continuar2473* Para a redação da política organizacional, atualize antes de continuar

2440 2474 

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

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

2443</h3>2477</h3>

2444 2478 

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.2479Seu 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 2480 

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

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


2450 2484 

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.`2485Digitar `/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 2486 

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

2488 

2489Claude 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.

2490 

2491**O que fazer:**

2492 

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

2494* 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

2495* 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).

2454 2496 

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.2497<h3 id="cant-switch-to-the-default-model">

2498 Não foi possível mudar para o modelo padrão

2499</h3>

2500 

2501Você escolheu o modelo Padrão, por exemplo selecionando a linha Padrão no seletor `/model` ou digitando `/model default`. Claude Code recusou a mudança, então a sessão mantém seu modelo atual.

2502 

2503```text theme={null}

2504Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

2505```

2506 

2507A redação após os dois pontos nomeia o que bloqueou a mudança:

2508 

2509* **`your organization's managed settings block it ... in "deniedModels"`**: uma lista de negação gerenciada bloqueia o modelo para o qual a opção Padrão resolve

2510* **`your organization allows only the models listed in "availableModels"`**: uma lista de permissões [`availableModels`](/docs/pt/model-config#restrict-model-selection) gerenciada com [`availableModelsMatch`](/docs/pt/settings-reference#availablemodelsmatch) definida como `"exact"` deixa de fora o modelo para o qual a opção Padrão resolve

2511* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: as [configurações gerenciadas](/docs/pt/managed-settings) não puderam ser lidas, e Claude Code recusa a mudança em vez de aplicá-la sem verificação

2456 2512 

2457**O que fazer:**2513**O que fazer:**

2458 2514 

2459* Execute `/model` para escolher entre os modelos que sua organização permite. Modelos restritos estão ocultos do seletor.2515* Para as redações [`deniedModels`](/docs/pt/settings-reference#deniedmodels) e `availableModels`, execute `/model` e escolha um modelo que sua organização permite por nome

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 recorra2516* Peça ao seu administrador para atualizar a configuração gerenciada que a mensagem nomeia

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).2517* Para a redação `couldn't read`, reinicie Claude Code; se continuar acontecendo, peça ao seu administrador para verificar as configurações gerenciadas

2518 

2519Se uma sessão em vez disso falhar ao iniciar com uma mensagem `Claude Code can't start` sob essas configurações gerenciadas, veja [Configurações gerenciadas bloqueiam o modelo padrão](#managed-settings-block-the-default-model).

2462 2520 

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

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

2465</h3>2523</h3>

2466 2524 

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.2525Um [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 2526 

2469```text theme={null}2527```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.2528Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.


2472 2530 

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

2474 2532 

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.2533* **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.2534* **`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.2535* **`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.2536* **`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.2537* **`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 2538 

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.2539Antes 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ão2542 Não foi possível salvá-lo como seu padrão

2485</h3>2543</h3>

2486 2544 

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.2545Você 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 2546 

2489```text theme={null}2547```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)2548Set 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 2550 

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

2494 2552 

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).2553* **`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).2554* **`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 2555 

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.2556Um 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 2557 

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

2501 2559 

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

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

2504</h3>2562</h3>

2505 2563 

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.2564Sua 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 2565 

2508```text theme={null}2566```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.2567API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.


2511 2569 

2512**O que fazer:**2570**O que fazer:**

2513 2571 

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 posterior2572* 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 disso2573* 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 posterior2574* 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 2575 

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

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

2520</h3>2578</h3>

2521 2579 

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.2580Você 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 2581 

2524```text theme={null}2582```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)2583API 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.2590* [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.2591* 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 2592 

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.2593Antes 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 2594 

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

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

2539</h3>2597</h3>

2540 2598 

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.2599O 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:**2605**O que fazer:**

2548 2606 

2549* Aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/pt/env-vars) acima do orçamento de pensamento2607* 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ída2608* Veja [Pensamento estendido](/docs/pt/model-config#extended-thinking) para como o orçamento interage com o comprimento de saída

2551 2609 

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

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


2567 2625 

2568**O que fazer:**2626**O que fazer:**

2569 2627 

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.2628* 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.2629* 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 2630 

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

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

2575</h3>2633</h3>

2576 2634 

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.2635A 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 2636 

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

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

2581```2639```

2582 2640 

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.2641Claude 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 2642 

2585**O que fazer:**2643**O que fazer:**

2586 2644 

2587* Se você está na v2.1.281 ou anterior e cada volta falha com esse erro, execute `claude update` e retome a sessão2645* 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 bloco2646* Se o erro persistir, execute `/clear` para iniciar uma conversa que não carrega o bloco

2589 2647 

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

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

2592</h3>2650</h3>

2593 2651 

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:2652Quando 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 2653 

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

2597[Unsupported tool content removed]2655[Unsupported tool content removed]

2598```2656```

2599 2657 

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', ...`.2658Tal 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 2659 

2602**O que fazer:**2660**O que fazer:**

2603 2661 

2604* Nenhuma ação necessária quando você vê a linha de espaço reservado. A sessão continua sem o conteúdo removido.2662* 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.2663* 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 2664 

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

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


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

2615```2673```

2616 2674 

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.2675Claude 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 2676 

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.2677Quando 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 2678 

2621**O que fazer:**2679**O que fazer:**

2622 2680 

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 opera2681* 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.2682* 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 2683 

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.2684Antes 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 2685 

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

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

2630</h3>2688</h3>

2631 2689 

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:2690A 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 2691 

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

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


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

2639```2697```

2640 2698 

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.2699Resultados da [ferramenta de busca na web hospedada](https://platform.claude.com/docs/pt/agents-and-tools/tool-use/web-search-tool) 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 2700 

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.2701A 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 2702 

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.2703Para 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 2704 

2647**O que fazer:**2705**O que fazer:**

2648 2706 

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ão2707* 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 carrega2708* 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 opera2709* Se você executa Claude Code atrás de um proxy ou gateway, relate o erro a quem o opera

2652 2710 

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


2666 2724 

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

2668 2726 

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).2727A 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 2728 

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.`2729Antes 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 2730 

2673**O que fazer:**2731**O que fazer:**

2674 2732 

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).2733* 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`.2734* 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.2735* 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 2736 

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

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

2681</h3>2739</h3>

2682 2740 

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:2741As 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-claude2744API 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```2745```

2688 2746 

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.2747A 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 2748 

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.2749Em [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 2750 

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.2751A 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.`2752De 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.2753Antes 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 2754 

2697**O que fazer:**2755**O que fazer:**

2698 2756 

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)2757* 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 positivo2758* 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).2759* 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 2760 

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

2704 Erros de instalação2762 Erros de instalação


3376 3434 

3377Antes da v2.1.251, Claude Code terminava a mensagem com `Please set up GitHub on https://claude.ai/code` mesmo quando a verificação do GitHub falhou apenas transitoriamente, e o conselho de configuração não consegue limpar uma falha transitória.3435Antes da v2.1.251, Claude Code terminava a mensagem com `Please set up GitHub on https://claude.ai/code` mesmo quando a verificação do GitHub falhou apenas transitoriamente, e o conselho de configuração não consegue limpar uma falha transitória.

3378 3436 

3437<h3 id="the-repository-upload-cant-follow-a-git-setting">

3438 O upload do repositório não consegue seguir uma configuração git

3439</h3>

3440 

3441Você iniciou uma [sessão em nuvem que carrega seu repositório local](/docs/pt/claude-code-on-the-web#send-local-repositories-without-github), ou um [ultrareview](/docs/pt/ultrareview) de um branch, e o carregamento não consegue seguir uma das configurações git que decidem quais regras de atributo se aplicam aos seus arquivos. Se o carregamento tivesse continuado e perdido uma regra, um arquivo que git transforma antes de armazenar, como um que um filtro limpo criptografa, poderia chegar à nuvem como está no disco. Claude Code recusa o carregamento em vez disso, e nada é carregado:

3442 

3443```text theme={null}

3444Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.

3445```

3446 

3447A mensagem nomeia a configuração e onde está definida, e termina com a correção para o caso que você atingiu. A mesma recusa aparece para `core.attributesFile` e `attr.tree`, cada uma com sua própria correção.

3448 

3449A mensagem pode nomear um arquivo de configuração que sua configuração git puxa através de uma diretiva `include` ou `includeIf`, mesmo quando a condição dessa diretiva não se aplica a este repositório.

3450 

3451**O que fazer:**

3452 

3453* Aplique a correção na sentença final da mensagem

3454 

3379<h3 id="github-isnt-connected-to-your-claude-account">3455<h3 id="github-isnt-connected-to-your-claude-account">

3380 GitHub não está conectado à sua conta Claude3456 GitHub não está conectado à sua conta Claude

3381</h3>3457</h3>


3888 Plugin was not uninstalled3964 Plugin was not uninstalled

3889</h3>3965</h3>

3890 3966 

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:`.3967Você 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 3968 

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.3969Quando 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 3970 

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

fullscreen.md +1 −1

Details

294 294 

295Com a captura de mouse desativada, a rolagem por teclado com `PgUp`, `PgDn`, `Ctrl+Home` e `Ctrl+End` ainda funciona, e seu terminal lida com a seleção nativamente. Você perde clique para posicionar o cursor, clique para expandir, clique em URL e rolagem de roda dentro do Claude Code.295Com a captura de mouse desativada, a rolagem por teclado com `PgUp`, `PgDn`, `Ctrl+Home` e `Ctrl+End` ainda funciona, e seu terminal lida com a seleção nativamente. Você perde clique para posicionar o cursor, clique para expandir, clique em URL e rolagem de roda dentro do Claude Code.

296 296 

297Para manter a rolagem de roda mas desativar o clique, arrasto e manipulação de hover, defina `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`. Requer Claude Code v2.1.195 ou posterior. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambas as variáveis estão definidas.297Para manter a rolagem de roda mas desativar o clique, arrasto e manipulação de hover, defina `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambas as variáveis estão definidas.

298 298 

299Com cliques desativados, Claude Code ainda captura o mouse, portanto a roda e o touchpad rolam a conversa, mas cliques esquerdos não fazem nada dentro do Claude Code. Você ainda precisa manter a tecla do seu terminal para seleção nativa de clique e arrasto. Clique direito e colagem com clique do meio continuam funcionando em terminais que os suportam.299Com cliques desativados, Claude Code ainda captura o mouse, portanto a roda e o touchpad rolam a conversa, mas cliques esquerdos não fazem nada dentro do Claude Code. Você ainda precisa manter a tecla do seu terminal para seleção nativa de clique e arrasto. Clique direito e colagem com clique do meio continuam funcionando em terminais que os suportam.

300 300 

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 +222 −217

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


304 304 

305Um matcher no caminho de expressão regular é testado com `RegExp.prototype.test` do JavaScript, que sucede em uma correspondência em qualquer lugar no valor. `Edit.*` corresponde tanto a `Edit` quanto a `NotebookEdit`; envolva o padrão em `^` e `$`, como em `^Edit$`, quando você precisa de uma correspondência de string inteira.305Um matcher no caminho de expressão regular é testado com `RegExp.prototype.test` do JavaScript, que sucede em uma correspondência em qualquer lugar no valor. `Edit.*` corresponde tanto a `Edit` quanto a `NotebookEdit`; envolva o padrão em `^` e `$`, como em `^Edit$`, quando você precisa de uma correspondência de string inteira.

306 306 

307Hífens no conjunto de correspondência exata requerem Claude Code v2.1.195 ou posterior. Em versões anteriores, um nome com hífen como `code-reviewer` é avaliado como uma expressão regular não ancorada, então também dispara para `senior-code-reviewer`; ancorá-lo como `^code-reviewer$` nessas versões para corresponder apenas a esse nome.

308 

309`FileChanged` e `StopFailure` usam um conjunto de correspondência exata mais estreito de apenas letras, dígitos, `_` e `|`. Um hífen, espaço ou vírgula em um matcher para esses dois eventos o mantém no caminho de expressão regular, e apenas `|` separa alternativas. Todos os outros eventos com suporte a matcher na tabela a seguir aceitam `|` ou `,`.307`FileChanged` e `StopFailure` usam um conjunto de correspondência exata mais estreito de apenas letras, dígitos, `_` e `|`. Um hífen, espaço ou vírgula em um matcher para esses dois eventos o mantém no caminho de expressão regular, e apenas `|` separa alternativas. Todos os outros eventos com suporte a matcher na tabela a seguir aceitam `|` ou `,`.

310 308 

311O evento `FileChanged` não segue essas regras ao construir sua lista de monitoramento. Consulte [FileChanged](#filechanged).309O evento `FileChanged` não segue essas regras ao construir sua lista de monitoramento. Consulte [FileChanged](#filechanged).


380* `mcp__brave-search__.*` corresponde a todas as ferramentas de um servidor cujo nome contém um hífen378* `mcp__brave-search__.*` corresponde a todas as ferramentas de um servidor cujo nome contém um hífen

381* `mcp__.*__write.*` corresponde a qualquer ferramenta cujo nome começa com `write` de qualquer servidor379* `mcp__.*__write.*` corresponde a qualquer ferramenta cujo nome começa com `write` de qualquer servidor

382 380 

383Hífens no conjunto de correspondência exata requerem Claude Code v2.1.195 ou posterior. Em versões anteriores, um prefixo com hífen simples como `mcp__brave-search` é avaliado como uma expressão regular não ancorada e corresponde a cada ferramenta daquele servidor. A forma `mcp__brave-search__.*` funciona em todas as versões.

384 

385Ferramentas de um [servidor MCP fornecido por plugin](/docs/pt/mcp#plugin-provided-mcp-servers) usam um segmento de servidor com escopo que inclui o nome do plugin: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Um matcher escrito contra a chave do servidor simples nunca dispara para essas ferramentas. Para um plugin nomeado `my-plugin` que agrupa um servidor sob a chave `db`, uma ferramenta `query` aparece como `mcp__plugin_my-plugin_db__query`, então o matcher para cada ferramenta daquele servidor é `mcp__plugin_my-plugin_db__.*`. Use o mesmo nome de ferramenta com escopo no campo [`if`](#common-fields) de um manipulador. Consulte [Servidores MCP fornecidos por plugin](/docs/pt/mcp#plugin-provided-mcp-servers) para saber como o nome com escopo é construído.381Ferramentas de um [servidor MCP fornecido por plugin](/docs/pt/mcp#plugin-provided-mcp-servers) usam um segmento de servidor com escopo que inclui o nome do plugin: `mcp__plugin_<plugin-name>_<server-name>__<tool>`. Um matcher escrito contra a chave do servidor simples nunca dispara para essas ferramentas. Para um plugin nomeado `my-plugin` que agrupa um servidor sob a chave `db`, uma ferramenta `query` aparece como `mcp__plugin_my-plugin_db__query`, então o matcher para cada ferramenta daquele servidor é `mcp__plugin_my-plugin_db__.*`. Use o mesmo nome de ferramenta com escopo no campo [`if`](#common-fields) de um manipulador. Consulte [Servidores MCP fornecidos por plugin](/docs/pt/mcp#plugin-provided-mcp-servers) para saber como o nome com escopo é construído.

386 382 

387Este exemplo registra todas as operações do servidor memory e valida operações de escrita de qualquer servidor MCP:383Este exemplo registra todas as operações do servidor memory e valida operações de escrita de qualquer servidor MCP:


919| :- | :- | :- |915| :- | :- | :- |

920| `PreToolUse` | Sim | Bloqueia a chamada da ferramenta |916| `PreToolUse` | Sim | Bloqueia a chamada da ferramenta |

921| `PermissionRequest` | Não | Código de saída 2 não é honrado para este evento e o fluxo de permissão prossegue inalterado. Negue através do objeto [`decision`](#permissionrequest-decision-control) em vez disso |917| `PermissionRequest` | Não | Código de saída 2 não é honrado para este evento e o fluxo de permissão prossegue inalterado. Negue através do objeto [`decision`](#permissionrequest-decision-control) em vez disso |

922| `UserPromptSubmit` | Sim | Bloqueia o processamento de prompt e apaga o prompt |918| `UserPromptSubmit` | Sim | Bloqueia o prompt, para que nunca chegue ao Claude. Consulte [O que um prompt bloqueado deixa para trás](#what-a-blocked-prompt-leaves-behind) |

923| `UserPromptExpansion` | Sim | Bloqueia a expansão |919| `UserPromptExpansion` | Sim | Bloqueia a expansão |

924| `Stop` | Sim | Previne Claude de parar, continua a conversa |920| `Stop` | Sim | Previne Claude de parar, continua a conversa |

925| `SubagentStop` | Sim | Previne o subagente de parar |921| `SubagentStop` | Sim | Previne o subagente de parar |


1175 SessionStart1171 SessionStart

1176</h3>1172</h3>

1177 1173 

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.1174Executa 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 1175 

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.1176SessionStart é 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 1177 

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

1183 1179 


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

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

1189| `compact` | Compactação automática ou manual |1185| `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` |1186| `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 1187 

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

1193 1189 

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.1190Quando 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 1191 

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.1192Quando 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 1193 

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.1194A 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 1195 

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

1201 1197 


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

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

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 |1206| `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 |1207| `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>` |1208| `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 |1209| `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 1210 

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.1211Quando `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 1212 

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

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


1242 Controle de decisão SessionStart1238 Controle de decisão SessionStart

1243</h4>1239</h4>

1244 1240 

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:1241Claude 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 1242 

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

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

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 |1245| `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 |1246| `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"` |1247| `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 |1248| `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 |1249| `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 1250 

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

1256{1252{


1262}1258}

1263```1259```

1264 1260 

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`.1261Como 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 1262 

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:1263Use `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 1264 

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

1270#!/bin/bash1266#!/bin/bash


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

1276```1272```

1277 1273 

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.1274A 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 1275 

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

1281 Persistir variáveis de ambiente1277 Persistir variáveis de ambiente


1324 Setup1320 Setup

1325</h3>1321</h3>

1326 1322 

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.1323Dispara 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 1324 

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

1330 1326 


1339 1335 

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.1336No 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 1337 

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.1338Como 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 1339 

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

1345 Entrada Setup1341 Entrada Setup


1361 Controle de decisão Setup1357 Controle de decisão Setup

1362</h4>1358</h4>

1363 1359 

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`.1360Hooks 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 1361 

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).1362Hooks 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 1363 


1369 InstructionsLoaded1365 InstructionsLoaded

1370</h3>1366</h3>

1371 1367 

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.1368Dispara 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 1369 

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`.1370Este 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 1371 

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.1372O 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 1373 


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

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

1387| `memory_type` | Escopo do arquivo: `"User"`, `"Project"`, `"Local"` ou `"Managed"` |1383| `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 |1384| `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` |1385| `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 |1386| `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` |1387| `parent_file_path` | Caminho para o arquivo de instrução pai que incluiu este, para carregamentos `include` |


1412 UserPromptSubmit1408 UserPromptSubmit

1413</h3>1409</h3>

1414 1410 

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.1411Executa 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 1412 

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.1413Hooks `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 1414 

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.1415Alé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 1416 

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.1417Um 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 1418 

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

1424 Entrada UserPromptSubmit1420 Entrada UserPromptSubmit

1425</h4>1421</h4>

1426 1422 

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.1423Alé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 1424 

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

1430{1426{


1445 1441 

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

1447 1443 

1448* **Stdout de texto simples**: Claude Code adiciona stdout que [trata como texto simples](#exit-code-0) ao contexto de Claude1444* **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 contexto1445* **JSON com `additionalContext`**: use o formato JSON abaixo para mais controle. O campo `additionalContext` é adicionado como contexto

1450 1446 

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


1454 1450 

1455| Campo | Descrição |1451| Campo | Descrição |

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

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

1458| `reason` | Mostrado ao usuário quando `decision` é `"block"`. Não adicionado ao contexto |1454| `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) |1455| `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 |1456| `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 |1457| `suppressOriginalPrompt` | Se `true` quando o hook bloqueia o prompt, deixa o texto do prompt original fora da mensagem de bloqueio. Veja [O que um prompt bloqueado deixa para trás](#what-a-blocked-prompt-leaves-behind) |

1462 1458 

1463Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: a mensagem de bloqueio mostra o texto stderr ao usuário, e não é adicionada ao contexto.1459Um hook que bloqueia ao sair com 2 roteia da mesma forma que `reason`: a mensagem de bloqueio mostra o texto stderr ao usuário, e não é adicionada ao contexto.

1464 1460 


1469 "hookSpecificOutput": {1465 "hookSpecificOutput": {

1470 "hookEventName": "UserPromptSubmit",1466 "hookEventName": "UserPromptSubmit",

1471 "additionalContext": "My additional context here",1467 "additionalContext": "My additional context here",

1472 "sessionTitle": "My session title"1468 "sessionTitle": "My session title",

1469 "suppressOriginalPrompt": true

1473 }1470 }

1474}1471}

1475```1472```

1476 1473 

1474<h4 id="what-a-blocked-prompt-leaves-behind">

1475 O que um prompt bloqueado deixa para trás

1476</h4>

1477 

1478Um prompt bloqueado nunca chega ao Claude, mas seu texto não é removido em todos os lugares. Por padrão, a mensagem de bloqueio mostrada ao usuário termina com `Original prompt:` seguido pelo texto enviado, e Claude Code escreve essa mensagem no arquivo de transcrição da sessão no disco. Para deixar o texto fora da mensagem, imprima JSON com `"suppressOriginalPrompt": true` dentro de `hookSpecificOutput`. Isso funciona se o hook bloqueia com `decision: "block"` ou ao sair com 2. Um hook de saída 2 que não imprime JSON sempre obtém o texto do prompt em sua mensagem de bloqueio.

1479 

1480`suppressOriginalPrompt` muda apenas a mensagem de bloqueio. O texto enviado ainda pode aparecer em arquivos locais como a transcrição da sessão e seu histórico de prompts, então um hook de bloqueio não é uma maneira de manter um segredo fora do disco. Para limitar ou remover esses arquivos, veja [Armazenamento em texto simples](/docs/pt/claude-directory#plaintext-storage) e [Limpar dados locais](/docs/pt/claude-directory#clear-local-data).

1481 

1477<h3 id="userpromptexpansion">1482<h3 id="userpromptexpansion">

1478 UserPromptExpansion1483 UserPromptExpansion

1479</h3>1484</h3>

1480 1485 

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`.1486Executa 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 1487 

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.1488Este 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 1489 

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

1486 1491 


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

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

1517| `reason` | Mostrado ao usuário quando `decision` é `"block"` |1522| `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) |1523| `additionalContext` | String adicionada ao contexto do Claude junto com o prompt expandido. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

1519 1524 

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.1525Um 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 1526 


1534 MessageDisplay1539 MessageDisplay

1535</h3>1540</h3>

1536 1541 

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.1542Executa 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 1543 

1539Use MessageDisplay para:1544Use MessageDisplay para:

1540 1545 

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

1542* transformar o texto que um aplicativo Agent SDK mostra aos seus usuários1547* 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 Claude1548* redactar chaves de API ou nomes de host internos das respostas do Claude

1544 1549 

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.1550Claude 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 1551 

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.1552MessageDisplay é 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 1553 

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.1554MessageDisplay 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 1555 

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.1556Em 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 1557 

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

1554 Entrada MessageDisplay1559 Entrada MessageDisplay

1555</h4>1560</h4>

1556 1561 

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.1562Alé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 1563 

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

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

1561| `turn_id` | UUID do turno atual |1566| `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 |1567| `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 |1568| `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 |1569| `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 |1570| `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 1571 

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

1568{1573{


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

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

1590 1595 

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`.1596Hooks 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 1597 

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`.1598Este 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 1599 

1595<Tabs>1600<Tabs>

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


1672 PreToolUse1677 PreToolUse

1673</h3>1678</h3>

1674 1679 

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).1680Executa 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 1681 

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.1682Para 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 1683 

1679<Warning>1684<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.1685 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 1686 

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

1683</Warning>1688</Warning>

1684 1689 

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

1686 1691 

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.1692Um 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 1693 

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

1690 Entrada PreToolUse1695 Entrada PreToolUse


1692 1697 

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

1694 1699 

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.1700Para 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 1701 

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

1698 1703 

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 caminho1704* 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`1705* 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 bloquear1706* 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 é absoluto1707* 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 |1737| `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 |1738| `run_in_background` | boolean | `false` | Se o comando deve ser executado em segundo plano |

1734 1739 

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

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.1742Seu 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 1743 

1739<Note>1744<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.1745 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>1746</Note>

1742 1747 

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

1744 1749 

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

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


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 |1753| `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` |1754| `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 |1755| `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 |1756| `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 |1757| `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 1758 

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

1755 1760 


1770 1775 

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

1772 1777 

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.1778* 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.1779* 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á.1780* Um hook que corresponde apenas a `Bash` nunca dispara lá.

1776 1781 

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

1778 Write1783 Write


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

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

1874 1879 

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:1880Quando 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 1881 

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

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

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"` |1884| `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 |1885| `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 |1886| `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 |1887| `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 |1888| `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 |1889| `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 |1890| `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 |1891| `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` |1892| `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 1893 

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`.1894No 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 1895 

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`.1896Para 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 1897 

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.1898Em 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 1899 

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

1896 1901 


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

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

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 |1910| `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 |1911| `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 1912 

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

1909 ExitPlanMode1914 ExitPlanMode

1910</h5>1915</h5>

1911 1916 

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.1917Apresenta 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 1918 

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

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


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

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

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 |1935| `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) |1936| `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 |1937| `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) |1938| `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 1939 

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

1936 1941 


1956 1961 

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

1958 1963 

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.1964Em [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 1965 

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.1966A 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 1967 


1970 1975 

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.1976`"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 1977 

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:1978A 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 1979 

19751. Claude chama `AskUserQuestion`. O hook `PreToolUse` é disparado.19801. 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.19812. 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.19823. 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.19834. 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}1999}

1995```2000```

1996 2001 

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.2002Nã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 2003 

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.2004`"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 2005 

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.2006Se 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 2007 

2003<Note>2008<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.2009 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 2010 

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).2011 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>2012</Note>

2008 2013 

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

2010 PermissionRequest2015 PermissionRequest

2011</h3>2016</h3>

2012 2017 

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.2018Executa 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.2019Use [controle de decisão PermissionRequest](#permissionrequest-decision-control) para permitir ou negar em nome do usuário.

2015 2020 

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.2021Use 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 2022 

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`.2023Claude 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 2024 


2023 Entrada PermissionRequest2028 Entrada PermissionRequest

2024</h4>2029</h4>

2025 2030 

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.2031Hooks 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 2032 

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.2033O 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 2034 

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).2035Hooks 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 2036 

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

2033{2038{


2060 2065 

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

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

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 |2068| `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 |2069| `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 |2070| `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 |2071| `message` | Para `"deny"` apenas: diz ao Claude por que a permissão foi negada |

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

2068 2073 

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.2074Um 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"` |2098| `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 |2099| `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 |2100| `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 |2101| `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 |2102| `addDirectories` | `directories`, `destination` | Adiciona diretórios de trabalho. `directories` é um array de strings de caminho |

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

2099 2104 


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

2104</Note>2109</Note>

2105 2110 

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

2107 2112 

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

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


2118 PostToolUse2123 PostToolUse

2119</h3>2124</h3>

2120 2125 

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

2122 2127 

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

2124 2129 


2131 Entrada PostToolUse2136 Entrada PostToolUse

2132</h4>2137</h4>

2133 2138 

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).2139Hooks `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 2140 

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

2137{2142{


2162 Controle de decisão PostToolUse2167 Controle de decisão PostToolUse

2163</h4>2168</h4>

2164 2169 

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:2170Hooks `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 2171 

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

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

2169| `decision` | `"block"` adiciona o `reason` ao lado do resultado da ferramenta. Claude ainda vê a saída original; para substituí-la, use `updatedToolOutput` |2174| `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"` |2175| `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) |2176| `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 |2177| `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 |2178| `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 |2179| `updatedMCPToolOutput` | Substitui a saída para [ferramentas MCP](#match-mcp-tools) apenas. Prefira `updatedToolOutput`, que funciona para todas as ferramentas |

2175 2180 

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


2191```2196```

2192 2197 

2193<Warning>2198<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.2199 `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 2200 

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.2201 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>2202</Warning>

2198 2203 

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

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

2201</h4>2206</h4>

2202 2207 

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.2208Retorne `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 2209 

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

2206 2211 


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

2217 2222 

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 conversa2223* **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 verificada2224* **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 2225 

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

2222 2227 

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 chamada2228* **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 ferramenta2229* **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 chamadas2230* **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ída2231* **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 2232 

2228<Warning>2233<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.2234 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>2235</Warning>

2231 2236 

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

2233 PostToolUseFailure2238 PostToolUseFailure

2234</h3>2239</h3>

2235 2240 

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.2241Executa 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 2242 

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

2239 2244 

2240<Note>2245<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).2246 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>2247</Note>

2243 2248 

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


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

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

2271| `error` | String descrevendo o que deu errado. O formato depende da ferramenta que falhou |2276| `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 |2277| `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 |2278| `duration_ms` | Opcional. Tempo de execução da ferramenta em milissegundos. Exclui tempo gasto em prompts de permissão e hooks PreToolUse |

2274 2279 

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.2280A 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 2281 

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 intercalados2282* 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 shell2283* 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`2284* 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 2285 

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

2282 Controle de decisão PostToolUseFailure2287 Controle de decisão PostToolUseFailure

2283</h4>2288</h4>

2284 2289 

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:2290Hooks `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 2291 

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

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

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

2290 2295 

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

2292{2297{


2301 PostToolBatch2306 PostToolBatch

2302</h3>2307</h3>

2303 2308 

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.2309Executa 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 2310 

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

2307 Entrada PostToolBatch2312 Entrada PostToolBatch


2333}2338}

2334```2339```

2335 2340 

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.2341`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 2342 

2338<Note>2343<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ê.2344 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}2363}

2359```2364```

2360 2365 

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.2366Retornar `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 2367 

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

2364 PermissionDenied2369 PermissionDenied

2365</h3>2370</h3>

2366 2371 

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.2372Executa 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 2373 

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

2370 2375 


2418 Notification2423 Notification

2419</h3>2424</h3>

2420 2425 

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.2426Executa 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 2427 

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.2428Você 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 2429 

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

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

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 |2432| `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 |2433| `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 |2434| `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 |2435| `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 |2436| `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 |2437| `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 |2438| `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 |2439| `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 |2440| `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) |2441| `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 |2442| `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** |2443| `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 2444 

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

2441 2446 


2443 2448 

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.2449Em 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 2450 

2446`agent_needs_input` para a pergunta de configuração de terminal de um colega requer Claude Code v2.1.248 ou posterior.2451`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 2452 

2448<Note>2453<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:2454 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 2455 

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.2456 * 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.2457 * 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.2458 * 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 2459 

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.2460 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`.2466* 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.2467* Defina [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/pt/env-vars) como `1` para desativar `permission_prompt` nessas sessões.

2463 2468 

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

2465 2470 

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:2471Use 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 2472 

2468```json theme={null}2473```json theme={null}

2469{2474{


2496 Entrada Notification2501 Entrada Notification

2497</h4>2502</h4>

2498 2503 

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.2504Alé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 2505 

2501```json theme={null}2506```json theme={null}

2502{2507{


2510}2515}

2511```2516```

2512 2517 

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.2518Hooks 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 2519 

2515<h3 id="subagentstart">2520<h3 id="subagentstart">

2516 SubagentStart2521 SubagentStart

2517</h3>2522</h3>

2518 2523 

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.2524Executa 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 2525 

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$`.2526Para 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 2527 

2523<h4 id="subagentstart-input">2528<h4 id="subagentstart-input">

2524 Entrada SubagentStart2529 Entrada SubagentStart


2558 SubagentStop2563 SubagentStop

2559</h3>2564</h3>

2560 2565 

2561Executado quando um subagente de Claude Code terminou de responder. Corresponde ao tipo de agente, mesmos valores que SubagentStart.2566Executa quando um subagente Claude Code terminou de responder. Corresponde ao tipo de agente, mesmos valores que SubagentStart.

2562 2567 

2563<h4 id="subagentstop-input">2568<h4 id="subagentstop-input">

2564 Entrada SubagentStop2569 Entrada SubagentStop

2565</h4>2570</h4>

2566 2571 

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.2572Alé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 2573 

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.2574Nem 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 2575 

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.2576Um `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 2577 


2597 TaskCreated2602 TaskCreated

2598</h3>2603</h3>

2599 2604 

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.2605Executa 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 2606 

2602Hooks TaskCreated não suportam matchers e são disparados em cada ocorrência.2607Hooks TaskCreated não suportam matchers e disparam em cada ocorrência.

2603 2608 

2604<h4 id="taskcreated-input">2609<h4 id="taskcreated-input">

2605 Entrada TaskCreated2610 Entrada TaskCreated


2626| `task_id` | Identificador da tarefa sendo criada |2631| `task_id` | Identificador da tarefa sendo criada |

2627| `task_subject` | Título da tarefa |2632| `task_subject` | Título da tarefa |

2628| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2633| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2629| `teammate_name` | Nome do colega criando a tarefa. Pode estar ausente |2634| `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 |2635| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2631 2636 

2632<h4 id="taskcreated-decision-control">2637<h4 id="taskcreated-decision-control">

2633 Controle de decisão TaskCreated2638 Controle de decisão TaskCreated

2634</h4>2639</h4>

2635 2640 

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.2641Um 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 2642 

2638* **Código de saída 2**: Claude Code retorna o texto stderr como a mensagem.2643* **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.2644* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code retorna `reason` como a mensagem.


2657 TaskCompleted2662 TaskCompleted

2658</h3>2663</h3>

2659 2664 

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.2665Executa 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 2666 

2662Hooks TaskCompleted não suportam matchers e são disparados em cada ocorrência.2667Hooks TaskCompleted não suportam matchers e disparam em cada ocorrência.

2663 2668 

2664<h4 id="taskcompleted-input">2669<h4 id="taskcompleted-input">

2665 Entrada TaskCompleted2670 Entrada TaskCompleted


2687| `task_id` | Identificador da tarefa sendo concluída |2692| `task_id` | Identificador da tarefa sendo concluída |

2688| `task_subject` | Título da tarefa |2693| `task_subject` | Título da tarefa |

2689| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |2694| `task_description` | Descrição detalhada da tarefa. Pode estar ausente |

2690| `teammate_name` | Nome do colega concluindo a tarefa. Pode estar ausente |2695| `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 |2696| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2692 2697 

2693<h4 id="taskcompleted-decision-control">2698<h4 id="taskcompleted-decision-control">


2697Hooks TaskCompleted suportam duas maneiras de controlar a conclusão da tarefa:2702Hooks TaskCompleted suportam duas maneiras de controlar a conclusão da tarefa:

2698 2703 

2699* **Código de saída 2**: a tarefa não é marcada como concluída e a mensagem stderr é retornada ao modelo como feedback.2704* **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.2705* **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 2706 

2702Este exemplo executa testes e bloqueia a conclusão da tarefa se falharem:2707Este exemplo executa testes e bloqueia a conclusão da tarefa se falharem:

2703 2708 


2719 Stop2724 Stop

2720</h3>2725</h3>

2721 2726 

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.2727Executa 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 2728 

2724<Tip>2729<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.2730 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 2736 

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).2737Alé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 2738 

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.2739O 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 2740 

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.2741Os 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 2742 

2738Cada entrada em `background_tasks` descreve uma tarefa em voo e usa esses campos:2743Cada entrada em `background_tasks` descreve uma tarefa em voo e usa esses campos:

2739 2744 

2740| Campo | Descrição |2745| Campo | Descrição |

2741| :- | :- |2746| :- | :- |

2742| `id` | Identificador de tarefa |2747| `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 |2748| `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 |2749| `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 |2750| `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` |2751| `command` | Linha de comando de shell, limitada a 1000 caracteres. Presente apenas para tarefas `shell` |


2798| Campo | Descrição |2803| Campo | Descrição |

2799| :- | :- |2804| :- | :- |

2800| `decision` | `"block"` impede que Claude pare. Omita para permitir que Claude pare |2805| `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 |2806| `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 |2807| `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 2808 

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.2809Um 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}2815}

2811```2816```

2812 2817 

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:2818Use `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 2819 

2815```json theme={null}2820```json theme={null}

2816{2821{


2825 StopFailure2830 StopFailure

2826</h3>2831</h3>

2827 2832 

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.2833Executa 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 2834 

2830<h4 id="stopfailure-input">2835<h4 id="stopfailure-input">

2831 Entrada StopFailure2836 Entrada StopFailure


2837| :- | :- |2842| :- | :- |

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` |2843| `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 |2844| `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"` |2845| `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 2846 

2842```json theme={null}2847```json theme={null}

2843{2848{


2857 TeammateIdle2862 TeammateIdle

2858</h3>2863</h3>

2859 2864 

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.2865Executa 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 2866 

2862Hooks TeammateIdle não suportam matchers e são disparados em cada ocorrência.2867Hooks TeammateIdle não suportam matchers e disparam em cada ocorrência.

2863 2868 

2864<h4 id="teammateidle-input">2869<h4 id="teammateidle-input">

2865 Entrada TeammateIdle2870 Entrada TeammateIdle


2881 2886 

2882| Campo | Descrição |2887| Campo | Descrição |

2883| :- | :- |2888| :- | :- |

2884| `teammate_name` | Nome do colega que está prestes a ficar inativo |2889| `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 |2890| `team_name` | Descontinuado. Nome de equipe derivado de sessão; será removido em uma versão futura |

2886 2891 

2887<h4 id="teammateidle-decision-control">2892<h4 id="teammateidle-decision-control">

2888 Controle de decisão TeammateIdle2893 Controle de decisão TeammateIdle

2889</h4>2894</h4>

2890 2895 

2891Hooks TeammateIdle suportam duas maneiras de controlar o comportamento do colega:2896Hooks TeammateIdle suportam duas maneiras de controlar o comportamento do colega de equipe:

2892 2897 

2893* **Código de saída 2**: o colega recebe a mensagem stderr como feedback e continua trabalhando em vez de ficar inativo.2898* **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.2899* **JSON `{"continue": false, "stopReason": "..."}`**: para o colega de equipe inteiramente, correspondendo ao comportamento do hook `Stop`. O `stopReason` é mostrado ao usuário.

2895 2900 

2896Este exemplo verifica que um artefato de compilação existe antes de permitir que um colega fique inativo:2901Este exemplo verifica se um artefato de compilação existe antes de permitir que um colega de equipe fique ocioso:

2897 2902 

2898```bash theme={null}2903```bash theme={null}

2899#!/bin/bash2904#!/bin/bash


2910 ConfigChange2915 ConfigChange

2911</h3>2916</h3>

2912 2917 

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.2918Executa 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 2919 

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.2920Claude 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 2921 


2979}2984}

2980```2985```

2981 2986 

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.2987Mudanç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 2988 

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.2989Claude 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 2990 

2986<h3 id="cwdchanged">2991<h3 id="cwdchanged">

2987 CwdChanged2992 CwdChanged

2988</h3>2993</h3>

2989 2994 

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.2995Executa 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 2996 

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.2997Hooks 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 2998 

2994CwdChanged não suporta matchers e é disparado em cada ocorrência.2999CwdChanged não suporta matchers e dispara em cada ocorrência.

2995 3000 

2996<h4 id="cwdchanged-input">3001<h4 id="cwdchanged-input">

2997 Entrada CwdChanged3002 Entrada CwdChanged


3022 3027 

3023Hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.3028Hooks CwdChanged não têm controle de decisão. Eles não podem bloquear a mudança de diretório.

3024 3029 

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.3030Claude 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 3031 

3027<h3 id="directoryadded">3032<h3 id="directoryadded">

3028 DirectoryAdded3033 DirectoryAdded

3029</h3>3034</h3>

3030 3035 

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.3036Executa 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 3037 

3033Claude Code não dispara este evento quando:3038Claude Code não dispara este evento quando:

3034 3039 


3036* Você adiciona um diretório na aba Workspace `/permissions`3041* 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 um3042* Você adiciona um diretório que já é um diretório de trabalho ou está dentro de um

3038 3043 

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.3044Claude 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 3045 

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.3046Claude 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 3047 


3071 3076 

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:3077Hooks 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 3078 

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ção3079* `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ção3080* `register_repo_root`: Claude Code escreve saída `systemMessage` e saída de falha apenas no log de depuração

3076 3081 

3077<h3 id="filechanged">3082<h3 id="filechanged">

3078 FileChanged3083 FileChanged

3079</h3>3084</h3>

3080 3085 

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.3086Executa 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 3087 

3083O `matcher` para este evento serve dois papéis:3088O `matcher` para este evento serve dois papéis:

3084 3089 

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`.3090* **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.3091* **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 3092 

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:3093Este 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}3110}

3106```3111```

3107 3112 

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:3113O 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 3114 

3110```bash theme={null}3115```bash theme={null}

3111#!/bin/bash3116#!/bin/bash


3115fi3120fi

3116```3121```

3117 3122 

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.3123Para 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 3124 

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 `*`.3125Para 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 3126 

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.3127Hooks 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 3128 


3130| Campo | Descrição |3135| Campo | Descrição |

3131| :- | :- |3136| :- | :- |

3132| `file_path` | Caminho absoluto para o arquivo que mudou |3137| `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 |3138| `event` | O que aconteceu: `"change"` para um arquivo modificado, `"add"` para um arquivo criado ou `"unlink"` para um arquivo excluído |

3134 3139 

3135```json theme={null}3140```json theme={null}

3136{3141{


3155 3160 

3156Hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.3161Hooks FileChanged não têm controle de decisão. Eles não podem bloquear a mudança de arquivo de ocorrer.

3157 3162 

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.3163Claude 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 3164 

3160<h3 id="worktreecreate">3165<h3 id="worktreecreate">

3161 WorktreeCreate3166 WorktreeCreate

3162</h3>3167</h3>

3163 3168 

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.3169Executa 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 3170 

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.3171Como 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 3172 

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.3173O 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 3174 

3170Claude Code atua no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.3175Claude Code age no sucesso do hook e no caminho retornado, e descarta `systemMessage` e `continue`.

3171 3176 

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:3177Este 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 3178 


3210 Saída WorktreeCreate3215 Saída WorktreeCreate

3211</h4>3216</h4>

3212 3217 

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:3218Hooks 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 3219 

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.3220* **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.3221* **Hooks HTTP** (`type: "http"`): retorne `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` no corpo da resposta.

3217 3222 

3218Se o hook falhar ou não produzir um caminho, a criação de worktree falha com um erro.3223Se o hook falhar ou não produzir um caminho, a criação de worktree falha com um erro.

3219 3224 

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.3225Claude 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 3226 

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.3227Claude 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 3228 


3225 WorktreeRemove3230 WorktreeRemove

3226</h3>3231</h3>

3227 3232 

3228Executado quando uma worktree está sendo removida. Este é o equivalente de limpeza para [WorktreeCreate](#worktreecreate). O evento é disparado quando:3233Executa quando uma worktree está sendo removida. Este é o equivalente de limpeza para [WorktreeCreate](#worktreecreate). O evento dispara quando:

3229 3234 

3230* você sai de uma sessão `--worktree` e escolhe removê-la3235* você sai de uma sessão `--worktree` e escolhe removê-la

3231* um subagente com `isolation: "worktree"` termina3236* 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 criou3237* você exclui uma [sessão de fundo](/docs/pt/agent-view#what-deleting-a-session-removes) cuja worktree o hook criou

3233 3238 

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:3239Para 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 3240 

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.3241* **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.3242* **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).3243* **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 3244 

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.3245Claude 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 3246 

3242Claude Code descarta [campos de saída JSON](#json-output) de um hook WorktreeRemove, como `systemMessage` e `continue`.3247Claude Code descarta [campos de saída JSON](#json-output) de um hook WorktreeRemove, como `systemMessage` e `continue`.

3243 3248 

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.3249Para 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 3250 

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:3251Claude 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 3252 


3278}3283}

3279```3284```

3280 3285 

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:3286O 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 3287 

3283* A worktree permanece no disco, e o comando do hook e stderr vão para o [log de depuração](#debug-hooks).3288* 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.3289* 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 3290 

3286<h3 id="precompact">3291<h3 id="precompact">

3287 PreCompact3292 PreCompact

3288</h3>3293</h3>

3289 3294 

3290Executado antes de Claude Code estar prestes a executar uma operação de compactação.3295Executa antes de Claude Code estar prestes a executar uma operação de compactação.

3291 3296 

3292O valor do matcher indica se a compactação foi disparada manualmente ou automaticamente:3297O valor do matcher indica se a compactação foi disparada manualmente ou automaticamente:

3293 3298 


3298 3303 

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"`.3304Saia 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 3305 

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.3306Bloquear 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 3307 

3303Claude Code descarta campos `systemMessage` e `continue` de um hook PreCompact.3308Claude Code descarta campos `systemMessage` e `continue` de um hook PreCompact.

3304 3309 


3323 PostCompact3328 PostCompact

3324</h3>3329</h3>

3325 3330 

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.3331Executa 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 3332 

3328Os mesmos valores de matcher se aplicam como para `PreCompact`:3333Os mesmos valores de matcher se aplicam como para `PreCompact`:

3329 3334 


3355 PreModelSwitch3360 PreModelSwitch

3356</h3>3361</h3>

3357 3362 

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.3363Executa 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 3364 

3360PreModelSwitch requer Claude Code v2.1.251 ou posterior. Claude Code o executa para essas solicitações:3365PreModelSwitch requer Claude Code v2.1.251 ou posterior. Claude Code o executa para essas solicitações:

3361 3366 

3362* `/model <name>` e o picker `/model`3367* `/model <name>` e o seletor `/model`

3363* O picker de modelo `Option+P` ou `Alt+P`3368* O seletor de modelo `Option+P` ou `Alt+P`

3364* A configuração Model em `/config`3369* A configuração Model em `/config`

3365* Ativar [modo rápido](/docs/pt/fast-mode) quando isso muda o modelo da sessão3370* 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)3371* 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 3372 

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.3373Claude 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 3374 

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.3375Claude 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 3376 

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.3377Quando 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 3378 

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:3379Escreva 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 3380 

3376<Tabs>3381<Tabs>

3377 <Tab title="macOS/Linux">3382 <Tab title="macOS/Linux">


3443 Entrada PreModelSwitch3448 Entrada PreModelSwitch

3444</h4>3449</h4>

3445 3450 

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.3451Alé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 3452 

3448| Campo | Tipo | Descrição |3453| Campo | Tipo | Descrição |

3449| :- | :- | :- |3454| :- | :- | :- |

3450| `from_model` | string | ID de modelo de que a mudança muda |3455| `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 |3456| `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 |3457| `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 |3458| `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 |3459| `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 |3460| `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"` |3461| `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 |3462| `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 |3463| `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 3464 

3460Este exemplo mostra a entrada para `/model opus` em uma sessão executando Sonnet 5:3465Este exemplo mostra a entrada para `/model opus` em uma sessão executando Sonnet 5:

3461 3466 


3506 3511 

3507Quando vários hooks PreModelSwitch retornam decisões diferentes, a precedência é `deny` > `ask` > `allow`.3512Quando vários hooks PreModelSwitch retornam decisões diferentes, a precedência é `deny` > `ask` > `allow`.

3508 3513 

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.3514Claude 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 3515 

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.3516Um 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 3517 

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).3518Um 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 3519 


3516 PostModelSwitch3521 PostModelSwitch

3517</h3>3522</h3>

3518 3523 

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.3524Executa 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 3525 

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:3526PostModelSwitch 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 3527 


3549}3554}

3550```3555```

3551 3556 

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.3557Para 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 3558 

3554<h4 id="postmodelswitch-input">3559<h4 id="postmodelswitch-input">

3555 Entrada PostModelSwitch3560 Entrada PostModelSwitch


3563 Controle de decisão PostModelSwitch3568 Controle de decisão PostModelSwitch

3564</h4>3569</h4>

3565 3570 

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:3571Claude 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 3572 

3568| Campo | Descrição |3573| Campo | Descrição |

3569| :- | :- |3574| :- | :- |

3570| `additionalContext` | String adicionada ao contexto de Claude com a próxima solicitação. Veja [Adicionar contexto para Claude](#add-context-for-claude) |3575| `additionalContext` | String adicionada ao contexto do Claude com a próxima solicitação. Veja [Adicionar contexto para Claude](#add-context-for-claude) |

3571 3576 

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.3577Se 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 3578 

3574<h3 id="sessionend">3579<h3 id="sessionend">

3575 SessionEnd3580 SessionEnd

3576</h3>3581</h3>

3577 3582 

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.3583Executa 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 3584 

3580O campo `reason` na entrada do hook indica por que a sessão terminou:3585O campo `reason` na entrada do hook indica por que a sessão terminou:

3581 3586 

3582| Motivo | Descrição |3587| Motivo | Descrição |

3583| :- | :- |3588| :- | :- |

3584| `clear` | Sessão limpa com comando `/clear` |3589| `clear` | Sessão limpa com comando `/clear` |

3585| `resume` | Sessão mudou via `/resume` interativo |3590| `resume` | Sessão mudada via `/resume` interativo |

3586| `logout` | Usuário fez logout |3591| `logout` | Usuário fez logout |

3587| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |3592| `prompt_input_exit` | Usuário saiu enquanto entrada de prompt estava visível |

3588| `other` | Outros motivos de saída |3593| `other` | Outros motivos de saída |


3608 3613 

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:3614Hooks 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 3615 

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.3616* **`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`.3617* **`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 3618 

3614Este exemplo define o orçamento para 5 segundos:3619Este exemplo define o orçamento para 5 segundos:


3623 Elicitation3628 Elicitation

3624</h3>3629</h3>

3625 3630 

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.3631Executa 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 3632 

3628O campo matcher corresponde ao nome do servidor MCP.3633O campo matcher corresponde ao nome do servidor MCP.

3629 3634 


3633 3638 

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`.3639Alé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 3640 

3636Para elicitação de modo formulário, o caso mais comum:3641Para elicitação de modo de formulário, o caso mais comum:

3637 3642 

3638```json theme={null}3643```json theme={null}

3639{3644{


3693 3698 

3694Código de saída 2 nega a elicitação. Claude Code não mostra sua mensagem stderr em lugar algum.3699Código de saída 2 nega a elicitação. Claude Code não mostra sua mensagem stderr em lugar algum.

3695 3700 

3696Claude Code atua em `hookSpecificOutput` da saída JSON de um hook Elicitation e descarta `systemMessage` e `continue`.3701Claude Code age em `hookSpecificOutput` de uma saída JSON de hook Elicitation e descarta `systemMessage` e `continue`.

3697 3702 

3698<h3 id="elicitationresult">3703<h3 id="elicitationresult">

3699 ElicitationResult3704 ElicitationResult

3700</h3>3705</h3>

3701 3706 

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.3707Executa 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 3708 

3704O campo matcher corresponde ao nome do servidor MCP.3709O campo matcher corresponde ao nome do servidor MCP.

3705 3710 


3746 3751 

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.3752Có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 3753 

3749Claude Code atua em `hookSpecificOutput` da saída JSON de um hook ElicitationResult e descarta `systemMessage` e `continue`.3754Claude Code age em `hookSpecificOutput` de uma saída JSON de hook ElicitationResult e descarta `systemMessage` e `continue`.

3750 3755 

3751<h2 id="prompt-based-hooks">3756<h2 id="prompt-based-hooks">

3752 Hooks baseados em prompt3757 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) |

mcp.md +3 −3

Details

542 * Em [sessões web](/docs/pt/claude-code-on-the-web), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão542 * Em [sessões web](/docs/pt/claude-code-on-the-web), uma chamada MCP para um servidor de plugin que ainda não está conectado, como logo após uma sessão ociosa acordar, inicia o servidor sob demanda e aguarda sua conexão

543* **Espaços reservados de caminho**: `${CLAUDE_PLUGIN_ROOT}` resolve para o diretório de instalação do plugin, `${CLAUDE_PLUGIN_DATA}` para seu diretório de [estado persistente](/docs/pt/plugins/components#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável. A substituição se aplica a:543* **Espaços reservados de caminho**: `${CLAUDE_PLUGIN_ROOT}` resolve para o diretório de instalação do plugin, `${CLAUDE_PLUGIN_DATA}` para seu diretório de [estado persistente](/docs/pt/plugins/components#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável. A substituição se aplica a:

544 * servidores `stdio`: `command`, `args`, `env`544 * servidores `stdio`: `command`, `args`, `env`

545 * servidores `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`. Antes da v2.1.195, `headersHelper` passava o espaço reservado como uma string literal545 * servidores `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`

546* **Acesso ao ambiente do usuário**: acesso às mesmas variáveis de ambiente que servidores configurados manualmente546* **Acesso ao ambiente do usuário**: acesso às mesmas variáveis de ambiente que servidores configurados manualmente

547* **Múltiplos tipos de transporte**: suporte para transportes stdio, SSE, HTTP, e WebSocket, embora o suporte de transporte possa variar por servidor547* **Múltiplos tipos de transporte**: suporte para transportes stdio, SSE, HTTP, e WebSocket, embora o suporte de transporte possa variar por servidor

548 548 


1101 1101 

1102| Onde você configurou o servidor | Diretório de trabalho |1102| Onde você configurou o servidor | Diretório de trabalho |

1103| :- | :- |1103| :- | :- |

1104| Um [plugin](/docs/pt/plugins/components#mcp-servers) | O diretório raiz do plugin. Requer Claude Code v2.1.195 ou posterior |1104| Um [plugin](/docs/pt/plugins/components#mcp-servers) | O diretório raiz do plugin |

1105| Um `.mcp.json` de projeto ou um servidor de [escopo local](#local-scope) | O diretório do projeto no qual o servidor é declarado |1105| Um `.mcp.json` de projeto ou um servidor de [escopo local](#local-scope) | O diretório do projeto no qual o servidor é declarado |

1106| Um arquivo de agente em seu projeto, um servidor da opção `mcpServers` do SDK ou método `setMcpServers()`, ou [`--mcp-config`](/docs/pt/cli-reference) | O [diretório de trabalho primário](/docs/pt/permissions#working-directories) da sessão |1106| Um arquivo de agente em seu projeto, um servidor da opção `mcpServers` do SDK ou método `setMcpServers()`, ou [`--mcp-config`](/docs/pt/cli-reference) | O [diretório de trabalho primário](/docs/pt/permissions#working-directories) da sessão |

1107| [Escopo de usuário](#user-scope), [MCP gerenciado](/docs/pt/managed-mcp), um [conector claude.ai](#use-mcp-servers-from-claude-ai), ou um arquivo de agente de fora de seu projeto, incluindo um de um diretório `--add-dir` | Seu diretório de configuração, `~/.claude` a menos que você defina [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars) |1107| [Escopo de usuário](#user-scope), [MCP gerenciado](/docs/pt/managed-mcp), um [conector claude.ai](#use-mcp-servers-from-claude-ai), ou um arquivo de agente de fora de seu projeto, incluindo um de um diretório `--add-dir` | Seu diretório de configuração, `~/.claude` a menos que você defina [`CLAUDE_CONFIG_DIR`](/docs/pt/env-vars) |


1440 1440 

1441Seu servidor recebe quaisquer argumentos que Claude escolheu, portanto continue validando a combinação no lado do servidor.1441Seu servidor recebe quaisquer argumentos que Claude escolheu, portanto continue validando a combinação no lado do servidor.

1442 1442 

1443Quando Claude Code não consegue produzir um esquema que a API aceita, ou em uma implantação que não recebe a configuração remota que habilita a reescrita, ele pula essa ferramenta, registra o motivo no log do servidor e deixa as outras ferramentas do servidor disponíveis. Versões anteriores à v2.1.195 pulam todas as ferramentas cujo esquema de entrada tem um `anyOf`, `oneOf` ou `allOf` no nível raiz.1443Quando Claude Code não consegue produzir um esquema que a API aceita, ou em uma implantação que não recebe a configuração remota que habilita a reescrita, ele pula essa ferramenta, registra o motivo no log do servidor e deixa as outras ferramentas do servidor disponíveis.

1444 1444 

1445<h2 id="tools-with-invalid-input-schemas">1445<h2 id="tools-with-invalid-input-schemas">

1446 Ferramentas com esquemas de entrada inválidos1446 Ferramentas com esquemas de entrada inválidos

memory.md +20 −10

Details

89 Escreva instruções eficazes89 Escreva instruções eficazes

90</h3>90</h3>

91 91 

92Os arquivos CLAUDE.md são carregados na janela de contexto no início de cada sessão, consumindo tokens junto com sua conversa. A [visualização da janela de contexto](/docs/pt/context-window) mostra onde CLAUDE.md carrega em relação ao resto do contexto de inicialização. Como são contexto em vez de configuração imposta, como você escreve as instruções afeta o quão confiável Claude as segue. Instruções específicas, concisas e bem estruturadas funcionam melhor.92Claude trata arquivos CLAUDE.md como contexto, não configuração imposta, portanto como você escreve as instruções afeta o quão confiável Claude as segue. Escreva instruções que sejam concretas o suficiente para verificar:

93 

94**Tamanho**: alvo de menos de 200 linhas por arquivo CLAUDE.md. Arquivos mais longos consomem mais contexto e reduzem a adesão. Se suas instruções estão crescendo muito, use [regras com escopo de caminho](#path-specific-rules) para que as instruções carreguem apenas quando Claude trabalha com arquivos correspondentes. Você também pode dividir o conteúdo em [importações](#import-additional-files) para organização, embora os arquivos importados ainda carreguem e entrem na janela de contexto na inicialização.

95 

96**Estrutura**: use cabeçalhos markdown e bullets para agrupar instruções relacionadas. Claude verifica a estrutura da mesma forma que os leitores fazem: seções organizadas são mais fáceis de seguir do que parágrafos densos.

97 

98**Especificidade**: escreva instruções que sejam concretas o suficiente para verificar. Por exemplo:

99 93 

100* "Use indentação de 2 espaços" em vez de "Formate o código adequadamente"94* "Use indentação de 2 espaços" em vez de "Formate o código adequadamente"

101* "Execute `npm test` antes de fazer commit" em vez de "Teste suas alterações"95* "Execute `npm test` antes de fazer commit" em vez de "Teste suas alterações"

102* "Os manipuladores de API vivem em `src/api/handlers/`" em vez de "Mantenha os arquivos organizados"96* "Os manipuladores de API vivem em `src/api/handlers/`" em vez de "Mantenha os arquivos organizados"

103 97 

104**Consistência**: se duas regras se contradizem, Claude pode escolher uma arbitrariamente. Revise seus arquivos CLAUDE.md, arquivos CLAUDE.md aninhados em subdiretórios e [`.claude/rules/`](#organize-rules-with-claude/rules/) periodicamente para remover instruções desatualizadas ou conflitantes. Em monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para pular arquivos CLAUDE.md de outras equipes que não são relevantes para seu trabalho.98Mantenha seus arquivos curtos, organizados e consistentes:

99 

100* **Tamanho**: alvo de menos de 200 linhas por arquivo CLAUDE.md. Arquivos mais longos consomem mais contexto e reduzem a adesão. Mova instruções que importam apenas para parte do codebase em [regras com escopo de caminho](#path-specific-rules), que carregam apenas quando Claude trabalha com arquivos correspondentes. [Importações](#import-additional-files) ajudam você a organizar um arquivo longo, mas não reduzem seu custo de contexto, porque arquivos importados também carregam na inicialização.

101* **Estrutura**: agrupe instruções relacionadas sob cabeçalhos e bullets markdown. Seções organizadas são mais fáceis para Claude seguir do que parágrafos densos.

102* **Consistência**: se duas instruções se contradizem, Claude pode escolher uma arbitrariamente. Revise seus arquivos CLAUDE.md, arquivos CLAUDE.md aninhados em subdiretórios e [`.claude/rules/`](#organize-rules-with-claude/rules/) periodicamente para remover instruções desatualizadas ou conflitantes. Para ter Claude encontrá-las para você, [execute uma auditoria de prompt](#audit-your-instruction-files).

103 

104<h4 id="audit-your-instruction-files">

105 Audite seus arquivos de instruções

106</h4>

105 107 

106Para fazer com que Claude verifique esses arquivos em busca de instruções desatualizadas ou conflitantes, execute `/doctor prompt-audit` em uma sessão. Claude lê seus arquivos CLAUDE.md, CLAUDE.local.md e AGENTS.md, além das regras, skills, comandos, subagentes e estilos de saída sob `.claude/` e `~/.claude/`. Ele procura por problemas como instruções escritas para modelos mais antigos, referências a arquivos ou comandos que não existem e arquivos que se contradizem. Você recebe um relatório de descobertas e um conjunto de edições propostas, e nada em seus arquivos muda até que você peça ao Claude para aplicá-las.108Para ter Claude verificar seus arquivos de instruções em busca de conteúdo desatualizado ou conflitante, execute `/doctor prompt-audit` em uma sessão. Claude procura por problemas como instruções escritas para modelos mais antigos, referências a arquivos ou comandos que não existem e arquivos que se contradizem. Você recebe um relatório de descobertas com edições propostas, e nada em seus arquivos muda até que você peça ao Claude para aplicá-las.

107 109 

108Para auditar um arquivo ou diretório em vez disso, passe seu caminho, por exemplo `/doctor prompt-audit .claude/skills/deploy`. A auditoria é executada através da skill `/claude-api` agrupada, portanto não está disponível enquanto essa skill está desativada em [`skillOverrides`](/docs/pt/skills#override-skill-visibility-from-settings) ou com [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills). `/doctor prompt-audit` requer Claude Code v2.1.283 ou posterior.110Por padrão, a auditoria cobre seus arquivos CLAUDE.md, CLAUDE.local.md e AGENTS.md, além das regras, skills, comandos, subagentes e estilos de saída sob `.claude/` e `~/.claude/`. Para auditar um arquivo ou diretório em vez disso, passe seu caminho, por exemplo `/doctor prompt-audit .claude/skills/deploy`.

111 

112A auditoria é executada através da skill `/claude-api` agrupada. Ela não está disponível enquanto essa skill está desativada em [`skillOverrides`](/docs/pt/skills#override-skill-visibility-from-settings) ou com [`disableBundledSkills`](/docs/pt/settings-reference#disablebundledskills). `/doctor prompt-audit` requer Claude Code v2.1.283 ou posterior.

109 113 

110<h3 id="import-additional-files">114<h3 id="import-additional-files">

111 Importe arquivos adicionais115 Importe arquivos adicionais


115 119 

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.120Caminhos 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 121 

122Para 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`:

123 

124```text theme={null}

125- API conventions @Design\ Docs/api-conventions.md

126```

127 

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.128A 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 129 

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:130Para 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 +20 −18

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


104 104 

105Em sessões interativas, Claude Code mostra um prompt de consentimento antes de uma solicitação Fable cobrar créditos de uso. Membros de planos Enterprise com faturamento da organização não veem o prompt. Você pode continuar em Fable usando créditos de uso ou mudar para seu modelo padrão. Você também pode descartar o prompt:105Em sessões interativas, Claude Code mostra um prompt de consentimento antes de uma solicitação Fable cobrar créditos de uso. Membros de planos Enterprise com faturamento da organização não veem o prompt. Você pode continuar em Fable usando créditos de uso ou mudar para seu modelo padrão. Você também pode descartar o prompt:

106 106 

107* No seletor `/model`, você mantém seu modelo atual.107* Quando você seleciona um modelo Fable com `/model`, você mantém seu modelo atual.

108* No meio da sessão, Claude Code continua a vez em seu modelo padrão.108* No meio da sessão, Claude Code continua a vez em seu modelo padrão.

109 109 

110Depois que você escolhe continuar em Fable usando créditos de uso, Claude Code não mostra o prompt novamente.110Depois que você escolhe continuar em Fable usando créditos de uso, Claude Code não mostra o prompt novamente.


117* Em uma sessão em segundo plano, responda antes do prazo.117* Em uma sessão em segundo plano, responda antes do prazo.

118* Se você enviar uma nova mensagem do cliente remoto antes de alguém digitar no terminal, Claude Code encerra a vez da mesma forma, e sua nova mensagem inicia a próxima vez. Depois que alguém digita no terminal, Claude Code continua aguardando a resposta e coloca sua nova mensagem na fila atrás dela.118* Se você enviar uma nova mensagem do cliente remoto antes de alguém digitar no terminal, Claude Code encerra a vez da mesma forma, e sua nova mensagem inicia a próxima vez. Depois que alguém digita no terminal, Claude Code continua aguardando a resposta e coloca sua nova mensagem na fila atrás dela.

119 119 

120Em [modo não interativo](/docs/pt/headless) com a flag `-p` e através do Agent SDK, Claude Code nunca mostra o prompt de consentimento. Quando uma solicitação Fable lá seria cobrada em créditos de uso, Claude Code a cobra sem perguntar.120Em uma sessão que outro aplicativo hospeda através do [Agent SDK](/docs/pt/agent-sdk/overview), se o prompt aparece depende desse aplicativo. Se aparecer e ninguém responder antes do mesmo prazo [`dialogExpiry`](/docs/pt/settings-reference#dialogexpiry), Claude Code encerra a vez sem enviar a solicitação.

121 

122Em [modo não interativo](/docs/pt/headless) com a flag `-p`, e em um aplicativo Agent SDK que não mostra o prompt, Claude Code nunca pede consentimento. Quando uma solicitação Fable lá seria cobrada em créditos de uso, Claude Code a cobra sem perguntar.

121 123 

122<h3 id="setting-your-model">124<h3 id="setting-your-model">

123 Configurar seu modelo125 Configurar seu modelo


164 166 

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.167Quando 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 168 

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:169Quando 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 170 

169* um alias de modelo171* **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`172* **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 173 

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.174Consulte [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 175 

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.176Se 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 177 

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

179 179 


241 Restringir seleção de modelo241 Restringir seleção de modelo

242</h2>242</h2>

243 243 

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).244Administradores 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 245 

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

247 247 


297 297 

298| Mecanismo de entrega | CLI e IDE | Sessões locais de desktop | Sessões web, móvel e na nuvem | Agent SDK e não interativo | Cowork |298| Mecanismo de entrega | CLI e IDE | Sessões locais de desktop | Sessões web, móvel e na nuvem | Agent SDK e não interativo | Cowork |

299| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

300| [Configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) do console de administração | Aplicado | Aplicado | Aplicado, exceto em sessões [Claude Tag](https://claude.com/docs/claude-tag/overview) | Aplicado | Não entregue |300| [Configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings) do console de administração | Aplicado | Aplicado | Aplicado, exceto em sessões [Claude Tag](https://claude.com/docs/claude-tag/overview) | Aplicado | Sessões Cowork remotas: o servidor verifica o modelo. Na máquina do usuário: não entregue. |

301| [MDM ou arquivos de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms) | Aplicado | Aplicado | Não entregue em ambientes hospedados pela Anthropic; em [ambientes auto-hospedados](/docs/pt/self-hosted-environments), aplicado da imagem do executor por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) | Aplicado | Aplicado onde implantado |301| [MDM ou arquivos de configurações gerenciadas](/docs/pt/managed-settings#delivery-mechanisms) | Aplicado | Aplicado | Não entregue em ambientes hospedados pela Anthropic; em [ambientes auto-hospedados](/docs/pt/self-hosted-environments), aplicado da imagem do executor por [como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) | Aplicado | Aplicado onde implantado |

302 302 

303* [Sessões na nuvem](/docs/pt/claude-code-on-the-web), incluindo aquelas que você inicia a partir do aplicativo Desktop, são executadas em VMs gerenciadas pela Anthropic por padrão: as configurações implantadas em seu dispositivo não as alcançam, portanto entregue a lista de permissões através de configurações gerenciadas pelo servidor. Sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em sua própria computação e também leem o arquivo de configurações gerenciadas na imagem do executor. [Como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica. Uma mudança de modelo no meio da sessão em uma sessão na nuvem é rejeitada quando o modelo solicitado é excluído pela lista de permissões. Quando a lista `availableModels` em suas configurações gerenciadas pelo servidor é não vazia, o servidor rejeita uma solicitação para iniciar uma sessão na nuvem em claude.ai/code ou a partir do aplicativo Desktop em um modelo que a lista exclui.303* [Sessões na nuvem](/docs/pt/claude-code-on-the-web), incluindo aquelas que você inicia a partir do aplicativo Desktop, são executadas em VMs gerenciadas pela Anthropic por padrão: as configurações implantadas em seu dispositivo não as alcançam, portanto entregue a lista de permissões através de configurações gerenciadas pelo servidor. Sessões que sua organização roteia para um [ambiente auto-hospedado](/docs/pt/self-hosted-environments) são executadas em sua própria computação e também leem o arquivo de configurações gerenciadas na imagem do executor. [Como Claude Code combina fontes gerenciadas](/docs/pt/managed-settings#how-claude-code-combines-managed-sources) diz quando esse arquivo se aplica. Uma mudança de modelo no meio da sessão em uma sessão na nuvem é rejeitada quando o modelo solicitado é excluído pela lista de permissões. Quando a lista `availableModels` em suas configurações gerenciadas pelo servidor é não vazia, o servidor rejeita uma solicitação para iniciar uma sessão na nuvem em claude.ai/code ou a partir do aplicativo Desktop em um modelo que a lista exclui.

304* Sessões [Claude Tag](https://claude.com/docs/claude-tag/overview) são executadas em ambientes na nuvem, mas não recebem configurações gerenciadas pelo servidor; em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), elas ainda leem o arquivo de configurações gerenciadas na imagem do executor. Para definir o modelo para essas sessões, veja [Escolher o modelo para um escopo](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) no guia de administrador do Claude Tag.304* Sessões [Claude Tag](https://claude.com/docs/claude-tag/overview) são executadas em ambientes na nuvem, mas não recebem configurações gerenciadas pelo servidor; em um [ambiente auto-hospedado](/docs/pt/self-hosted-environments), elas ainda leem o arquivo de configurações gerenciadas na imagem do executor. Para definir o modelo para essas sessões, veja [Escolher o modelo para um escopo](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) no guia de administrador do Claude Tag.

305* Cowork, a aba de trabalho agentic no aplicativo Claude Desktop, executa suas sessões em Claude Code, mas, por design, não recebe configurações gerenciadas pelo servidor do console de administração claude.ai. Um arquivo de configurações gerenciadas se aplica a sessões Cowork quando está presente onde a sessão é executada; sessões Cowork remotas são executadas em VMs gerenciadas pela Anthropic, onde um arquivo implantado no dispositivo não está presente.305* Cowork, a aba de trabalho agentic no aplicativo Claude Desktop, executa suas sessões em Claude Code, mas, por design, não recebe configurações gerenciadas pelo servidor do console de administração claude.ai. Quando a lista `availableModels` em suas configurações gerenciadas pelo servidor é não vazia e um usuário escolhe um modelo fora dela, o servidor rejeita esse modelo para uma sessão Cowork remota. Um arquivo de configurações gerenciadas se aplica a sessões Cowork quando está presente onde a sessão é executada; sessões Cowork remotas são executadas em VMs gerenciadas pela Anthropic, onde um arquivo implantado no dispositivo não está presente.

306* Sessões em [provedores de terceiros](/docs/pt/server-managed-settings#platform-availability) como Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) não recebem configurações gerenciadas pelo servidor, portanto entregue a lista de permissões através de MDM ou arquivos de configurações gerenciadas lá.306* Sessões em [provedores de terceiros](/docs/pt/server-managed-settings#platform-availability) como Amazon Bedrock, Agent Platform do Google Cloud, Microsoft Foundry e [Claude Platform on AWS](/docs/pt/claude-platform-on-aws) não recebem configurações gerenciadas pelo servidor, portanto entregue a lista de permissões através de MDM ou arquivos de configurações gerenciadas lá.

307* A entrega gerenciada pelo servidor também requer que a sessão se autentique com um [login ou chave elegível](/docs/pt/server-managed-settings#platform-availability). Frotas que geram chaves apenas através de um script [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) devem entregar a lista de permissões através de MDM ou arquivos de configurações gerenciadas.307* A entrega gerenciada pelo servidor também requer que a sessão se autentique com um [login ou chave elegível](/docs/pt/server-managed-settings#platform-availability). Frotas que geram chaves apenas através de um script [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper) devem entregar a lista de permissões através de MDM ou arquivos de configurações gerenciadas.

308* A aba Desktop Code também hospeda [sessões SSH](/docs/pt/desktop#ssh-sessions), que leem o arquivo de configurações gerenciadas do host remoto em que são executadas. Veja [Configurações gerenciadas de desktop](/docs/pt/desktop#managed-settings).308* A aba Desktop Code também hospeda [sessões SSH](/docs/pt/desktop#ssh-sessions), que leem o arquivo de configurações gerenciadas do host remoto em que são executadas. Veja [Configurações gerenciadas de desktop](/docs/pt/desktop#managed-settings).


751| Definir o padrão global | Execute `/config` e alterne o modo de pensamento. Salvo como `alwaysThinkingEnabled` em `~/.claude/settings.json` |751| 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) |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) |

753 753 

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.754Você 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 755 

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

757 757 


784 784 

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

786 786 

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.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ê, 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 788 

789Você também pode usar o sufixo `[1m]` com aliases de modelo ou nomes de modelo completos:789Você também pode usar o sufixo `[1m]` com aliases de modelo ou nomes de modelo completos:

790 790 


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

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

959 959 

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

961 

960<Note>962<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).963 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 964 

963 A filtragem corresponde a um alias de modelo como `opus`, um prefixo de versão como `claude-opus-4-8`, ou o ID de modelo completo em forma de provedor. Prefixos específicos do provedor como `us.anthropic.` não são removidos, então para permitir um modelo específico, liste seu ID completo em forma de provedor, ou mapeie através de [`modelOverrides`](#override-model-ids-per-version). Qualquer sufixo `[1m]` é removido tanto da entrada da lista de permissões quanto do modelo solicitado antes da correspondência.965 A filtragem corresponde a um alias de modelo como `opus`, um prefixo de versão como `claude-opus-4-8`, ou o ID de modelo completo em forma de provedor. Prefixos específicos do provedor como `us.anthropic.` não são removidos, então para permitir um modelo específico, liste seu ID completo em forma de provedor, ou mapeie através de [`modelOverrides`](#override-model-ids-per-version). Para um modelo fixado, esse ID é o valor que você define em sua variável `ANTHROPIC_DEFAULT_*_MODEL`. Qualquer sufixo `[1m]` é removido tanto da entrada da lista de permissões quanto do modelo solicitado antes da correspondência.

964</Note>966</Note>

965 967 

966<h3 id="customize-pinned-model-display-and-capabilities">968<h3 id="customize-pinned-model-display-and-capabilities">


1054| - | - |1056| - | - |

1055| `DISABLE_PROMPT_CACHING` | Defina como `1` para desabilitar prompt caching para todos os modelos. Tem precedência sobre as configurações por modelo |1057| `DISABLE_PROMPT_CACHING` | Defina como `1` para desabilitar prompt caching para todos os modelos. Tem precedência sobre as configurações por modelo |

1056| `DISABLE_PROMPT_CACHING_HAIKU` | Defina como `1` para desabilitar prompt caching para o [modelo Haiku padrão](/docs/pt/prompt-caching#disable-prompt-caching) |1058| `DISABLE_PROMPT_CACHING_HAIKU` | Defina como `1` para desabilitar prompt caching para o [modelo Haiku padrão](/docs/pt/prompt-caching#disable-prompt-caching) |

1057| `DISABLE_PROMPT_CACHING_SONNET` | Defina como `1` para desabilitar prompt caching apenas para modelos Sonnet |1059| `DISABLE_PROMPT_CACHING_SONNET` | Defina como `1` para desabilitar prompt caching para o [modelo Sonnet padrão](/docs/pt/prompt-caching#disable-prompt-caching) |

1058| `DISABLE_PROMPT_CACHING_OPUS` | Defina como `1` para desabilitar prompt caching apenas para modelos Opus |1060| `DISABLE_PROMPT_CACHING_OPUS` | Defina como `1` para desabilitar prompt caching para o [modelo Opus padrão](/docs/pt/prompt-caching#disable-prompt-caching) |

1059| `DISABLE_PROMPT_CACHING_FABLE` | Defina como `1` para desabilitar prompt caching apenas para modelos Fable |1061| `DISABLE_PROMPT_CACHING_FABLE` | Defina como `1` para desabilitar prompt caching apenas para modelos Fable |

1060 1062 

1061Para escolher o TTL do cache para a conversa principal e para subagents separadamente, veja [escolha o TTL você mesmo](/docs/pt/prompt-caching#choose-the-ttl-yourself). Para o que dispara uma falha de cache, veja [Como Claude Code usa prompt caching](/docs/pt/prompt-caching).1063Para escolher o TTL do cache para a conversa principal e para subagents separadamente, veja [escolha o TTL você mesmo](/docs/pt/prompt-caching#choose-the-ttl-yourself). Para o que dispara uma falha de cache, veja [Como Claude Code usa prompt caching](/docs/pt/prompt-caching).

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 

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.

373 

374* Escrita em um gerenciador de segredos, ou alteração de registros DNS ou certificados TLS371* 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 CI372* 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 bot373* 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ção374* 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 cluster375* 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ários376* 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ão377* 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ível378* 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ública379* 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 arquivo380* 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 exclui381* 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 ambiente382* 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`383* 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`384* 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 origem385* Ações do [Claude no Chrome](/docs/pt/chrome) que poderiam enviar conteúdo da página, cookies ou credenciais fora da origem

386 

387Várias dessas categorias 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.

389 388 

390Claude Code v2.1.198 e posterior também bloqueiam estes por padrão:389Claude Code v2.1.198 e posterior também bloqueiam estes por padrão:

391 390 

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ífico391* 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 posterior392* 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ão393* 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 394 

396Claude Code v2.1.200 e posterior também bloqueiam estes por padrão:395Claude Code v2.1.200 e posterior também bloqueiam estes por padrão:

397 396 

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 sandboxing397* 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 recurso398* 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`399* 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 remoto400* 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 disso401* 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 externo402* 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 403 

405Claude Code v2.1.203 e posterior também bloqueiam estes por padrão:404Claude Code v2.1.203 e posterior também bloqueiam estes por padrão:

406 405 


408 407 

409Claude Code v2.1.205 e posterior também bloqueiam estes por padrão:408Claude Code v2.1.205 e posterior também bloqueiam estes por padrão:

410 409 

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 é bloqueado410* 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.411* 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 412 

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).413 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 414 

416Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:415Claude Code v2.1.257 e posterior também bloqueiam estes por padrão:

417 416 

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áquina417* 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 fora418* 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ó419* 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êiner420* 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 421 


424 423 

425Claude Code v2.1.261 e posterior também bloqueiam estes por padrão:424Claude Code v2.1.261 e posterior também bloqueiam estes por padrão:

426 425 

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ço426* 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 427 

429**Permitido por padrão**:428**Permitido por padrão**:

430 429 


432* Instalação de dependências declaradas em seus arquivos de lock ou manifestos431* Instalação de dependências declaradas em seus arquivos de lock ou manifestos

433* Leitura de `.env` e envio de credenciais para sua API correspondente432* Leitura de `.env` e envio de credenciais para sua API correspondente

434* Solicitações HTTP somente leitura433* 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 bloqueado434* 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 

437Claude Code v2.1.195 e posterior também permitem estes por padrão:

438 

439* Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão435* 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 tarefa436* 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-agente437* 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 infraestrutura438* 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ê nomeou439* [Claude no Chrome](/docs/pt/chrome) navegação para um domínio interno confiável, localhost ou uma URL que você nomeou

444 440 

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.441Comandos 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 442 

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).443Execute `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 444 

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).445Push 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 446 

451<h3 id="first-read-outside-the-working-directories">447<h3 id="first-read-outside-the-working-directories">

452 A primeira leitura fora dos diretórios de trabalho448 A primeira leitura fora dos diretórios de trabalho

453</h3>449</h3>

454 450 

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.451Enquanto [`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 452 

457O prompt não aparece em execuções `-p` não interativas ou sessões em segundo plano; leituras lá executam como antes.453O prompt não aparece em execuções `-p` não interativas ou sessões em background; leituras lá executam como antes.

458 454 

459Qualquer que seja sua resposta, Claude continua trabalhando:455Qualquer que seja sua resposta, Claude continua trabalhando:

460 456 

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 novamente457* **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.458* **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 novamente459* **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 novamente460* **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 461 

466<h3 id="boundaries-you-state-in-conversation">462<h3 id="boundaries-you-state-in-conversation">

467 Limites que você declara na conversa463 Limites que você declara na conversa

468</h3>464</h3>

469 465 

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.466O 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 467 

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.468Limites 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 469 

474<h3 id="approvals-you-state-in-conversation">470<h3 id="approvals-you-state-in-conversation">

475 Aprovações que você declara na conversa471 Aprovações que você declara na conversa

476</h3>472</h3>

477 473 

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:474Se 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 475 

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.476* **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).477* **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 485 

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.486* **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.487* **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.488* **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).489* **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).490* **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 491 

496<h4 id="repeated-block-thresholds">492<h4 id="repeated-block-thresholds">

497 Limites de bloqueio repetido493 Limites de bloqueio repetido

498</h4>494</h4>

499 495 

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.496Os 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 497 

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.498Uma 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 499 

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).500Bloqueios 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 501 


523 * Regras de solicitação que correspondem no conteúdo de um comando, como `Bash(git push *)`, voltam para um prompt de permissão519 * 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 protegido520 * 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 solicita521 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 sinalizar522 * 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 solicita523 * 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-aprovada524 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)525 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 526 

531 Ao entrar em modo automático, regras de permissão amplas que concedem execução de código arbitrário são descartadas:527 Ao entrar no modo automático, regras de permissão amplas que concedem execução de código arbitrário são descartadas:

532 528 

533 * `Bash(*)` ou `PowerShell(*)` em branco529 * `Bash(*)` ou `PowerShell(*)` em branco

534 * Intérpretes com wildcard como `Bash(python*)`530 * Intérpretes com wildcard como `Bash(python*)`


536 * Regras `Agent`532 * Regras `Agent`

537 * [`Monitor`](/docs/pt/tools-reference#monitor-tool) regras de permissão, porque Claude Code executa comandos Monitor através do shell533 * [`Monitor`](/docs/pt/tools-reference#monitor-tool) regras de permissão, porque Claude Code executa comandos Monitor através do shell

538 534 

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.535 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 536 

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`.537 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 538 

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.539 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 540 

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.541 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 542 

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).543 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>544 </Accordion>

549 545 

550 <Accordion title="Como o modo automático lida com subagentes">546 <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:547 O classificador verifica o trabalho de [subagentes](/docs/pt/sub-agents) em três pontos:

552 548 

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.549 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.550 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.551 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>552 </Accordion>

557 553 

558 <Accordion title="Custo e latência">554 <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.555 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 556 

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.557 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 558 

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).559 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 560 

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.561 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>562 </Accordion>

567</AccordionGroup>563</AccordionGroup>

568 564 

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:

plugin-evals.md +23 −15

Details

57 A linha de base sem plugin57 A linha de base sem plugin

58</h3>58</h3>

59 59 

60Uma pontuação alta por si só não diz que o plugin ajudou, porque Claude poderia fazer tão bem sem ele. Para separar os dois, as execuções de cada caso são repetidas sem plugin carregado por padrão, e você obtém duas pontuações, `WITH` e `W/OUT`. Sua diferença, `Δ`, é o que o plugin contribuiu. Se um caso marca 1.0 com e sem o plugin, o plugin não é o que o fez passar.60Uma pontuação alta por si só não diz que o plugin ajudou, porque Claude poderia fazer tão bem sem ele. Para separar os dois, as execuções de cada caso são repetidas sem plugin carregado, e você obtém duas pontuações, `WITH` e `W/OUT`. Sua diferença, `Δ`, é o que o plugin contribuiu. Se um caso marca 1.0 com e sem o plugin, o plugin não é o que o fez passar.

61 61 

62Os dois conjuntos de execuções são chamados de braço com e braço sem; [Comparar com uma linha de base sem plugin](#compare-against-a-no-plugin-baseline) cobre como os avaliadores são pontuados entre eles e como desativar a linha de base.62Os dois conjuntos de execuções são chamados de braço com e braço sem; [Comparar com uma linha de base sem plugin](#compare-against-a-no-plugin-baseline) cobre quais casos executam apenas o braço com e como os avaliadores são pontuados entre os dois braços.

63 63 

64<h2 id="create-your-first-eval-suite">64<h2 id="create-your-first-eval-suite">

65 Crie seu primeiro conjunto de eval65 Crie seu primeiro conjunto de eval


136 Escrever e refinar casos136 Escrever e refinar casos

137</h2>137</h2>

138 138 

139Os casos que `claude plugin eval init` escreve são arquivos simples que você pode abrir, alterar e adicionar. Um caso é um diretório sob o diretório de eval do plugin que contém um `prompt.md`, um `case.yaml` ou ambos. Para agrupar casos, aninhá-los sob um diretório que não seja em si um caso; qualquer coisa dentro de um diretório de caso, como `graders/` e arquivos de fixture, pertence a esse caso.139Os casos que `claude plugin eval init` escreve são arquivos simples que você pode abrir, alterar e adicionar. Um caso é um diretório sob o diretório de eval do plugin que contém um `prompt.md`, um `case.yaml` ou ambos. Dê a cada caso pelo menos um avaliador, como um arquivo `graders/<name>.md` ou uma entrada `graders:` em `case.yaml`, porque um caso sem um falha ao carregar. Para agrupar casos, aninhá-los sob um diretório que não seja em si um caso; qualquer coisa dentro de um diretório de caso, como `graders/` e arquivos de fixture, pertence a esse caso.

140 140 

141Este é o layout que `claude plugin eval init` escreve e o que usar para novos conjuntos. A [referência de conjunto de eval](#eval-suite-reference) tem a árvore completa, incluindo mocks e resultados:141Este é o layout que `claude plugin eval init` escreve e o que usar para novos conjuntos. A [referência de conjunto de eval](#eval-suite-reference) tem a árvore completa, incluindo mocks e resultados:

142 142 


250 Pontuação contra a linha de base sem plugin250 Pontuação contra a linha de base sem plugin

251</h3>251</h3>

252 252 

253Quando um plugin está sob teste, cada caso é executado em dois braços por padrão. O braço com é suas execuções com o plugin carregado, e o braço sem é o mesmo número de execuções sem nenhum plugin. O resumo e relatório mostram ambas as pontuações e `Δ`, a pontuação do braço com menos a pontuação do braço sem.253Quando um plugin está sob teste, um caso normalmente é executado em dois braços. O braço com é suas execuções com o plugin carregado, e o braço sem é o mesmo número de execuções sem nenhum plugin. O resumo e relatório mostram ambas as pontuações e `Δ`, a pontuação do braço com menos a pontuação do braço sem.

254 254 

255Passe `--ablation none` para executar apenas o braço com, o que reduz o custo pela metade quando você não precisa da comparação, como ao iterar em avaliadores.255Nessas situações um caso executa apenas o braço com, então ele não obtém uma pontuação `W/OUT` ou `Δ`:

256 

257* **Você passa `--ablation none`**: cada caso executa um braço, o que reduz o custo pela metade quando você não precisa da comparação, como ao iterar em avaliadores.

258* **O caso retoma uma transcrição e o alvo é um caminho**: com um [alvo](#choose-what-to-evaluate) como `.` em vez do nome de um plugin instalado, um caso [`context.history_file`](#add-setup-or-history-with-case-yaml) executa um braço por padrão, na suposição de que a conversa registrada já reflete o plugin. A execução imprime um aviso `single-arm (no Δ)` no stderr nomeando esses casos. Para comparar o turno retomado com e sem o plugin, passe `--ablation with-without`.

259* **Nenhum plugin foi encontrado para o caso**: quando o alvo é um caminho, um caso cujo plugin Claude Code não conseguiu localizar também executa um braço por padrão. Veja [o braço de linha de base não mostra nenhum plugin](#the-baseline-arm-shows-no-plugin-or-delta-is-zero) para corrigi-lo.

256 260 

257Em uma execução de dois braços, alguns avaliadores são relatados com `scored: false`. Uma verificação como "o skill foi invocado" nunca pode passar sem o plugin, então contá-la empurraria o braço sem para zero e inflaria `Δ`. Para manter os dois braços comparáveis, Claude Code exclui tais avaliadores da pontuação em ambos os braços e os relata no braço com como indicadores de aprovação/reprovação apenas. Isso inclui:261Em uma execução de dois braços, alguns avaliadores são relatados com `scored: false`. Uma verificação como "o skill foi invocado" nunca pode passar sem o plugin, então contá-la empurraria o braço sem para zero e inflaria `Δ`. Para manter os dois braços comparáveis, Claude Code exclui tais avaliadores da pontuação em ambos os braços e os relata no braço com como indicadores de aprovação/reprovação apenas. Isso inclui:

258 262 


290Cada execução começa em um espaço de trabalho vazio. Quando um caso precisa de mais que o prompt, adicione um `case.yaml` ao lado de `prompt.md` com um bloco `context`:294Cada execução começa em um espaço de trabalho vazio. Quando um caso precisa de mais que o prompt, adicione um `case.yaml` ao lado de `prompt.md` com um bloco `context`:

291 295 

292* **Arquivos de fixture ou um repositório git**: escreva um script Bash no diretório de caso e nomeie-o em `context.scaffold_script`. O script é executado como você, fora da sandbox do agente, e apenas quando você passa `--scaffold`, então passe essa flag apenas para conjuntos que você ou sua organização escreveu.296* **Arquivos de fixture ou um repositório git**: escreva um script Bash no diretório de caso e nomeie-o em `context.scaffold_script`. O script é executado como você, fora da sandbox do agente, e apenas quando você passa `--scaffold`, então passe essa flag apenas para conjuntos que você ou sua organização escreveu.

293* **Uma conversa anterior para continuar**: salve a transcrição como um arquivo `.jsonl` e nomeie-a em `context.history_file`, e o prompt do caso se torna o próximo turno do usuário.297* **Uma conversa anterior para continuar**: salve a transcrição como um arquivo `.jsonl` e nomeie-a em `context.history_file`, e o prompt do caso se torna o próximo turno do usuário. Quando o alvo é um caminho, tal caso é executado [sem um braço de baseline](#compare-against-a-no-plugin-baseline) por padrão.

294* **Diretórios de fixture que Claude pode ler durante a execução**: liste-os em `context.add_dirs`.298* **Diretórios de fixture que Claude pode ler durante a execução**: liste-os em `context.add_dirs`.

295 299 

296Um `case.yaml` também precisa de `schema_version: "1.1"` e `name`; a referência [case.yaml fields](#case-yaml-fields) tem a lista completa.300Um `case.yaml` também precisa de `schema_version: "1.1"` e `name`; a referência [case.yaml fields](#case-yaml-fields) tem a lista completa.


306 add_dirs: [resources]310 add_dirs: [resources]

307```311```

308 312 

313Um script de scaffold começa no espaço de trabalho vazio com um pequeno ambiente fixo: o `PATH` do seu shell, `HOME` definido para o diretório home temporário da execução, `TMPDIR`, e algumas constantes como `TERM=dumb`. Nada mais do seu shell chega até ele, e nem as variáveis `EVAL_*` do caso. Se o script sair com código não-zero ou executar por mais de 120 segundos, essa execução marca 0 com um erro `scaffold failed`. Use o script apenas para arquivos e estado git, já que a configuração do projeto que ele escreve [não é carregada](#how-runs-are-isolated).

314 

309<h3 id="mock-mcp-servers">315<h3 id="mock-mcp-servers">

310 Mock MCP servers316 Mock MCP servers

311</h3>317</h3>


402| `-j`, `--concurrency <n>` | `1` | Execute até este número de execuções de agente de uma vez, de 1 a 8. Elas compartilham o limite de taxa de sua conta, então isso encurta o tempo de parede em vez de aumentar a taxa de transferência além desse limite. Os resultados mantêm a ordem do caso |408| `-j`, `--concurrency <n>` | `1` | Execute até este número de execuções de agente de uma vez, de 1 a 8. Elas compartilham o limite de taxa de sua conta, então isso encurta o tempo de parede em vez de aumentar a taxa de transferência além desse limite. Os resultados mantêm a ordem do caso |

403| `--model <model>` | `model` de cada caso, senão `ANTHROPIC_MODEL` se definido, senão o padrão de Claude Code | Modelo para o agente sob teste. Fixe-o em CI para que um lançamento de modelo não seja confundido com uma regressão de plugin |409| `--model <model>` | `model` de cada caso, senão `ANTHROPIC_MODEL` se definido, senão o padrão de Claude Code | Modelo para o agente sob teste. Fixe-o em CI para que um lançamento de modelo não seja confundido com uma regressão de plugin |

404| `--judge-model <model>` | Um modelo pequeno e rápido | Modelo para avaliadores `llm` e `baseline` |410| `--judge-model <model>` | Um modelo pequeno e rápido | Modelo para avaliadores `llm` e `baseline` |

405| `--ablation <mode>` | `with-without` quando um plugin resolve, senão `none` | Se também executar cada caso sem o plugin para medir o que ele adiciona. `none` executa um braço; `with-without` adiciona a linha de base sem plugin |411| `--ablation <mode>` | Decidido por caso; veja [Pontuação contra a linha de base sem plugin](#compare-against-a-no-plugin-baseline) | Se também executar cada caso sem o plugin para medir o que ele adiciona. `none` executa um braço; `with-without` adiciona a linha de base sem plugin |

406| `--threshold <0..1>` | `1.0` | Um caso passa quando sua pontuação de braço com é pelo menos isso. Qualquer caso abaixo disso faz o comando sair 1 |412| `--threshold <0..1>` | `1.0` | Um caso passa quando sua pontuação de braço com é pelo menos isso. Qualquer caso abaixo disso faz o comando sair 1 |

407| `--max-cost-usd <usd>` | Sem teto | Um teto no custo estimado de preço de lista da execução, não no uso do plano. Verificado antes de cada execução começar. Uma vez gasto, nada mais começa; execuções já em voo terminam, então o gasto pode passar o teto por essas execuções. Se alguma execução for deixada não iniciada, o comando sai 2 com resultados parciais |413| `--max-cost-usd <usd>` | Sem teto | Um teto no custo estimado de preço de lista da execução, não no uso do plano. Verificado antes de cada execução começar. Uma vez gasto, nada mais começa; execuções já em voo terminam, então o gasto pode passar o teto por essas execuções. Se alguma execução for deixada não iniciada, o comando sai 2 com resultados parciais |

408| `--allow-tools <tools...>` | Nenhum | Conceda ferramentas além do conjunto somente leitura. Veja [Conceda ferramentas](#grant-tools) |414| `--allow-tools <tools...>` | Nenhum | Conceda ferramentas além do conjunto somente leitura. Veja [Conceda ferramentas](#grant-tools) |


514 Confie no diretório do plugin520 Confie no diretório do plugin

515</h3>521</h3>

516 522 

517Na primeira vez que você executa `claude plugin eval` contra um diretório, Claude Code pergunta `Trust this plugin directory?` antes de carregar qualquer coisa dele, a menos que você já tenha aceito o prompt de confiança lá em uma sessão interativa de `claude`. Dentro de um repositório git, responder sim confia em todo o repositório, para sessões interativas também. Quando stdin ou stdout não é um terminal, sob `--json`, ou quando a variável de ambiente `CI` é definida como um valor verdadeiro como `true`, a execução não pode perguntar e é recusada com saída 1; passe `--trust-plugin` para afirmar a confiança você mesmo, apenas para um plugin que você executaria em sua própria máquina. Um alvo que você nomeia em vez de fornecer como um caminho, significando um plugin instalado ou um plugin de diretório de skills, pula o prompt.523Na primeira vez que você executa `claude plugin eval` contra um diretório, Claude Code pergunta `Trust this plugin directory?` antes de carregar qualquer coisa dele, a menos que você já tenha aceito o prompt de confiança lá em uma sessão interativa de `claude`. Dentro de um repositório git, responder sim confia em todo o repositório, para sessões interativas também. Quando stdin ou stdout não é um terminal, ou sob `--json`, a execução não pode perguntar e é recusada com saída 1; passe `--trust-plugin` para afirmar a confiança você mesmo, apenas para um plugin que você executaria em sua própria máquina. Um alvo que você nomeia em vez de fornecer como um caminho, significando um plugin instalado ou um plugin de diretório de skills, pula o prompt.

518 524 

519Algumas partes do plugin e da suite são executadas apenas quando você passa sua flag para essa execução:525Algumas partes do plugin e da suite são executadas apenas quando você passa sua flag para essa execução:

520 526 


532 538 

533Cada execução obtém um diretório home temporário, diretório de trabalho e configuração de Claude Code, e o agent sob teste é executado lá como um processo filho `claude -p` com apenas seu plugin carregado. Mantenha essas consequências em mente quando você escrever casos:539Cada execução obtém um diretório home temporário, diretório de trabalho e configuração de Claude Code, e o agent sob teste é executado lá como um processo filho `claude -p` com apenas seu plugin carregado. Mantenha essas consequências em mente quando você escrever casos:

534 540 

535* **Nada pessoal ou no nível do projeto é carregado.** Suas configurações de usuário, hooks, arquivos `CLAUDE.md`, servidores MCP, outros plugins instalados, memória e skills estão ausentes, e nenhum `.claude/` com escopo de projeto ou `.mcp.json` acima do sandbox é lido. A maioria do seu ambiente de shell também é retida; apenas uma [lista de permissões](#prompt-md-fields) e variáveis `EVAL_*` alcançam a execução. Se o plugin precisar de configuração, envie-o no plugin, crie-o em um `scaffold_script`, ou passe variáveis `EVAL_*`.541* **Nada pessoal ou no nível do projeto é carregado.** Suas configurações de usuário, hooks, arquivos `CLAUDE.md`, servidores MCP, outros plugins instalados, memória e skills estão ausentes. A configuração com escopo de projeto não é lida em lugar nenhum: nenhum diretório `.claude/`, `CLAUDE.md` ou `.mcp.json` é carregado de acima do workspace ou dentro dele, mesmo um que um `scaffold_script` escreveu, e diretórios `add_dirs` concedem acesso somente leitura. A maioria do seu ambiente de shell também é retida; apenas uma [lista de permissões](#prompt-md-fields) e variáveis `EVAL_*` alcançam a execução. Envie quaisquer skills, agents, hooks ou servidores MCP dos quais um caso dependa no plugin sob teste, já que um [`scaffold_script`](#add-setup-or-history-with-case-yaml) pode fornecer apenas arquivos e estado git.

536* **A política gerenciada ainda pode restringir uma execução.** Restrições em [configurações gerenciadas](/docs/pt/managed-settings) que um administrador implantou na máquina se aplicam dentro de uma execução, portanto, os resultados em uma máquina gerenciada podem diferir de uma não gerenciada por essa política.542* **A política gerenciada ainda pode restringir uma execução.** Restrições em [configurações gerenciadas](/docs/pt/managed-settings) que um administrador implantou na máquina se aplicam dentro de uma execução, portanto, os resultados em uma máquina gerenciada podem diferir de uma não gerenciada por essa política.

537* **A ferramenta Artifact está desativada.** Uma skill que publica um [artifact](/docs/pt/artifacts) pode ser avaliada apenas no que ela produz antes dessa etapa.543* **A ferramenta Artifact está desativada.** Uma skill que publica um [artifact](/docs/pt/artifacts) pode ser avaliada apenas no que ela produz antes dessa etapa.

538* **As definições de caso estão ocultas do agent.** Uma execução não pode ler o diretório eval, portanto, Claude não pode ver o prompt do caso, seus avaliadores ou casos irmãos.544* **As definições de caso estão ocultas do agent.** Uma execução não pode ler o diretório eval, portanto, Claude não pode ver o prompt do caso, seus avaliadores ou casos irmãos.


542 Referência de conjunto de eval548 Referência de conjunto de eval

543</h2>549</h2>

544 550 

545Tudo o que um conjunto de eval pode conter vive sob o diretório de eval do plugin, `evals/` a menos que você [configure outro](#use-a-different-eval-directory). Esta árvore mostra cada arquivo que `claude plugin eval` lê ou escreve lá; apenas `prompt.md` ou `case.yaml` é necessário para um caso existir:551Tudo o que um conjunto de eval pode conter vive sob o diretório de eval do plugin, `evals/` a menos que você [configure outro](#use-a-different-eval-directory). Um diretório conta como um caso quando contém um `prompt.md` ou um `case.yaml`, e um caso sem pelo menos um avaliador falha ao carregar com um erro `invalid case.yaml` que nomeia `graders`. Esta árvore mostra cada arquivo que `claude plugin eval` lê ou escreve no diretório de eval:

546 552 

547```text theme={null}553```text theme={null}

548evals/554evals/


598 604 

599| Campo | Propósito |605| Campo | Propósito |

600| :- | :- |606| :- | :- |

601| `context.scaffold_script` | Um script Bash no diretório de caso que é executado no espaço de trabalho vazio antes de Claude começar, para criar arquivos de fixture ou um repositório git. Ele é executado apenas quando você passa [`--scaffold`](#add-setup-or-history-with-case-yaml) |607| `context.scaffold_script` | Um script Bash no diretório de caso que é executado no espaço de trabalho vazio antes de Claude começar, para criar arquivos de fixture ou um repositório git. Ele é executado apenas quando você passa [`--scaffold`](#add-setup-or-history-with-case-yaml), com um ambiente mínimo e um limite de 120 segundos, e uma saída diferente de zero falha a execução |

602| `context.history_file` | Uma transcrição `.jsonl` no diretório de caso para retomar. O prompt do caso se torna o próximo turno do usuário |608| `context.history_file` | Uma transcrição `.jsonl` no diretório de caso para retomar. O prompt do caso se torna o próximo turno do usuário |

603| `context.add_dirs` | Diretórios dentro do diretório de caso que Claude pode ler durante a execução, concedido somente leitura |609| `context.add_dirs` | Diretórios dentro do diretório de caso que Claude pode ler durante a execução, concedido somente leitura |

604| `execution.prompt` | O prompt, quando você mantém o caso inteiro em `case.yaml` e omite `prompt.md` |610| `execution.prompt` | O prompt, quando você mantém o caso inteiro em `case.yaml` e omite `prompt.md` |


687 "is not a trusted plugin directory, and this run cannot stop to ask you about it"693 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

688</h3>694</h3>

689 695 

690Esta é a primeira execução contra um diretório que Claude Code ainda não confia, e não pode perguntar porque stdin ou stdout não é um terminal, você passou `--json`, ou a variável de ambiente `CI` está definida como um valor verdadeiro como `true`. Execute `claude plugin eval <dir>` uma vez em um terminal e responda o prompt, ou passe `--trust-plugin` se você confia no código e conjunto do plugin. Veja [O que uma execução pode acessar](#security).696Esta é a primeira execução contra um diretório que Claude Code ainda não confia, e não pode perguntar porque stdin ou stdout não é um terminal ou você passou `--json`. Execute `claude plugin eval <dir>` uma vez em um terminal e responda o prompt, ou passe `--trust-plugin` se você confia no código e conjunto do plugin. Veja [O que uma execução pode acessar](#security).

691 697 

692<h3 id="git-is-too-old-for-claude-plugin-eval">698<h3 id="git-is-too-old-for-claude-plugin-eval">

693 "is too old for claude plugin eval"699 "is too old for claude plugin eval"


713 O braço de linha de base mostra nenhum plugin, ou delta é zero719 O braço de linha de base mostra nenhum plugin, ou delta é zero

714</h3>720</h3>

715 721 

716Se o resumo não tem coluna `W/OUT`, ou o caso falha com "ablation requested but no plugin resolved", nenhum plugin foi encontrado para o caso. Adicione `plugins: ["../.."]` ao caso, dando o caminho do diretório de caso para o diretório de plugin.722Se o resumo não tem coluna `W/OUT`, ou o caso falha com "ablation requested but no plugin resolved", a causa usual é que nenhum plugin foi encontrado para o caso. Se cada caso retoma uma transcrição através de `context.history_file`, a coluna ausente é esperada em vez disso, porque esses casos executam [um braço por padrão](#compare-against-a-no-plugin-baseline). Caso contrário, adicione `plugins: ["../.."]` ao caso, dando o caminho do diretório de caso para o diretório de plugin.

717 723 

718Se o plugin carregou e `Δ` ainda está próximo a zero com seu avaliador `tool_used: Skill` falhando, isso é geralmente um achado real, significando que a `description` do skill não dispara no fraseado do prompt. Ajuste a descrição e re-execute o mesmo conjunto.724Se o plugin carregou e `Δ` ainda está próximo a zero com seu avaliador `tool_used: Skill` falhando, isso é geralmente um achado real, significando que a `description` do skill não dispara no fraseado do prompt. Ajuste a descrição e re-execute o mesmo conjunto.

719 725 


731 Tudo marca zero embora os arquivos corretos tenham sido produzidos737 Tudo marca zero embora os arquivos corretos tenham sido produzidos

732</h3>738</h3>

733 739 

734Seus avaliadores visam `files`, a lista de caminhos criados, quando você quis o conteúdo do arquivo. Use `{ source: file, path: <path> }` como o `target` ou `focus`. Separadamente, `file_exists` conta apenas arquivos criados durante a execução, então um arquivo que o scaffold criou ou que Claude apenas editou é invisível para ele; classifique seu conteúdo ou use `tool_used` em `Edit`.740Seus avaliadores visam `files`, a lista de caminhos criados, quando você quis o conteúdo do arquivo. Use `{ source: file, path: <path> }` como o `target` ou `focus`.

741 

742Separadamente, `file_exists` conta apenas arquivos criados durante a execução, então um arquivo que o scaffold criou ou que Claude apenas editou é invisível para ele; classifique seu conteúdo ou use `tool_used` em `Edit`.

735 743 

736<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">744<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

737 Uma regex sobre o trace não corresponde ao texto que posso ver745 Uma regex sobre o trace não corresponde ao texto que posso ver


751 A execução sai 1 mas os resultados parecem bons759 A execução sai 1 mas os resultados parecem bons

752</h3>760</h3>

753 761 

754O `--threshold` padrão é 1.0, então o comando sai 1 quando qualquer caso marca abaixo do perfeito. Defina um limite que corresponda à sua barra. Saída 1 também cobre um arquivo de caso que falhou ao carregar, que é relatado em stderr acima da tabela.762O `--threshold` padrão é 1.0, então o comando sai 1 quando qualquer caso marca abaixo do perfeito. Defina um limite que corresponda à pontuação que você requer. Saída 1 também cobre um arquivo de caso que falhou ao carregar, que é relatado em stderr acima da tabela.

755 763 

756<h3 id="json-output-path-must-end-in-json">764<h3 id="json-output-path-must-end-in-json">

757 `--json output path must end in .json`765 `--json output path must end in .json`

Details

92| `--accept-command <sha256>` | Aceite o comando de instalação exibido cujo `sha256` uma execução anterior [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. Não pode ser combinado com `-y`. Veja [Aceitar um comando de instalação exibido](#accept-a-displayed-install-command). Requer Claude Code v2.1.271 ou posterior |92| `--accept-command <sha256>` | Aceite o comando de instalação exibido cujo `sha256` uma execução anterior [`--json`](#plugin-json-result) relatou em `shownCommand`, no lugar de `-y`. Não pode ser combinado com `-y`. Veja [Aceitar um comando de instalação exibido](#accept-a-displayed-install-command). Requer Claude Code v2.1.271 ou posterior |

93| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout em vez da mensagem legível por humanos, para uso em scripts. Veja [Formato de resultado JSON](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior |93| `--json` | Imprima o resultado como um objeto JSON na última linha de stdout em vez da mensagem legível por humanos, para uso em scripts. Veja [Formato de resultado JSON](#plugin-json-result). Requer Claude Code v2.1.268 ou posterior |

94 94 

95Execute `claude plugin install --help` em seu shell para ver todas as opções que sua versão suporta.

96 

95Passe `-y` do seu próprio terminal para aceitar o comando exibido sem o prompt. Aqui está o que acontece sem um TTY e quando Claude executa o comando:97Passe `-y` do seu próprio terminal para aceitar o comando exibido sem o prompt. Aqui está o que acontece sem um TTY e quando Claude executa o comando:

96 98 

97* **stdin ou stdout não é um TTY, e você não passa `-y` nem `--accept-command`**: a instalação é recusada. A saída diz que o comando foi apenas exibido, e o código de saída é `1`99* **stdin ou stdout não é um TTY, e você não passa `-y` nem `--accept-command`**: a instalação é recusada. A saída diz que o comando foi apenas exibido, e o código de saída é `1`


165 167 

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`.168Claude 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 169 

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.170Se 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 171 

170<h4 id="what-an-uninstall-deletes-and-keeps">172<h4 id="what-an-uninstall-deletes-and-keeps">

171 O que uma desinstalação deleta e mantém173 O que uma desinstalação deleta e mantém


438| `-j, --concurrency <n>` | Sessões de agente para executar de uma vez, 1 a 8. Elas compartilham seu limite de taxa | `1` |440| `-j, --concurrency <n>` | Sessões de agente para executar de uma vez, 1 a 8. Elas compartilham seu limite de taxa | `1` |

439| `--model <model>` | Modelo para o agente sob teste | `model` de cada caso, senão `ANTHROPIC_MODEL` se definido, senão padrão de Claude Code |441| `--model <model>` | Modelo para o agente sob teste | `model` de cada caso, senão `ANTHROPIC_MODEL` se definido, senão padrão de Claude Code |

440| `--judge-model <model>` | Modelo para avaliadores `llm` e `baseline` | Um modelo pequeno e rápido |442| `--judge-model <model>` | Modelo para avaliadores `llm` e `baseline` | Um modelo pequeno e rápido |

441| `--ablation <mode>` | `none` ou `with-without`. Veja [Comparar contra uma linha de base sem plugin](/docs/pt/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` quando um plugin se resolve, senão `none` |443| `--ablation <mode>` | `none` ou `with-without`. Veja [Comparar contra uma linha de base sem plugin](/docs/pt/plugin-evals#compare-against-a-no-plugin-baseline) | Decidido por caso, como essa seção descreve |

442| `--threshold <0..1>` | Saia com 1 se algum caso pontuar abaixo disso | `1.0` |444| `--threshold <0..1>` | Saia com 1 se algum caso pontuar abaixo disso | `1.0` |

443| `--max-cost-usd <usd>` | Pare antes da próxima execução uma vez que o gasto atinja isso, saia com 2 e relate resultados parciais | Sem limite |445| `--max-cost-usd <usd>` | Pare antes da próxima execução uma vez que o gasto atinja isso, saia com 2 e relate resultados parciais | Sem limite |

444| `--allow-tools <tools...>` | Conceda ferramentas além do conjunto somente leitura, como `Bash`, `Write`, `Edit` ou `"mcp__plugin_<plugin>_<server>__*"`. Veja [Conceder ferramentas](/docs/pt/plugin-evals#grant-tools) | |446| `--allow-tools <tools...>` | Conceda ferramentas além do conjunto somente leitura, como `Bash`, `Write`, `Edit` ou `"mcp__plugin_<plugin>_<server>__*"`. Veja [Conceder ferramentas](/docs/pt/plugin-evals#grant-tools) | |


469claude plugin eval init [name] [options]471claude plugin eval init [name] [options]

470```472```

471 473 

474Execute o comando a partir da pasta raiz do plugin, o diretório que contém `.claude-plugin/plugin.json` ou o `SKILL.md` do skill. Para criar o conjunto em outro diretório propositalmente, passe `--eval-dir`.

475 

472Em um terminal, o comando abre uma sessão Claude Code interativa para uma entrevista de autoria. Na entrevista, Claude faz o seguinte:476Em um terminal, o comando abre uma sessão Claude Code interativa para uma entrevista de autoria. Na entrevista, Claude faz o seguinte:

473 477 

4741. Lê o plugin4781. Lê o plugin


479 483 

480Com `--bare`, ou sem um terminal, o comando escreve um modelo de caso único em branco. Quando Claude executa o comando de dentro de uma sessão Claude Code, o comando imprime as instruções da entrevista para essa sessão seguir em vez de escrever um modelo.484Com `--bare`, ou sem um terminal, o comando escreve um modelo de caso único em branco. Quando Claude executa o comando de dentro de uma sessão Claude Code, o comando imprime as instruções da entrevista para essa sessão seguir em vez de escrever um modelo.

481 485 

482O `name` opcional é um nome de caso. É necessário com `--bare` ou sem um terminal, porque o comando escreve o modelo em branco para esse caso. A entrevista não precisa de um.486O `name` opcional é um nome de caso. É necessário com `--bare` ou sem um terminal, porque o comando escreve o modelo em branco para esse caso. Um nome de caso começa com uma letra ou dígito e contém apenas letras, dígitos, `.`, `_` e `-`. Em todas as plataformas, o comando também recusa nomes que Windows não consegue armazenar, como `con` ou um nome terminando em `.`.

483 487 

484O comando aceita estas opções:488O comando aceita estas opções:

485 489 


636| :- | :- | :- |640| :- | :- | :- |

637| `owner/repo`, `owner/repo#ref` ou `owner/repo@ref` | `github` | Clona o repositório GitHub, fixado a `ref` quando fornecido. Proprietário e repo devem seguir regras de nomenclatura do GitHub |641| `owner/repo`, `owner/repo#ref` ou `owner/repo@ref` | `github` | Clona o repositório GitHub, fixado a `ref` quando fornecido. Proprietário e repo devem seguir regras de nomenclatura do GitHub |

638| `user@host:path[.git][#ref]` | `git` | Clona sobre SSH |642| `user@host:path[.git][#ref]` | `git` | Clona sobre SSH |

639| `https://example.com/repo.git[#ref]` ou uma URL contendo `/_git/` | `git` | Clona sobre HTTPS, incluindo URLs do Azure DevOps |643| Uma URL `http://` ou `https://` que termina em `.git[#ref]` ou contém `/_git/`, como `https://example.com/repo.git` | `git` | Clona a URL, incluindo URLs do Azure DevOps |

640| `https://github.com/owner/repo` ou `https://gitlab.com/namespace/project` | `git` | Clona sobre HTTPS após anexar `.git` |644| `https://github.com/owner/repo` ou `https://gitlab.com/namespace/project`, ou a mesma sobre `http://` | `git` | Clona a URL após anexar `.git` |

641| Qualquer outra URL `http://` ou `https://`, incluindo um host git auto-hospedado sem `.git` | `url` | Busca a URL como um `marketplace.json`. Para clonar um repositório lá, anexe `.git` |645| Qualquer outra URL `http://` ou `https://`, incluindo um host git auto-hospedado sem `.git` | `url` | Busca a URL como um `marketplace.json`. Para clonar um repositório lá, anexe `.git` |

642| `./path`, `../path`, `/path` ou `~/path` para um diretório | `directory` | Lê o diretório no local. No Windows, formas `.\`, `..\` e `C:\` também funcionam |646| `./path`, `../path`, `/path` ou `~/path` para um diretório | `directory` | Lê o diretório no local. No Windows, formas `.\`, `..\` e `C:\` também funcionam |

643| Os mesmos formulários de caminho, para um arquivo `.json` | `file` | Lê o arquivo no local |647| Os mesmos formulários de caminho, para um arquivo `.json` | `file` | Lê o arquivo no local |


709Remova a declaração de um marketplace de suas configurações. `rm` é um alias para `remove`.713Remova a declaração de um marketplace de suas configurações. `rm` é um alias para `remove`.

710 714 

711<Warning>715<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`.716 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.

717 

718 Para atualizar um marketplace sem perder seus plugins, execute `plugin marketplace update`.

713</Warning>719</Warning>

714 720 

715```bash theme={null}721```bash theme={null}


728claude plugin marketplace remove your-marketplace734claude plugin marketplace remove your-marketplace

729```735```

730 736 

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

738 

739Se 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 740 

733<h3 id="plugin-marketplace-update">741<h3 id="plugin-marketplace-update">

734 plugin marketplace update742 plugin marketplace update


771| `/plugin list [--enabled\|--disabled]` | `ls` | Imprime seus plugins instalados de marketplace inline, com versão, escopo e status. Uma flag de filtro mostra apenas esse estado. Um plugin cujo estado de ativação ainda não foi aplicado é marcado `— run /reload-plugins to apply`. Requer Claude Code v2.1.163 ou posterior |779| `/plugin list [--enabled\|--disabled]` | `ls` | Imprime seus plugins instalados de marketplace inline, com versão, escopo e status. Uma flag de filtro mostra apenas esse estado. Um plugin cujo estado de ativação ainda não foi aplicado é marcado `— run /reload-plugins to apply`. Requer Claude Code v2.1.163 ou posterior |

772| `/plugin install` | `i` | Abre a aba **Discover** |780| `/plugin install` | `i` | Abre a aba **Discover** |

773| `/plugin install <plugin>` | `i` | Abre os detalhes do plugin na aba **Discover**. Com `name@marketplace`, abre-os na lista desse marketplace |781| `/plugin install <plugin>` | `i` | Abre os detalhes do plugin na aba **Discover**. Com `name@marketplace`, abre-os na lista desse marketplace |

782| `/plugin install <source>` | `i` | Relata um erro [marketplace não encontrado](/docs/pt/plugins/troubleshooting#marketplace-not-found) e não instala nada quando o alvo é um caminho, URL ou `owner/repo`, mesmo uma fonte que você já adicionou. Para instalar de uma fonte, veja [Adicionar um marketplace e instalar em um comando](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command) |

774| `/plugin install <plugin> --marketplace <source>` | `i` | Adiciona o marketplace em `<source>` quando você ainda não o adicionou, pedindo para você confirmar primeiro, depois abre os detalhes do plugin. Veja [Adicionar um marketplace e instalar em um comando](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command). Requer Claude Code v2.1.275 ou posterior |783| `/plugin install <plugin> --marketplace <source>` | `i` | Adiciona o marketplace em `<source>` quando você ainda não o adicionou, pedindo para você confirmar primeiro, depois abre os detalhes do plugin. Veja [Adicionar um marketplace e instalar em um comando](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command). Requer Claude Code v2.1.275 ou posterior |

775| `/plugin manage` | | Abre a aba **Installed** |784| `/plugin manage` | | Abre a aba **Installed** |

776| `/plugin stats` | | Abre a aba **Stats**, em sessões onde [`/skill-doctor`](/docs/pt/skills#find-unused-skills) está disponível. Em qualquer outro lugar abre o painel na aba **Discover** |785| `/plugin stats` | | Abre a aba **Stats**, em sessões onde [`/skill-doctor`](/docs/pt/skills#find-unused-skills) está disponível. Em qualquer outro lugar abre o painel na aba **Discover** |


843| `--plugin-dir <path>` | Carregue um plugin de um diretório ou um arquivo `.zip` de um. Uma pasta de plugins carrega cada pasta filha que contém um `.claude-plugin/plugin.json`. Cada flag toma um caminho | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |852| `--plugin-dir <path>` | Carregue um plugin de um diretório ou um arquivo `.zip` de um. Uma pasta de plugins carrega cada pasta filha que contém um `.claude-plugin/plugin.json`. Cada flag toma um caminho | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

844| `--plugin-url <url>` | Busque um arquivo `.zip` de plugin de uma URL. Repita a flag, ou passe várias URLs separadas por espaço em um valor entre aspas | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |853| `--plugin-url <url>` | Busque um arquivo `.zip` de plugin de uma URL. Repita a flag, ou passe várias URLs separadas por espaço em um valor entre aspas | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

845 854 

846Um plugin que qualquer uma dessas flags carrega é um plugin de sessão única. `claude plugin list` o mostra como `<name>@inline` com escopo `session`, mas apenas quando a mesma flag precede o subcomando. Por exemplo, execute `claude --plugin-dir ./my-plugin plugin list`.855Um plugin que qualquer uma dessas flags carrega é um plugin de sessão única. [`claude plugin list`](#plugin-list) o mostra apenas quando a mesma flag precede o subcomando, como em `claude --plugin-dir ./my-plugin plugin list`. O plugin aparece como `<name>@inline` sob um cabeçalho que começa com `Session-only plugins`, e `--json` relata seu `scope` como `session`.

847 856 

848Quando um plugin de sessão única compartilha um nome com um plugin instalado, Claude Code carrega a cópia de sessão única para essa sessão e pula a instalada. A cópia instalada carrega em vez disso se você desativou a cópia de sessão única com `claude plugin disable <name>@inline`, ou se configurações gerenciadas bloqueiam esse nome de plugin. Para a precedência, veja [Referência de carregamento de plugin](/docs/pt/plugins/loading).857Quando um plugin de sessão única compartilha um nome com um plugin instalado, Claude Code carrega a cópia de sessão única para essa sessão e pula a instalada. A cópia instalada carrega em vez disso se você desativou a cópia de sessão única com `claude plugin disable <name>@inline`, ou se configurações gerenciadas bloqueiam esse nome de plugin. Para a precedência, veja [Referência de carregamento de plugin](/docs/pt/plugins/loading).

849 858 

Details

676 676 

677Para incluir instruções em um plugin, escreva-as como uma skill. Claude Code não carrega um `CLAUDE.md` na raiz do plugin, e `claude plugin validate` avisa `CLAUDE.md at the plugin root is not loaded as project context`.677Para incluir instruções em um plugin, escreva-as como uma skill. Claude Code não carrega um `CLAUDE.md` na raiz do plugin, e `claude plugin validate` avisa `CLAUDE.md at the plugin root is not loaded as project context`.

678 678 

679Se uma regra deve ser mantida sempre, como [bloquear edições em arquivos protegidos](/docs/pt/hooks-guide#block-edits-to-protected-files), adicione-a ao plugin como um [hook](#hooks) em vez de uma skill. Para escolher entre os dois, consulte a aba Hook vs Skill em [Comparar recursos similares](/docs/pt/features-overview#compare-similar-features).

680 

679Para campos de frontmatter e arquivos de suporte, consulte [Skills](/docs/pt/skills).681Para campos de frontmatter e arquivos de suporte, consulte [Skills](/docs/pt/skills).

680 682 

681<h3 id="commands">683<h3 id="commands">

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

50 50 

51Quando os usuários adicionam seu marketplace como uma URL `marketplace.json` simples, Claude Code baixa apenas esse arquivo. Uma entrada em seu array `plugins` cujo `source` é um caminho relativo como `./plugins/formatter` então falha na instalação com [`its marketplace entry path does not stay inside the marketplace directory`](/docs/pt/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Dê a cada entrada um source que possa ser buscado por conta própria, como um repositório `github` ou uma URL `archive`, ou hospede o marketplace em um repositório git para que Claude Code clone a árvore inteira.51Quando os usuários adicionam seu marketplace como uma URL `marketplace.json` simples, Claude Code baixa apenas esse arquivo. Uma entrada em seu array `plugins` cujo `source` é um caminho relativo como `./plugins/formatter` então falha na instalação com [`its marketplace entry path does not stay inside the marketplace directory`](/docs/pt/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Dê a cada entrada um source que possa ser buscado por conta própria, como um repositório `github` ou uma URL `archive`, ou hospede o marketplace em um repositório git para que Claude Code clone a árvore inteira.

52 52 

53<h3 id="stay-within-the-download-limits-for-hosted-files">

54 Stay within the download limits for hosted files

55</h3>

56 

57Quando os usuários adicionam seu marketplace como uma URL `marketplace.json` ou instalam uma entrada com uma fonte [`archive`](/docs/pt/plugins/marketplace-reference#archive-plugin-source), Claude Code baixa o arquivo de seu servidor. O download falha além dos limites nesta tabela, então dimensione seus arquivos e configure seu servidor para permanecer dentro deles.

58 

59| Arquivo | Maior download | Tempo para seu servidor responder | Redirecionamentos |

60| :- | :- | :- | :- |

61| `marketplace.json` de uma fonte de marketplace `url` | 5 MiB | 10 segundos | Um redirecionamento para uma origem diferente deve usar `https://` e não pode apontar para um host loopback, link-local ou cloud-metadata, então um redirecionamento de `https://` para `http://` falha |

62| Zip de uma fonte de plugin `archive` | 256 MiB | 120 segundos | No máximo cinco. Cada alvo de redirecionamento deve usar `https://` e não pode apontar para um host loopback, link-local ou cloud-metadata |

63 

64Uma solicitação que um redirecionamento envia para uma origem diferente não carrega nenhum dos cabeçalhos que você configurou na fonte do marketplace ou na entrada do plugin.

65 

66Após um arquivo ser baixado, a instalação falha quando o zip excede qualquer um destes limites de extração:

67 

68* **Entradas**: 100.000 arquivos e diretórios

69* **Tamanho do arquivo**: 512 MiB para qualquer arquivo, descompactado

70* **Tamanho total**: 1 GiB descompactado

71* **Taxa de compressão**: conteúdo descompactado 50 vezes o tamanho do zip

72 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">73<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 Edit plugins in place on a shared directory74 Edit plugins in place on a shared directory

55</h3>75</h3>

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


280 archive plugin source280 archive plugin source

281</h3>281</h3>

282 282 

283`url` deve usar `https://` e não pode apontar para um host loopback, link-local ou cloud-metadata.283`url` deve usar `https://` e não pode apontar para um host loopback, link-local ou cloud-metadata. Para os limites de tamanho, timeout, redirecionamento e extração no download, veja [Stay within the download limits for hosted files](/docs/pt/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files).

284 284 

285A raiz do plugin pode estar no topo do zip ou um diretório abaixo.285A raiz do plugin pode estar no topo do zip ou um diretório abaixo.

286 286 


385| :- | :- | :- | :- | :- | :- |385| :- | :- | :- | :- | :- | :- |

386| `url` | `url`, `headers`, `headersHelper` | Uma URL `http://` ou `https://` que não corresponde a um formulário git | Carrega | Permite a mesma URL | Bloqueia a mesma URL |386| `url` | `url`, `headers`, `headersHelper` | Uma URL `http://` ou `https://` que não corresponde a um formulário git | Carrega | Permite a mesma URL | Bloqueia a mesma URL |

387| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` ou `owner/repo#ref` | Carrega | Permite o mesmo `repo`, `ref` e `path`. `repo` pode ser `owner/*` | Bloqueia o mesmo, e uma URL `git` para o mesmo repositório |387| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` ou `owner/repo#ref` | Carrega | Permite o mesmo `repo`, `ref` e `path`. `repo` pode ser `owner/*` | Bloqueia o mesmo, e uma URL `git` para o mesmo repositório |

388| `git` | `url`, `ref`, `path`, `sparsePaths` | Uma URL `user@host:path`, ou uma URL `https://` que termina em `.git`, contém `/_git/`, ou nomeia um repositório github.com ou gitlab.com. `#ref` fixa uma ref | Carrega | Permite a mesma URL, `ref` e `path` | Bloqueia o mesmo, e outras grafias do mesmo repositório github.com |388| `git` | `url`, `ref`, `path`, `sparsePaths` | Uma URL `user@host:path`, ou uma URL `http://` ou `https://` que termina em `.git`, contém `/_git/`, ou nomeia um repositório github.com ou gitlab.com. `#ref` fixa uma ref | Carrega | Permite a mesma URL, `ref` e `path` | Bloqueia o mesmo, e outras grafias do mesmo repositório github.com |

389| `npm` | `package` | Não produzido | Falha ao carregar: `NPM marketplace sources not yet implemented` | Analisa mas não corresponde a nada, porque nada registra um marketplace `npm` | Analisa mas não corresponde a nada |389| `npm` | `package` | Não produzido | Falha ao carregar: `NPM marketplace sources not yet implemented` | Analisa mas não corresponde a nada, porque nada registra um marketplace `npm` | Analisa mas não corresponde a nada |

390| `file` | `path` | Um caminho para um arquivo `.json` | Carrega | Permite o mesmo caminho | Bloqueia o mesmo caminho |390| `file` | `path` | Um caminho para um arquivo `.json` | Carrega | Permite o mesmo caminho | Bloqueia o mesmo caminho |

391| `directory` | `path` | Um caminho para um diretório | Carrega | Permite o mesmo caminho | Bloqueia o mesmo caminho |391| `directory` | `path` | Um caminho para um diretório | Carrega | Permite o mesmo caminho | Bloqueia o mesmo caminho |


402 402 

403| Campo | Tipos | Descrição |403| Campo | Tipos | Descrição |

404| :- | :- | :- |404| :- | :- | :- |

405| `url` | `url` | Link para o arquivo `marketplace.json`. Claude Code baixa apenas esse arquivo, então os plugins do marketplace não podem usar [fontes de caminho relativo](#relative-path-plugin-source) |405| `url` | `url` | Link para o arquivo `marketplace.json`. Claude Code baixa apenas esse arquivo, então os plugins do marketplace não podem usar [fontes de caminho relativo](#relative-path-plugin-source). Veja [Permaneça dentro dos limites de download para arquivos hospedados](/docs/pt/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files) para os limites de tamanho, tempo limite e redirecionamento |

406| `url` | `git` | O repositório git para clonar |406| `url` | `git` | O repositório git para clonar |

407| `headers` | `url` | Mapa de cabeçalhos HTTP que Claude Code envia com a busca, para hosts autenticados |407| `headers` | `url` | Mapa de cabeçalhos HTTP que Claude Code envia com a busca, para hosts autenticados |

408| `headersHelper` | `url` | Comando que imprime cabeçalhos cujos valores são muito efêmeros para listar em `headers`. Requer Claude Code v2.1.238 ou posterior. Veja [Autenticar downloads de arquivo](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) |408| `headersHelper` | `url` | Comando que imprime cabeçalhos cujos valores são muito efêmeros para listar em `headers`. Requer Claude Code v2.1.238 ou posterior. Veja [Autenticar downloads de arquivo](/docs/pt/plugins/host-marketplace#authenticate-archive-downloads) |


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

145 `Marketplace "<name>" not found`145 `Marketplace "<name>" not found`

146</h3>146</h3>

147 147 

148Você executou `/plugin install <plugin>@<name>` em uma sessão, frequentemente a partir de uma linha de instalação que alguém enviou para você, e Claude Code relatou que não tem um marketplace com esse nome.148Você executou `/plugin install` em uma sessão e Claude Code relatou que não tem um marketplace com esse nome. Duas formas do comando chegam a esta mensagem:

149 

150* **`/plugin install <plugin>@<name>`**: a linha de instalação, frequentemente uma que alguém enviou para você, nomeia um marketplace que você não adicionou. O resto desta entrada cobre encontrar e adicioná-lo.

151* **`/plugin install <source>` com um caminho, URL ou `owner/repo`**: esta forma relata a mensagem em vez de instalar, mesmo para uma fonte que você já adicionou. Para instalar a partir de uma fonte em um comando, veja [Add a marketplace and install in one command](/docs/pt/plugins/install#add-a-marketplace-and-install-in-one-command).

149 152 

150Se o nome começar com `claudeai-`, o marketplace é hospedado em claude.ai, e você o adiciona pelo nome a partir do seu shell com `claude plugin marketplace add --claudeai <name>`. Veja [Add a marketplace from claude.ai](/docs/pt/plugins/install#add-from-claude-ai).153Se o nome começar com `claudeai-`, o marketplace é hospedado em claude.ai, e você o adiciona pelo nome a partir do seu shell com `claude plugin marketplace add --claudeai <name>`. Veja [Add a marketplace from claude.ai](/docs/pt/plugins/install#add-from-claude-ai).

151 154 


646 649 

647Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin está de volta sob **Installed**.650Depois execute `/reload-plugins` em sua sessão. A entrada da aba **Errors** desaparece e o plugin está de volta sob **Installed**.

648 651 

652<h3 id="installed-plugins-json-holds-a-record-this-version-cannot-read">

653 `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

654</h3>

655 

656A mensagem aparece nestas formas:

657 

658* **`claude plugin list`**: imprime como uma `Note:`

659* **`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

660* **`--json` em qualquer um desses três comandos**: a linha de resultado carrega a mesma `message` e `failureCode: "install_records_unreadable"`

661* **Vários registros assim**: a mensagem lê `holds records under`

662* **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

663 

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

665 

666Enquanto o registro está lá, esta versão não reescreve o arquivo, então o registro não é perdido.

667 

668Tome as opções da mensagem em ordem:

669 

6701. Atualize Claude Code com `claude update`.

6712. Se você não conseguir atualizar, desinstale o plugin nomeado com a versão do Claude Code que escreveu o registro.

6723. Se nenhum dos dois ajudar, delete o registro de `installed_plugins.json` manualmente, depois reinicie Claude Code ou execute `/reload-plugins`.

673 

674<h3 id="installed-plugins-json-could-not-be-read-and-was-rebuilt">

675 `installed_plugins.json could not be read and was rebuilt`

676</h3>

677 

678`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`.

679 

680Um `installed_plugins.json` que não é JSON válido, ou não é uma lista de plugins, não pode dizer o que você instalou.

681 

682Abra 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).

683 

684<h3 id="install-records-under-names-that-no-version-can-use">

685 `install records under names that no version of Claude Code can use were removed from installed_plugins.json`

686</h3>

687 

688`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.`

689 

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

691 

692Claude 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).

693 

649<h3 id="a-plugin-you-disabled-still-loads">694<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`695 `Disabled in ~/.claude/settings.json but still loads`

651</h3>696</h3>


981| `Path contains "..": <path>` sob `plugins[N].source` | Erro | Use caminhos relativos à raiz do marketplace sem segmentos `..`. |1026| `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. |1027| `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. |1028| `Plugin name cannot contain control or bidirectional-formatting characters` | Erro | Remova o caractere do `name` do plugin. |

1029| `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. |

1030| `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`. |1031| `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. |1032| `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. |1033| `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. |1034| `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. |1035| `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. |1036| `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

412| - | - |412| - | - |

413| `DISABLE_PROMPT_CACHING` | Desabilitar para todos os modelos |413| `DISABLE_PROMPT_CACHING` | Desabilitar para todos os modelos |

414| `DISABLE_PROMPT_CACHING_HAIKU` | Desabilitar para o modelo Haiku padrão |414| `DISABLE_PROMPT_CACHING_HAIKU` | Desabilitar para o modelo Haiku padrão |

415| `DISABLE_PROMPT_CACHING_SONNET` | Desabilitar para Sonnet apenas |415| `DISABLE_PROMPT_CACHING_SONNET` | Desabilitar para o modelo Sonnet padrão |

416| `DISABLE_PROMPT_CACHING_OPUS` | Desabilitar para Opus apenas |416| `DISABLE_PROMPT_CACHING_OPUS` | Desabilitar para o modelo Opus padrão |

417| `DISABLE_PROMPT_CACHING_FABLE` | Desabilitar para Fable apenas |417| `DISABLE_PROMPT_CACHING_FABLE` | Desabilitar para Fable apenas |

418 418 

419`DISABLE_PROMPT_CACHING_HAIKU` aplica-se ao modelo Haiku padrão, o modelo para o qual o alias `haiku` é resolvido. Desabilita o caching em qualquer lugar que esse modelo seja executado, incluindo a conversa principal quando é seu modelo principal. Cobrir a conversa principal requer Claude Code v2.1.283 ou posterior.419`DISABLE_PROMPT_CACHING_HAIKU` aplica-se ao modelo Haiku padrão, o modelo para o qual o alias `haiku` é resolvido. Desabilita o caching em qualquer lugar que esse modelo seja executado, incluindo a conversa principal quando é seu modelo principal. Cobrir a conversa principal requer Claude Code v2.1.283 ou posterior.


422 422 

423Uma versão diferente do Haiku que você fixa como seu modelo principal mantém o caching; defina `DISABLE_PROMPT_CACHING` para desabilitar o caching para ela.423Uma versão diferente do Haiku que você fixa como seu modelo principal mantém o caching; defina `DISABLE_PROMPT_CACHING` para desabilitar o caching para ela.

424 424 

425`DISABLE_PROMPT_CACHING_SONNET` e `DISABLE_PROMPT_CACHING_OPUS` cada um se aplicam ao modelo para o qual o alias `sonnet` ou `opus` é resolvido. Se você definir qualquer outro ID de modelo Sonnet ou Opus como seu modelo principal, esse modelo mantém o caching. Por exemplo, uma sessão em `claude-sonnet-5` mantém o caching enquanto `sonnet` é resolvido para `claude-sonnet-5-5`. Para desabilitar o caching para esse modelo, defina `DISABLE_PROMPT_CACHING`.

426 

425Para definir a política de caching em toda uma organização, coloque qualquer uma dessas ou as [variáveis de TTL](#cache-lifetime) no bloco `env` de [configurações gerenciadas](/docs/pt/managed-settings). Para uso normal, deixe o caching habilitado.427Para definir a política de caching em toda uma organização, coloque qualquer uma dessas ou as [variáveis de TTL](#cache-lifetime) no bloco `env` de [configurações gerenciadas](/docs/pt/managed-settings). Para uso normal, deixe o caching habilitado.

426 428 

427<h2 id="related-resources">429<h2 id="related-resources">

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

138* Na raiz do projeto, o runtime nega `.git/hooks`, nega `.git/config` a menos que você defina `filesystem.allowGitConfig: true`, e nega `.mcp.json`, `.claude/commands`, `.claude/agents` e arquivos de inicialização de shell.138* Na raiz do projeto, o runtime nega `.git/hooks`, nega `.git/config` a menos que você defina `filesystem.allowGitConfig: true`, e nega `.mcp.json`, `.claude/commands`, `.claude/agents` e arquivos de inicialização de shell.

139* No macOS, essas negações são verificadas quando uma escrita acontece, portanto também cobrem arquivos aninhados e repositórios criados durante a sessão.139* No macOS, essas negações são verificadas quando uma escrita acontece, portanto também cobrem arquivos aninhados e repositórios criados durante a sessão.

140* No Linux e WSL2, o runtime constrói a lista de negação uma vez no lançamento. Ele cobre de forma confiável a raiz do projeto, faz uma varredura rasa de melhor esforço para cópias aninhadas que existem naquele ponto, e não cobre nada que a sessão cria depois, como `git init`, `git clone` ou scaffolding. A seção `mandatoryDenySearchDepth` do README descreve a semântica exata da varredura.140* No Linux e WSL2, o runtime constrói a lista de negação uma vez no lançamento. Ele cobre de forma confiável a raiz do projeto, faz uma varredura rasa de melhor esforço para cópias aninhadas que existem naquele ponto, e não cobre nada que a sessão cria depois, como `git init`, `git clone` ou scaffolding. A seção `mandatoryDenySearchDepth` do README descreve a semântica exata da varredura.

141* Sem um `~/.srt-settings.json` válido, o runtime inicia mesmo assim, bloqueia acesso à rede e confina escritas a caminhos de runtime integrados como `/tmp/claude`, `~/.npm/_logs` e `~/.claude/debug`. Não considere um início limpo como prova de que suas configurações foram carregadas.141* Se `~/.srt-settings.json` não existir e você não passar `--settings`, o runtime inicia mesmo assim. Ele bloqueia acesso à rede e confina escritas a caminhos de runtime integrados como `/tmp/claude`, `~/.npm/_logs` e `~/.claude/debug`. Não considere um início limpo como prova de que suas configurações foram carregadas.

142* Quando você passa `--settings`, o runtime se recusa a iniciar se o arquivo falhar ao carregar.142* Se o arquivo de configurações existir mas estiver vazio, ilegível ou inválido, o runtime se recusa a iniciar, seja `~/.srt-settings.json` ou um arquivo que você passa com `--settings`. Ele também se recusa a iniciar se o arquivo `--settings` não existir.

143 143 

144Suas concessões de escrita ainda incluem outros caminhos dos quais o Claude Code carrega configuração, portanto negue-os com `denyWrite`. Uma sessão em sandbox que pode escrever neles pode persistir hooks, regras de permissão ou servidores MCP que executam sem sandbox na próxima vez que você iniciar o Claude Code.144Suas concessões de escrita ainda incluem outros caminhos dos quais o Claude Code carrega configuração, portanto negue-os com `denyWrite`. Uma sessão em sandbox que pode escrever neles pode persistir hooks, regras de permissão ou servidores MCP que executam sem sandbox na próxima vez que você iniciar o Claude Code.

145 145 

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

310* **Uma sessão interativa que não pode mostrar a caixa de diálogo**: o Claude Code não aplica as configurações entregues e mantém as últimas configurações aprovadas. A caixa de diálogo aparece na próxima sessão que pode mostrá-la. Requer Claude Code v2.1.211 ou posterior.310* **Uma sessão interativa que não pode mostrar a caixa de diálogo**: o Claude Code não aplica as configurações entregues e mantém as últimas configurações aprovadas. A caixa de diálogo aparece na próxima sessão que pode mostrá-la. Requer Claude Code v2.1.211 ou posterior.

311* **`claude install` ou `claude update`**: o Claude Code não mostra a caixa de diálogo durante nenhum dos comandos. O comando é executado com as últimas configurações aprovadas, e a caixa de diálogo aparece em sua próxima sessão interativa. Se o Claude Code aguardar a busca de configurações na inicialização, como com [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) definido ou em uma implantação de [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), ele mostra a caixa de diálogo durante o comando em vez disso, e uma execução de instalação de um pipe falha; veja [`Raw mode is not supported` durante install](/docs/pt/troubleshoot-install#raw-mode-is-not-supported-during-install). Antes da v2.1.246, o Claude Code tentava mostrar a caixa de diálogo durante esses comandos também.311* **`claude install` ou `claude update`**: o Claude Code não mostra a caixa de diálogo durante nenhum dos comandos. O comando é executado com as últimas configurações aprovadas, e a caixa de diálogo aparece em sua próxima sessão interativa. Se o Claude Code aguardar a busca de configurações na inicialização, como com [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) definido ou em uma implantação de [gateway de aplicativos Claude](/docs/pt/claude-apps-gateway), ele mostra a caixa de diálogo durante o comando em vez disso, e uma execução de instalação de um pipe falha; veja [`Raw mode is not supported` durante install](/docs/pt/troubleshoot-install#raw-mode-is-not-supported-during-install). Antes da v2.1.246, o Claude Code tentava mostrar a caixa de diálogo durante esses comandos também.

312* **Um erro fecha a caixa de diálogo antes de você responder**: o Claude Code não aplica as configurações entregues e mantém as últimas configurações aprovadas. Ele mostra a caixa de diálogo novamente na próxima sessão que pode mostrá-la.312* **Um erro fecha a caixa de diálogo antes de você responder**: o Claude Code não aplica as configurações entregues e mantém as últimas configurações aprovadas. Ele mostra a caixa de diálogo novamente na próxima sessão que pode mostrá-la.

313* **Uma execução não interativa**, como `claude -p` ou uma sessão do Agent SDK: o Claude Code não pode mostrar a caixa de diálogo, portanto quando as configurações entregues exigiriam aprovação, ele as aplica apenas para essa execução. Ele não as registra como aprovadas ou as escreve no [cache local](#fetch-and-caching-behavior), e a próxima sessão interativa mostra a caixa de diálogo. Até que um usuário aprove em uma sessão interativa, cada execução não interativa busca as configurações novamente na inicialização. Antes da v2.1.207, uma execução não interativa salvava as configurações como aprovadas, portanto as sessões interativas posteriores nunca mostravam a caixa de diálogo para elas.313* **Uma execução não interativa**, como `claude -p`, uma sessão do Agent SDK ou uma sessão no painel de chat da extensão VS Code ou na aba Code do aplicativo desktop: o Claude Code não pode mostrar a caixa de diálogo, portanto quando as configurações entregues exigiriam aprovação, ele as aplica apenas para essa execução. Ele não as registra como aprovadas ou as escreve no [cache local](#fetch-and-caching-behavior), e a próxima sessão interativa mostra a caixa de diálogo. Até que um usuário aprove em uma sessão interativa, cada execução não interativa busca as configurações novamente na inicialização. Antes da v2.1.207, uma execução não interativa salvava as configurações como aprovadas, portanto as sessões interativas posteriores nunca mostravam a caixa de diálogo para elas.

314 314 

315<h4 id="environment-variables-and-the-approval-dialog">315<h4 id="environment-variables-and-the-approval-dialog">

316 Variáveis de ambiente e a caixa de diálogo de aprovação316 Variáveis de ambiente e a caixa de diálogo de aprovação

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 |


1744 * `"default"`: Claude Code executa apenas leituras sem perguntar1745 * `"default"`: Claude Code executa apenas leituras sem perguntar

1745 * `"acceptEdits"`: Claude Code também executa edições de arquivo e comandos comuns do sistema de arquivos como `mkdir` e `mv` sem perguntar1746 * `"acceptEdits"`: Claude Code também executa edições de arquivo e comandos comuns do sistema de arquivos como `mkdir` e `mv` sem perguntar

1746 * `"plan"`: Claude Code lê e planeja, mas bloqueia edições até que você aprove um plano1747 * `"plan"`: Claude Code lê e planeja, mas bloqueia edições até que você aprove um plano

1747 * `"auto"`: Claude Code executa tudo, com verificações de segurança em segundo plano1748 * `"auto"`: Claude Code executa sem prompts rotineiros; antes de ações como comandos de shell e solicitações de rede serem executadas, um classificador em segundo plano verifica se elas se alinham com sua solicitação

1748 * `"dontAsk"`: Claude Code nega automaticamente cada chamada que de outra forma solicitaria; leituras, outras ações que não precisam de aprovação e ferramentas pré-aprovadas ainda são executadas1749 * `"dontAsk"`: Claude Code nega automaticamente cada chamada que de outra forma solicitaria; leituras, outras ações que não precisam de aprovação e ferramentas pré-aprovadas ainda são executadas

1749 * `"bypassPermissions"`: Claude Code executa tudo sem perguntar1750 * `"bypassPermissions"`: Claude Code executa tudo sem perguntar

1750 * `"manual"`: um alias para `"default"`, em Claude Code v2.1.200 ou posterior1751 * `"manual"`: um alias para `"default"`, em Claude Code v2.1.200 ou posterior


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`

skills.md +26 −2

Details

56 56 

57Claude edita o arquivo registrado apenas quando direcionou uma execução incorretamente, como um comando que falhou ou uma etapa ausente, para que você possa confirmar o arquivo sem diffs por sessão. Antes da v2.1.205, a skill agrupada dizia ao Claude para incorporar qualquer coisa que uma execução aprendesse, o que causava conflitos de mesclagem frequentes.57Claude edita o arquivo registrado apenas quando direcionou uma execução incorretamente, como um comando que falhou ou uma etapa ausente, para que você possa confirmar o arquivo sem diffs por sessão. Antes da v2.1.205, a skill agrupada dizia ao Claude para incorporar qualquer coisa que uma execução aprendesse, o que causava conflitos de mesclagem frequentes.

58 58 

59<h3 id="work-on-claude-api-projects">

60 Trabalhe em projetos da Claude API

61</h3>

62 

63A skill agrupada `/claude-api` carrega material de referência da [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. Claude também a ativa automaticamente quando seu código importa `anthropic` ou `@anthropic-ai/sdk`.

64 

65Para iniciar um dos fluxos de trabalho da skill, digite um subcomando após o nome da skill no prompt do Claude Code, por exemplo `/claude-api migrate`. A tabela lista o que cada subcomando faz e a versão mais antiga do Claude Code que o inclui. `migrate` e `managed-agents-onboard` antecedem v2.1.221, a versão mais antiga que a tabela rastreia.

66 

67| Subcomando | O que faz | Versão mínima |

68| :- | :- | :- |

69| `migrate` | Atualize seu código Claude API existente para um modelo mais recente | Anterior a v2.1.221 |

70| `upgrade` | Mova 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 | v2.1.236 ou posterior |

71| `managed-agents-onboard` | Percorra a criação de um novo Managed Agent | Anterior a v2.1.221 |

72| `prompt-audit` | Sinalize instruções escritas para modelos mais antigos em seus prompts, skills e descrições de ferramentas e proponha correções como um diff | v2.1.221 ou posterior |

73| `cost-optimize` | Perfil onde o gasto da Claude API do seu projeto vai e proponha economias de opções como prompt caching, redução de tokens de entrada e saída desnecessários, processamento em lote, esforço e escolha de modelo, uma alteração por vez | v2.1.247 ou posterior |

74| `build-eval` | Construa um conjunto de avaliação para seu aplicativo alimentado por Claude | v2.1.259 ou posterior |

75| `hillclimb` | Melhore iterativamente seu aplicativo em relação a uma avaliação existente | v2.1.259 ou posterior |

76| `preserved-thinking-migration` | Encontre as edições que sua integração faz em turnos anteriores, seu prompt do sistema ou sua lista de ferramentas que invalidam blocos de [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), meça quanto raciocínio cada um descarta e proponha correções uma de cada vez, remensurando após cada alteração | v2.1.282 ou posterior |

77 

59<h2 id="getting-started">78<h2 id="getting-started">

60 Primeiros passos79 Primeiros passos

61</h2>80</h2>


909 928 

910Ver uma skill ser acionada informa que Claude a encontrou, não que ela fez o que você pretendia. Para saber que uma skill está funcionando, meça separadamente se Claude a invoca nos prompts que deveria, e se a saída corresponde ao que você espera quando o faz.929Ver uma skill ser acionada informa que Claude a encontrou, não que ela fez o que você pretendia. Para saber que uma skill está funcionando, meça separadamente se Claude a invoca nos prompts que deveria, e se a saída corresponde ao que você espera quando o faz.

911 930 

912A verificação de ambas é uma comparação de linha de base. Colete alguns prompts realistas, execute cada um em uma sessão nova com a skill disponível e novamente com ela [desabilitada](#override-skill-visibility-from-settings), e compare os resultados. Uma sessão nova é importante porque o contexto restante da autoria da skill mascarará lacunas nas instruções escritas.931A verificação de ambas é uma comparação de linha de base. Colete alguns prompts realistas, execute cada um em uma sessão nova com a skill disponível e novamente com ela desabilitada, e compare os resultados. Uma sessão nova é importante porque o contexto restante da autoria da skill mascarará lacunas nas instruções escritas.

932 

933Como você desabilita a skill para a segunda execução depende de onde ela vem:

934 

935* **Skill pessoal ou de projeto**: defina-a como `"off"` em [`skillOverrides`](#override-skill-visibility-from-settings).

936* **Skill que um plugin fornece**: `skillOverrides` não se aplica a skills de plugin. Use [`claude plugin eval`](/docs/pt/plugin-evals#the-no-plugin-baseline) em vez disso, que repete cada execução sem nenhum plugin carregado.

913 937 

914Duas ferramentas automatizam essa comparação. Para uma skill que é entregue em um [plugin](/docs/pt/plugins/overview), [`claude plugin eval`](/docs/pt/plugin-evals) executa cada prompt em uma sessão isolada com e sem o plugin, a classifica com avaliadores que você define ou que ela escreve para você, e sai com código não-zero abaixo de um limite para que você possa bloquear CI nela. Para iterar em uma única skill dentro de uma conversa Claude Code, o plugin skill-creator abaixo executa um loop similar com seu próprio formato `evals/evals.json`. Os dois formatos não são intercambiáveis.938Duas ferramentas automatizam a comparação de linha de base. Para uma skill que é entregue em um [plugin](/docs/pt/plugins/overview), [`claude plugin eval`](/docs/pt/plugin-evals) executa cada prompt em uma sessão isolada com e sem o plugin, a classifica com avaliadores que você define ou que ela escreve para você, e sai com código não-zero abaixo de um limite para que você possa bloquear CI nela. Para iterar em uma única skill dentro de uma conversa Claude Code, o plugin skill-creator abaixo executa um loop similar com seu próprio formato `evals/evals.json`. Os dois formatos não são intercambiáveis.

915 939 

916<h3 id="run-evals-with-skill-creator">940<h3 id="run-evals-with-skill-creator">

917 Executar evals com skill-creator941 Executar evals com skill-creator

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 −5

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:


850}850}

851```851```

852 852 

853Um matcher com hífens como `db-agent` corresponde exatamente no Claude Code v2.1.195 ou posterior. Em versões anteriores, é avaliado como uma expressão regular sem âncora e também dispara para qualquer tipo de agente que o contenha, como `prod-db-agent`; ancorá-lo como `^db-agent$` nessas versões.

854 

855Veja [Hooks](/docs/pt/hooks) para o formato de configuração de hook completo.853Veja [Hooks](/docs/pt/hooks) para o formato de configuração de hook completo.

856 854 

857<h2 id="work-with-subagents">855<h2 id="work-with-subagents">


876 874 

877* **Linguagem natural**: nomeie o subagente em seu prompt; Claude decide se deve delegar875* **Linguagem natural**: nomeie o subagente em seu prompt; Claude decide se deve delegar

878* **@-mention**: garante que o subagente seja executado para uma tarefa876* **@-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`877* **Em toda a sessão**: toda a sessão é executada como esse subagente via sinalizador `--agent` ou configuração `agent`

880 878 

881Para linguagem natural, não há sintaxe especial. Nomeie o subagente e Claude normalmente delega:879Para linguagem natural, não há sintaxe especial. Nomeie o subagente e Claude normalmente delega:

882 880 


897 895 

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.896Você 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 897 

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:898**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 899 

902```bash theme={null}900```bash theme={null}

903claude --agent code-reviewer901claude --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

382 Fonte WebSocket382 Fonte WebSocket

383</h3>383</h3>

384 384 

385<Note>

386 A fonte WebSocket requer Claude Code v2.1.195 ou posterior.

387</Note>

388 

389Quando um servidor já envia eventos por WebSocket, Claude pode se conectar diretamente em vez de escrever um script de pesquisa. Cada tipo de atividade de socket se torna um evento ou encerra a observação:385Quando um servidor já envia eventos por WebSocket, Claude pode se conectar diretamente em vez de escrever um script de pesquisa. Cada tipo de atividade de socket se torna um evento ou encerra a observação:

390 386 

391* **Mensagens de texto**: cada uma se torna um evento, mesmo quando a mensagem abrange várias linhas.387* **Mensagens de texto**: cada uma se torna um evento, mesmo quando a mensagem abrange várias linhas.

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 


1017 403 Forbidden after login1022 403 Forbidden after login

1018</h3>1023</h3>

1019 1024 

1020Se você vir `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}` após fazer login:1025Se você vir `API Error: 403 Request not allowed` após fazer login:

1021 1026 

1022* **Usuários Claude Pro/Max**: verifique se sua assinatura está ativa em [claude.ai/settings](https://claude.ai/settings)1027* **Usuários Claude Pro/Max**: verifique se sua assinatura está ativa em [claude.ai/settings](https://claude.ai/settings)

1023* **Usuários do Anthropic Console**: confirme que sua conta tem a função "Claude Code" ou "Developer". Os administradores atribuem isso no Anthropic Console em Settings → Members.1028* **Usuários do Anthropic Console**: confirme que sua conta tem a função "Claude Code" ou "Developer". Os administradores atribuem isso no Anthropic Console em Settings → Members.

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