SpyBara
Go Premium

Documentation 2026-06-29 23:02 UTC to 2026-06-30 23:02 UTC

78 files changed +3,087 −618. View all changes and history on the product overview
2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

admin-setup.md +13 −11

Details

46 Decida como as configurações chegam aos dispositivos46 Decida como as configurações chegam aos dispositivos

47</h2>47</h2>

48 48 

49As configurações gerenciadas definem a política que tem precedência sobre a configuração local do desenvolvedor. Claude Code verifica as quatro fontes abaixo em ordem de prioridade e aplica a primeira que retorna uma configuração não vazia.49As configurações gerenciadas definem a política que tem precedência sobre a configuração local do desenvolvedor. Claude Code verifica as quatro fontes abaixo em ordem de prioridade e aplica a primeira que retorna uma configuração não vazia, com uma exceção: um pequeno conjunto de [chaves de bloqueio entre fontes](/pt/settings#settings-precedence), como os bloqueios da lista de permissões de sandbox, é honrado quando qualquer fonte controlada por administrador os define.

50 50 

51| Mecanismo | Entrega | Prioridade | Plataformas |51| Mecanismo | Entrega | Prioridade | Plataformas |

52| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- | :------------- |52| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- | :------------- |

53| Server-managed | Console de administração Claude.ai | Mais alta | Todas |53| Server-managed | Console de administração claude.ai, ou um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado para sign-ins de gateway | Mais alta | Todas |

54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | Alta | macOS, Windows |54| plist / registry policy | macOS: `com.anthropic.claudecode` plist<br />Windows: `HKLM\SOFTWARE\Policies\ClaudeCode` | Alta | macOS, Windows |

55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux e WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | Média | Todas |55| File-based managed | macOS: `/Library/Application Support/ClaudeCode/managed-settings.json`<br />Linux e WSL: `/etc/claude-code/managed-settings.json`<br />Windows: `C:\Program Files\ClaudeCode\managed-settings.json` | Média | Todas |

56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | Mais baixa | Apenas Windows |56| Windows user registry | `HKCU\SOFTWARE\Policies\ClaudeCode` | Mais baixa | Apenas Windows |

57 57 

58As configurações gerenciadas pelo servidor chegam aos dispositivos no momento da autenticação e são atualizadas a cada hora durante sessões ativas, sem infraestrutura de endpoint. Elas exigem um plano Claude for Teams ou Enterprise, portanto, implantações em outros provedores precisam de um dos mecanismos baseados em arquivo ou de nível do SO.58Um [`policyHelper`](/pt/settings#compute-managed-settings-with-a-policy-helper) configurado antecede todas as quatro fontes: sua saída se torna a única configuração gerenciada para a execução. Consulte [Settings precedence](/pt/settings#settings-precedence).

59 59 

60Se sua organização mistura provedores, configure [configurações gerenciadas pelo servidor](/pt/server-managed-settings) para usuários Claude.ai mais um [fallback baseado em arquivo ou plist/registry](/pt/settings#settings-files) para que outros usuários ainda recebam política gerenciada.60As configurações gerenciadas pelo servidor chegam aos dispositivos no momento da autenticação e são atualizadas a cada hora durante sessões ativas, sem infraestrutura de endpoint. A entrega através do console de administração claude.ai requer um plano Claude for Teams ou Enterprise. Implantações em Bedrock, Vertex AI ou Foundry podem obter a mesma entrega remota executando um [gateway de aplicativos Claude](/pt/claude-apps-gateway), ou usar um dos mecanismos baseados em arquivo ou de nível do SO.

61 

62Se sua organização mistura provedores, configure [configurações gerenciadas pelo servidor](/pt/server-managed-settings) para usuários claude.ai mais um [fallback baseado em arquivo ou plist/registry](/pt/settings#settings-files) para que outros usuários ainda recebam política gerenciada.

61 63 

62Os locais de registro plist e HKLM funcionam com qualquer provedor e resistem a adulteração porque exigem privilégios de administrador para escrever. O registro de usuário do Windows em HKCU é gravável sem elevação, portanto, trate-o como um padrão de conveniência em vez de um canal de aplicação.64Os locais de registro plist e HKLM funcionam com qualquer provedor e resistem a adulteração porque exigem privilégios de administrador para escrever. O registro de usuário do Windows em HKCU é gravável sem elevação, portanto, trate-o como um padrão de conveniência em vez de um canal de aplicação.

63 65 

64Por padrão, WSL lê apenas o caminho do arquivo Linux em `/etc/claude-code`. Para estender sua política de registro do Windows e `C:\Program Files\ClaudeCode` para WSL na mesma máquina, defina [`wslInheritsWindowsSettings: true`](/pt/settings#available-settings) em uma das fontes do Windows somente para administrador.66Por padrão, WSL lê apenas o caminho do arquivo Linux em `/etc/claude-code`. Para estender sua política de registro do Windows e `C:\Program Files\ClaudeCode` para WSL na mesma máquina, defina [`wslInheritsWindowsSettings: true`](/pt/settings#available-settings) em uma das fontes do Windows somente para administrador.

65 67 

66Qualquer que seja o mecanismo escolhido, os valores gerenciados têm precedência sobre as configurações de usuário e projeto. As configurações de matriz, como `permissions.allow` e `permissions.deny`, mesclam entradas de todas as fontes, portanto, os desenvolvedores podem estender listas gerenciadas, mas não removê-las, com [duas exceções](/pt/settings#settings-precedence) onde o valor gerenciado substitui camadas inferiores em vez de mesclar: `fallbackModel` e `availableModels`.68Qualquer que seja o mecanismo escolhido, os valores gerenciados têm precedência sobre as configurações de usuário e projeto. As configurações de matriz, como `permissions.allow` e `permissions.deny`, mesclam entradas de todas as fontes, portanto, os desenvolvedores podem estender listas gerenciadas, mas não removê-las. Para [duas exceções](/pt/settings#settings-precedence), `fallbackModel` e `availableModels`, o valor gerenciado substitui camadas inferiores em vez de mesclar.

67 69 

68Consulte [Server-managed settings](/pt/server-managed-settings) e [Settings files and precedence](/pt/settings#settings-files).70Consulte [Server-managed settings](/pt/server-managed-settings) e [Settings files and precedence](/pt/settings#settings-files).

69 71 


80| [Sandboxing](/pt/sandboxing) | Isolamento de sistema de arquivos e rede de nível do SO com listas de permissão de domínio | `sandbox.enabled`, `sandbox.network.allowedDomains` |82| [Sandboxing](/pt/sandboxing) | Isolamento de sistema de arquivos e rede de nível do SO com listas de permissão de domínio | `sandbox.enabled`, `sandbox.network.allowedDomains` |

81| [Managed policy CLAUDE.md](/pt/memory#deploy-organization-wide-claude-md) | Instruções em toda a organização carregadas em cada sessão, não podem ser excluídas | Arquivo no caminho da política gerenciada |83| [Managed policy CLAUDE.md](/pt/memory#deploy-organization-wide-claude-md) | Instruções em toda a organização carregadas em cada sessão, não podem ser excluídas | Arquivo no caminho da política gerenciada |

82| [MCP server control](/pt/managed-mcp) | Restringir quais servidores MCP os usuários podem adicionar ou conectar, ou implantar um conjunto fixo | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, ou um arquivo `managed-mcp.json` implantado |84| [MCP server control](/pt/managed-mcp) | Restringir quais servidores MCP os usuários podem adicionar ou conectar, ou implantar um conjunto fixo | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, ou um arquivo `managed-mcp.json` implantado |

83| [Plugin marketplace control](/pt/plugin-marketplaces#managed-marketplace-restrictions) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar | `strictKnownMarketplaces`, `blockedMarketplaces` |85| [Plugin marketplace control](/pt/plugin-marketplaces#managed-marketplace-restrictions) | Restringir quais fontes de marketplace os usuários podem adicionar e instalar, e rejeitar os sinalizadores CLI que carregam plugins, agents e servidores MCP para uma única execução | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags` |

84| [Customization lockdown](/pt/settings#strictpluginonlycustomization) | Bloquear skills, agents, hooks e servidores MCP de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas | `strictPluginOnlyCustomization` |86| [Customization lockdown](/pt/settings#strictpluginonlycustomization) | Bloquear skills, agents, hooks e servidores MCP de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas | `strictPluginOnlyCustomization` |

85| [Hook restrictions](/pt/settings#hook-configuration) | Apenas hooks gerenciados são carregados; restringir URLs de hook HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |87| [Hook restrictions](/pt/settings#hook-configuration) | Apenas hooks gerenciados são carregados; restringir URLs de hook HTTP | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

86| [Disable agent view](/pt/agent-view#how-background-sessions-are-hosted) | Desativar `claude agents`, `--bg`, `/background` e o supervisor sob demanda | `disableAgentView` |88| [Disable agent view](/pt/agent-view#how-background-sessions-are-hosted) | Desativar `claude agents`, `--bg`, `/background` e o supervisor sob demanda | `disableAgentView` |


99Escolha monitoramento com base no que você precisa relatar.101Escolha monitoramento com base no que você precisa relatar.

100 102 

101| Capacidade | O que você obtém | Disponibilidade | Por onde começar |103| Capacidade | O que você obtém | Disponibilidade | Por onde começar |

102| :------------------ | :--------------------------------------------------------- | :------------------ | :--------------------------------------- |104| :------------------ | :--------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------- |

103| Usage monitoring | Exportação OpenTelemetry de sessões, ferramentas e tokens | Todos os provedores | [Monitoring usage](/pt/monitoring-usage) |105| Usage monitoring | Exportação OpenTelemetry de sessões, ferramentas e tokens | Todos os provedores | [Monitoring usage](/pt/monitoring-usage) |

104| Analytics dashboard | Métricas por usuário, rastreamento de contribuição, placar | Apenas Anthropic | [Analytics](/pt/analytics) |106| Analytics dashboard | Métricas por usuário, rastreamento de contribuição, placar | Apenas Anthropic | [Analytics](/pt/analytics) |

105| Cost tracking | Limites de gastos, limites de taxa e atribuição de uso | Apenas Anthropic | [Costs](/pt/costs) |107| Cost tracking | Limites de gastos, limites de taxa e atribuição de uso | Apenas Anthropic; em nuvens de terceiros, um [Claude apps gateway](/pt/claude-apps-gateway) fornece atribuição por usuário e [limites de gastos](/pt/claude-apps-gateway-spend-limits) | [Costs](/pt/costs) |

106 108 

107Os provedores de nuvem expõem gastos através do AWS Cost Explorer, GCP Billing ou Azure Cost Management. Os planos Claude for Teams e Enterprise incluem um painel de uso em [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code).109Os provedores de nuvem expõem gastos através do AWS Cost Explorer, GCP Billing ou Azure Cost Management. Os planos Claude for Teams e Enterprise incluem um painel de uso em [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code).

108 110 


113Nos planos Team, Enterprise, Claude API e provedor de nuvem, Anthropic não treina modelos em seu código ou prompts. Seu provedor de API determina a retenção e postura de conformidade.115Nos planos Team, Enterprise, Claude API e provedor de nuvem, Anthropic não treina modelos em seu código ou prompts. Seu provedor de API determina a retenção e postura de conformidade.

114 116 

115| Tópico | O que saber | Por onde começar |117| Tópico | O que saber | Por onde começar |

116| :------------------------ | :----------------------------------------------------------------------------------- | :--------------------------------------------- |118| :------------------------ | :------------------------------------------------------------------------------------------------------------ | :--------------------------------------------- |

117| Data usage policy | O que Anthropic coleta, quanto tempo é retido, o que nunca é usado para treinamento | [Data usage](/pt/data-usage) |119| Data usage policy | O que Anthropic coleta, quanto tempo é retido, o que nunca é usado para treinamento | [Data usage](/pt/data-usage) |

118| Zero Data Retention (ZDR) | Nada armazenado após a conclusão da solicitação. Disponível no Claude for Enterprise | [Zero data retention](/pt/zero-data-retention) |120| Zero Data Retention (ZDR) | Nada armazenado após a conclusão da solicitação. Disponível para contas qualificadas no Claude for Enterprise | [Zero data retention](/pt/zero-data-retention) |

119| Security architecture | Modelo de rede, criptografia, autenticação, trilha de auditoria | [Security](/pt/security) |121| Security architecture | Modelo de rede, criptografia, autenticação, trilha de auditoria | [Security](/pt/security) |

120 122 

121Se você precisar de registro de auditoria em nível de solicitação ou rotear tráfego por sensibilidade de dados, coloque um [LLM gateway](/pt/llm-gateway) entre desenvolvedores e seu provedor. Para requisitos regulatórios e certificações, consulte [Legal and compliance](/pt/legal-and-compliance).123Se você precisar de registro de auditoria em nível de solicitação ou rotear tráfego por sensibilidade de dados, coloque um gateway entre desenvolvedores e seu provedor: um [Claude apps gateway](/pt/claude-apps-gateway) auto-hospedado registra um log de auditoria por solicitação com identidade IdP, ou use outro [LLM gateway](/pt/llm-gateway). Para requisitos regulatórios e certificações, consulte [Legal and compliance](/pt/legal-and-compliance).

122 124 

123<h2 id="verify-and-onboard">125<h2 id="verify-and-onboard">

124 Verifique e integre126 Verifique e integre

advisor.md +2 −1

Details

88| ----------------------------------------------- | -------------------------------------------------- | --------------------------------------------------------- |88| ----------------------------------------------- | -------------------------------------------------- | --------------------------------------------------------- |

89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku pode chamar o advisor, mas não pode atuar como um |89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku pode chamar o advisor, mas não pode atuar como um |

90| Sonnet 4.6 | Fable, Opus, Sonnet | |90| Sonnet 4.6 | Fable, Opus, Sonnet | |

91| Sonnet 5 | Fable, Opus, Sonnet 5 | Um advisor Sonnet 4.6 é rejeitado |

91| Opus 4.6 ou posterior | Fable, Opus na versão do modelo principal ou acima | Um Opus 4.7 principal com um advisor Opus 4.6 é rejeitado |92| Opus 4.6 ou posterior | Fable, Opus na versão do modelo principal ou acima | Um Opus 4.7 principal com um advisor Opus 4.6 é rejeitado |

92| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Um advisor Opus ou Sonnet é rejeitado |93| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Um advisor Opus ou Sonnet é rejeitado |

93 94 


161 162 

162* **Claude Code v2.1.98 ou posterior**: execute `claude update` para atualizar.163* **Claude Code v2.1.98 ou posterior**: execute `claude update` para atualizar.

163* **Apenas API Anthropic**: o advisor é uma ferramenta executada no servidor. Não está disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. Através de um [LLM gateway](/pt/llm-gateway) configurado com `ANTHROPIC_BASE_URL`, a disponibilidade depende se o gateway encaminha a solicitação intacta para a API Anthropic.164* **Apenas API Anthropic**: o advisor é uma ferramenta executada no servidor. Não está disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. Através de um [LLM gateway](/pt/llm-gateway) configurado com `ANTHROPIC_BASE_URL`, a disponibilidade depende se o gateway encaminha a solicitação intacta para a API Anthropic.

164* **Modelo principal suportado**: Opus 4.6 ou posterior, Sonnet 4.6, ou Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5 também se qualifica no Claude Code v2.1.170 ou posterior.165* **Modelo principal suportado**: Opus 4.6 ou posterior, Sonnet 4.6 ou posterior, ou Haiku 4.5. {/* min-version: 2.1.170 */}Fable 5 também se qualifica no Claude Code v2.1.170 ou posterior.

165 166 

166<h2 id="turn-the-advisor-off">167<h2 id="turn-the-advisor-off">

167 Desativar o advisor168 Desativar o advisor

Details

226 Modelo226 Modelo

227</h3>227</h3>

228 228 

229Se você não definir `model`, o SDK usa o padrão do Claude Code, que depende do seu método de autenticação e assinatura. Defina explicitamente (por exemplo, `model="claude-sonnet-4-6"`) para fixar um modelo específico ou usar um modelo menor para agentes mais rápidos e baratos. Veja [modelos](https://platform.claude.com/docs/en/about-claude/models) para IDs disponíveis.229Se você não definir `model`, o SDK usa o padrão do Claude Code, que depende do seu método de autenticação e assinatura. Defina explicitamente (por exemplo, `model="claude-sonnet-5"`) para fixar um modelo específico ou usar um modelo menor para agentes mais rápidos e baratos. Veja [modelos](https://platform.claude.com/docs/en/about-claude/models) para IDs disponíveis.

230 230 

231<h2 id="the-context-window">231<h2 id="the-context-window">

232 A janela de contexto232 A janela de contexto

agent-sdk/hooks.md +22 −14

Details

14* **Exigir aprovação humana** para ações sensíveis como gravações em banco de dados ou chamadas de API14* **Exigir aprovação humana** para ações sensíveis como gravações em banco de dados ou chamadas de API

15* **Rastrear ciclo de vida da sessão** para gerenciar estado, limpar recursos ou enviar notificações15* **Rastrear ciclo de vida da sessão** para gerenciar estado, limpar recursos ou enviar notificações

16 16 

17Este guia cobre como hooks funcionam, como configurá-los e fornece exemplos para padrões comuns como bloquear ferramentas, modificar entradas e encaminhar notificações.17Este guia cobre como hooks funcionam e como configurá-los, com exemplos para padrões comuns como bloquear ferramentas, modificar entradas e encaminhar notificações.

18 18 

19<h2 id="how-hooks-work">19<h2 id="how-hooks-work">

20 Como hooks funcionam20 Como hooks funcionam


203 ```203 ```

204</CodeGroup>204</CodeGroup>

205 205 

206A opção `hooks` é um dicionário (Python) ou objeto (TypeScript) onde:206A opção `hooks` é um dicionário em Python ou um objeto em TypeScript, onde:

207 207 

208* **Chaves** são [nomes de eventos de hook](#available-hooks) (por exemplo, `'PreToolUse'`, `'PostToolUse'`, `'Stop'`)208* **Chaves**: [nomes de eventos de hook](#available-hooks) como `'PreToolUse'`, `'PostToolUse'` e `'Stop'`

209* **Valores** são arrays de [matchers](#matchers), cada um contendo um padrão de filtro opcional e suas [funções de callback](#callback-functions)209* **Valores**: arrays de [matchers](#matchers), cada um contendo um padrão de filtro opcional e suas [funções de callback](#callback-functions)

210 210 

211<h3 id="matchers">211<h3 id="matchers">

212 Matchers212 Matchers


214 214 

215Use matchers para filtrar quando seus callbacks são acionados. O campo `matcher` corresponde a um valor diferente dependendo do tipo de evento de hook. Por exemplo, hooks baseados em ferramentas correspondem ao nome da ferramenta, enquanto hooks `Notification` correspondem ao tipo de notificação. Veja a [referência de hooks do Claude Code](/pt/hooks#matcher-patterns) para a lista completa de valores de matcher para cada tipo de evento.215Use matchers para filtrar quando seus callbacks são acionados. O campo `matcher` corresponde a um valor diferente dependendo do tipo de evento de hook. Por exemplo, hooks baseados em ferramentas correspondem ao nome da ferramenta, enquanto hooks `Notification` correspondem ao tipo de notificação. Veja a [referência de hooks do Claude Code](/pt/hooks#matcher-patterns) para a lista completa de valores de matcher para cada tipo de evento.

216 216 

217Os matchers do SDK seguem as mesmas regras que [matchers em arquivos de configuração](/pt/hooks#matcher-patterns): um matcher contendo apenas letras, dígitos, `_`, espaços, `,` e `|` é comparado como uma string exata, com alternativas separadas por `|` ou `,` e espaço em branco opcional ao redor, então `Write|Edit` e `Write, Edit` correspondem exatamente a essas duas ferramentas. Um matcher de `*`, uma string vazia, ou omitir o matcher inteiramente corresponde a cada ocorrência do evento; um matcher contendo qualquer outro caractere é avaliado como uma expressão regular, então `^mcp__` corresponde a cada ferramenta MCP. Um matcher como `mcp__memory` contém apenas letras e underscores, então é comparado como uma string exata e não corresponde a nenhuma ferramenta; use `mcp__memory__.*` para corresponder a cada ferramenta desse servidor.217Os matchers do SDK seguem as mesmas regras que [matchers em arquivos de configuração](/pt/hooks#matcher-patterns). Um matcher contendo apenas letras, dígitos, `_`, `-`, espaços, `,` e `|` é comparado como uma string exata, com alternativas separadas por `|` ou `,` e espaço em branco opcional ao redor, então `Write|Edit` e `Write, Edit` correspondem exatamente a essas duas ferramentas e `code-reviewer` corresponde apenas a esse tipo de agente. Um matcher de `*`, uma string vazia, ou omitir o matcher inteiramente corresponde a cada ocorrência do evento.

218 

219Um matcher contendo qualquer outro caractere é avaliado como uma expressão regular sem âncora, então `^mcp__` corresponde a cada ferramenta MCP e `Edit.*` corresponde tanto a `Edit` quanto a `NotebookEdit`. Envolva uma expressão regular em `^` e `$` quando você precisar de uma correspondência de string inteira.

220 

221Um matcher como `mcp__memory` ou `mcp__brave-search` contém apenas caracteres de correspondência exata, então é comparado como uma string exata e não corresponde a nenhuma ferramenta; use `mcp__memory__.*` para corresponder a cada ferramenta desse servidor.

222 

223Hífens no conjunto de correspondência exata requerem um runtime do 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 sem âncora e deve ser ancorado como `^code-reviewer$` para corresponder exatamente.

218 224 

219| Opção | Tipo | Padrão | Descrição |225| Opção | Tipo | Padrão | Descrição |

220| --------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |226| --------- | ---------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


222| `hooks` | `HookCallback[]` | - | Obrigatório. Array de funções de callback a executar quando o padrão corresponde |228| `hooks` | `HookCallback[]` | - | Obrigatório. Array de funções de callback a executar quando o padrão corresponde |

223| `timeout` | `number` | `60` | Timeout em segundos |229| `timeout` | `number` | `60` | Timeout em segundos |

224 230 

225Use o padrão `matcher` para direcionar ferramentas específicas sempre que possível. Um matcher com `'Bash'` é executado apenas para comandos Bash, enquanto omitir o padrão executa seus callbacks para cada ocorrência do evento. Observe que para hooks baseados em ferramentas, matchers filtram apenas pelo **nome da ferramenta**, não por caminhos de arquivo ou outros argumentos. Para filtrar por caminho de arquivo, verifique `tool_input.file_path` dentro de seu callback.231Use o padrão `matcher` para direcionar ferramentas específicas sempre que possível. Um matcher com `'Bash'` é executado apenas para comandos Bash, enquanto omitir o padrão executa seus callbacks para cada ocorrência do evento.

232 

233Para hooks baseados em ferramentas, matchers filtram apenas pelo nome da ferramenta, não por caminhos de arquivo ou outros argumentos. Para filtrar por caminho de arquivo, verifique `tool_input.file_path` dentro de seu callback.

226 234 

227<Tip>235<Tip>

228 **Descobrindo nomes de ferramentas:** Veja [Tipos de Entrada de Ferramenta](/pt/agent-sdk/typescript#tool-input-types) para a lista completa de nomes de ferramentas integradas, ou adicione um hook sem um matcher para registrar todas as chamadas de ferramenta que sua sessão faz.236 **Descobrindo nomes de ferramentas:** Veja [Tipos de Entrada de Ferramenta](/pt/agent-sdk/typescript#tool-input-types) para a lista completa de nomes de ferramentas integradas, ou adicione um hook sem um matcher para registrar todas as chamadas de ferramenta que sua sessão faz.

229 237 

230 **Nomenclatura de ferramentas MCP:** Ferramentas MCP sempre começam com `mcp__` seguido pelo nome do servidor e ação: `mcp__<server>__<action>`. Por exemplo, se você configurar um servidor chamado `playwright`, suas ferramentas serão nomeadas `mcp__playwright__browser_screenshot`, `mcp__playwright__browser_click`, etc. O nome do servidor vem da chave que você usa na configuração `mcpServers`.238 **Nomenclatura de ferramentas MCP:** Ferramentas MCP sempre começam com `mcp__` seguido pelo nome do servidor e ação: `mcp__<server>__<action>`. Por exemplo, se você configurar um servidor chamado `playwright`, suas ferramentas serão nomeadas `mcp__playwright__browser_screenshot`, `mcp__playwright__browser_click` e assim por diante. O nome do servidor vem da chave que você usa na configuração `mcpServers`.

231</Tip>239</Tip>

232 240 

233<h3 id="callback-functions">241<h3 id="callback-functions">


240 248 

241Cada callback de hook recebe três argumentos:249Cada callback de hook recebe três argumentos:

242 250 

243* **Dados de entrada:** um objeto tipado contendo detalhes do evento. Cada tipo de hook tem sua própria forma de entrada (por exemplo, `PreToolUseHookInput` inclui `tool_name` e `tool_input`, enquanto `NotificationHookInput` inclui `message`). Veja as definições de tipo completas nas referências do SDK [TypeScript](/pt/agent-sdk/typescript#hookinput) e [Python](/pt/agent-sdk/python#hookinput).251* **Dados de entrada:** um objeto tipado contendo detalhes do evento. Cada tipo de hook tem sua própria forma de entrada. Por exemplo, `PreToolUseHookInput` inclui `tool_name` e `tool_input`, enquanto `NotificationHookInput` inclui `message`. Veja as definições de tipo completas nas referências do SDK [TypeScript](/pt/agent-sdk/typescript#hookinput) e [Python](/pt/agent-sdk/python#hookinput).

244 * Todas as entradas de hook compartilham `session_id`, `cwd` e `hook_event_name`.252 * Todas as entradas de hook compartilham `session_id`, `cwd` e `hook_event_name`.

245 * `agent_id` e `agent_type` são preenchidos quando o hook é acionado dentro de um subagente. Em TypeScript, estes estão na entrada de hook base e disponíveis para todos os tipos de hook. Em Python, eles estão em `PreToolUse`, `PostToolUse` e `PostToolUseFailure` apenas.253 * `agent_id` e `agent_type` são preenchidos quando o hook é acionado dentro de um subagente. Em TypeScript, estes estão na entrada de hook base e disponíveis para todos os tipos de hook. Em Python, eles estão em `PreToolUse`, `PostToolUse` e `PostToolUseFailure` apenas.

246* **ID de uso de ferramenta** (`str | None` / `string | undefined`): correlaciona eventos `PreToolUse` e `PostToolUse` para a mesma chamada de ferramenta.254* **ID de uso de ferramenta** (`str | None` / `string | undefined`): correlaciona eventos `PreToolUse` e `PostToolUse` para a mesma chamada de ferramenta.


258Retorne `{}` para permitir a operação sem alterações. Hooks de callback do SDK usam o mesmo formato de saída JSON que [hooks de comando shell do Claude Code](/pt/hooks#json-output), que documenta cada campo e opção específica do evento. Para as definições de tipo do SDK, veja as referências do SDK [TypeScript](/pt/agent-sdk/typescript#synchookjsonoutput) e [Python](/pt/agent-sdk/python#synchookjsonoutput).266Retorne `{}` para permitir a operação sem alterações. Hooks de callback do SDK usam o mesmo formato de saída JSON que [hooks de comando shell do Claude Code](/pt/hooks#json-output), que documenta cada campo e opção específica do evento. Para as definições de tipo do SDK, veja as referências do SDK [TypeScript](/pt/agent-sdk/typescript#synchookjsonoutput) e [Python](/pt/agent-sdk/python#synchookjsonoutput).

259 267 

260<Note>268<Note>

261 Quando múltiplos hooks ou regras de permissão se aplicam, **deny** tem prioridade sobre **defer**, que tem prioridade sobre **ask**, que tem prioridade sobre **allow**. Se qualquer hook retornar `deny`, a operação é bloqueada independentemente de outros hooks.269 Quando múltiplos hooks ou regras de permissão se aplicam, `deny` tem prioridade sobre `defer`, que tem prioridade sobre `ask`, que tem prioridade sobre `allow`. Se qualquer hook retornar `deny`, a operação é bloqueada independentemente de outros hooks.

262</Note>270</Note>

263 271 

264<h4 id="asynchronous-output">272<h4 id="asynchronous-output">

265 Saída assíncrona273 Saída assíncrona

266</h4>274</h4>

267 275 

268Por padrão, o agente aguarda seu hook retornar antes de prosseguir. Se seu hook realiza um efeito colateral (registro, envio de webhook) e não precisa influenciar o comportamento do agente, você pode retornar uma saída assíncrona. Isso diz ao agente para continuar imediatamente sem aguardar o hook terminar:276Por padrão, o agente aguarda seu hook retornar antes de prosseguir. Se seu hook realiza um efeito colateral, como registro ou envio de webhook, e não precisa influenciar o comportamento do agente, você pode retornar uma saída assíncrona. Isso diz ao agente para continuar imediatamente sem aguardar o hook terminar:

269 277 

270<CodeGroup>278<CodeGroup>

271 ```python Python theme={null}279 ```python Python theme={null}


782* Verifique se o nome do evento de hook está correto e sensível a maiúsculas/minúsculas (`PreToolUse`, não `preToolUse`)790* Verifique se o nome do evento de hook está correto e sensível a maiúsculas/minúsculas (`PreToolUse`, não `preToolUse`)

783* Verifique se seu padrão de matcher corresponde exatamente ao nome da ferramenta791* Verifique se seu padrão de matcher corresponde exatamente ao nome da ferramenta

784* Certifique-se de que o hook está sob o tipo de evento correto em `options.hooks`792* Certifique-se de que o hook está sob o tipo de evento correto em `options.hooks`

785* Para hooks não baseados em ferramentas como `Stop` e `SubagentStop`, matchers correspondem a campos diferentes (veja [padrões de matcher](/pt/hooks#matcher-patterns))793* Para hooks não baseados em ferramentas que suportam matchers, como `Notification` e `SubagentStop`, matchers correspondem a campos diferentes, e `Stop` ignora matchers completamente (veja [padrões de matcher](/pt/hooks#matcher-patterns))

786* Hooks podem não ser disparados quando o agente atinge o limite [`max_turns`](/pt/agent-sdk/python#claudeagentoptions) porque a sessão termina antes que hooks possam ser executados794* Hooks podem não ser disparados quando o agente atinge o limite [`max_turns`](/pt/agent-sdk/python#claudeagentoptions) porque a sessão termina antes que hooks possam ser executados

787 795 

788<h3 id="matcher-not-filtering-as-expected">796<h3 id="matcher-not-filtering-as-expected">

789 Matcher não filtra como esperado797 Matcher não filtra como esperado

790</h3>798</h3>

791 799 

792Matchers apenas correspondem a **nomes de ferramentas**, não a caminhos de arquivo ou outros argumentos. Para filtrar por caminho de arquivo, verifique `tool_input.file_path` dentro de seu hook:800Matchers apenas correspondem a nomes de ferramentas, não a caminhos de arquivo ou outros argumentos. Para filtrar por caminho de arquivo, verifique `tool_input.file_path` dentro de seu hook:

793 801 

794```typescript theme={null}802```typescript theme={null}

795const myHook: HookCallback = async (input, toolUseID, { signal }) => {803const myHook: HookCallback = async (input, toolUseID, { signal }) => {


815 823 

816* Verifique todos os hooks `PreToolUse` para retornos `permissionDecision: 'deny'`824* Verifique todos os hooks `PreToolUse` para retornos `permissionDecision: 'deny'`

817* Adicione registro aos seus hooks para ver qual `permissionDecisionReason` eles estão retornando825* Adicione registro aos seus hooks para ver qual `permissionDecisionReason` eles estão retornando

818* Verifique se padrões de matcher não são muito amplos (um matcher vazio corresponde a todas as ferramentas)826* Verifique se padrões de matcher não são muito amplos: um matcher vazio corresponde a todas as ferramentas

819 827 

820<h3 id="modified-input-not-applied">828<h3 id="modified-input-not-applied">

821 Entrada modificada não aplicada829 Entrada modificada não aplicada


841 Hooks de sessão não disponíveis em Python849 Hooks de sessão não disponíveis em Python

842</h3>850</h3>

843 851 

844`SessionStart` e `SessionEnd` podem ser registrados como hooks de callback do SDK em TypeScript, mas não estão disponíveis no SDK Python (`HookEvent` os omite). Em Python, eles estão disponíveis apenas como [hooks de comando shell](/pt/hooks#hook-events) definidos em arquivos de configuração (por exemplo, `.claude/settings.json`). Para carregar hooks de comando shell de sua aplicação SDK, inclua a fonte de configuração apropriada com [`setting_sources`](/pt/agent-sdk/python#settingsource) ou [`settingSources`](/pt/agent-sdk/typescript#settingsource):852`SessionStart` e `SessionEnd` podem ser registrados como hooks de callback do SDK em TypeScript, mas não estão disponíveis no SDK Python porque seu tipo `HookEvent` os omite. Em Python, eles estão disponíveis apenas como [hooks de comando shell](/pt/hooks#hook-events) definidos em arquivos de configuração como `.claude/settings.json`. Para carregar hooks de comando shell de sua aplicação SDK, inclua a fonte de configuração apropriada com [`setting_sources`](/pt/agent-sdk/python#settingsource) ou [`settingSources`](/pt/agent-sdk/typescript#settingsource):

845 853 

846<CodeGroup>854<CodeGroup>

847 ```python Python theme={null}855 ```python Python theme={null}

Details

209 209 

210* **Apenas transcrições**: `SessionStore` espelha transcrições, não arquivos de memória `CLAUDE.md` ou outros artefatos do diretório de trabalho. Monte um volume compartilhado ou sincronize-os separadamente.210* **Apenas transcrições**: `SessionStore` espelha transcrições, não arquivos de memória `CLAUDE.md` ou outros artefatos do diretório de trabalho. Monte um volume compartilhado ou sincronize-os separadamente.

211* **Espelho, não substituição**: o subprocess escreve no disco local primeiro, e o armazenamento recebe uma cópia de cada lote. As escritas locais permanecem autoritárias.211* **Espelho, não substituição**: o subprocess escreve no disco local primeiro, e o armazenamento recebe uma cópia de cada lote. As escritas locais permanecem autoritárias.

212* **Mensagens `mirror_error`**: se o armazenamento rejeitar ou expirar, o SDK emite uma mensagem `{ type: "system", subtype: "mirror_error" }` e continua a consulta sem tentar novamente. Alerte sobre essas se a durabilidade do armazenamento for importante.212* **Mensagens `mirror_error`**: um lote que o armazenamento rejeita é enviado até três vezes no total, com um backoff curto antes de cada tentativa; uma chamada que expira não é retentada. Se o lote ainda falhar, o SDK o descarta, emite uma mensagem `{ type: "system", subtype: "mirror_error" }` e continua a consulta. Alerte sobre essas se a durabilidade do armazenamento for importante.

213 213 

214<h3 id="observability">214<h3 id="observability">

215 Observabilidade215 Observabilidade

Details

44 </Step>44 </Step>

45</Steps>45</Steps>

46 46 

47<img src="https://mintcdn.com/claude-code/ikqp3_70mqIahteV/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=ikqp3_70mqIahteV&q=85&s=cc94220087262cd48c9b64a14c4e1c2c" alt="Diagrama do fluxo de avaliação de permissões em cinco etapas correspondendo aos passos acima: uma solicitação de ferramenta passa por hooks, regras de negação, modo de permissão, regras de permissão e canUseTool. Hooks, regras de negação e canUseTool podem rotear para Bloqueado; bypass de modo de permissão, regras de permissão e canUseTool podem rotear para Executar." width="1024" height="260" data-path="images/agent-sdk/permissions-flow.svg" />47<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Diagrama do fluxo de avaliação de permissões em seis etapas correspondendo aos passos acima: uma solicitação de ferramenta passa por hooks, regras de negação, regras de pergunta, modo de permissão, regras de permissão e canUseTool. Hooks, regras de negação e canUseTool podem rotear para Bloqueado; bypass de modo de permissão, regras de permissão e canUseTool podem rotear para Executar; regras de pergunta rotear para canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

48 48 

49Esta página se concentra em **regras de permitir e negar** e **modos de permissão**. Para os outros passos:49Esta página se concentra em **regras de permitir e negar** e **modos de permissão**. Para os outros passos:

50 50 

51* **Hooks:** execute código personalizado para permitir, negar ou modificar solicitações de ferramentas. Consulte [Controlar execução com hooks](/pt/agent-sdk/hooks).51* **Hooks:** execute código personalizado para permitir, negar ou modificar solicitações de ferramentas. Consulte [Controlar execução com hooks](/pt/agent-sdk/hooks).

52* **Callback canUseTool:** solicite aprovação dos usuários em tempo de execução. Consulte [Lidar com aprovações e entrada do usuário](/pt/agent-sdk/user-input).52* **Callback canUseTool:** solicite aprovação dos usuários em tempo de execução, quando nenhum passo anterior resolver a chamada. Consulte [Lidar com aprovações e entrada do usuário](/pt/agent-sdk/user-input).

53 53 

54<h2 id="allow-and-deny-rules">54<h2 id="allow-and-deny-rules">

55 Regras de permitir e negar55 Regras de permitir e negar


66 66 

67Regras de permitir aceitam globs de nome de ferramenta apenas após um prefixo literal `mcp__<server>__`. O segmento do servidor deve estar livre de glob para que a regra nomeie um servidor específico que você configurou: `mcp__puppeteer__*` corresponde a todas as ferramentas do servidor `puppeteer`, e `mcp__github__get_*` corresponde às suas ferramentas `get_`. Uma entrada não ancorada como `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` é ignorada com um aviso de inicialização e não auto-aprova nada.67Regras de permitir aceitam globs de nome de ferramenta apenas após um prefixo literal `mcp__<server>__`. O segmento do servidor deve estar livre de glob para que a regra nomeie um servidor específico que você configurou: `mcp__puppeteer__*` corresponde a todas as ferramentas do servidor `puppeteer`, e `mcp__github__get_*` corresponde às suas ferramentas `get_`. Uma entrada não ancorada como `allowed_tools=["*"]` ou `allowed_tools=["mcp__*"]` é ignorada com um aviso de inicialização e não auto-aprova nada.

68 68 

69<Warning>

70 **Ferramentas auto-aprovadas nunca chegam a `canUseTool`.** Uma chamada de ferramenta aprovada em qualquer etapa anterior, por `acceptEdits` ou `bypassPermissions`, ou por uma regra de permitir, ignora seu callback `canUseTool`, portanto verificações de permissão que você coloca lá são silenciosamente contornadas para essa ferramenta. A cobertura depende da forma da entrada: um nome simples como `Read` ou `mcp__github__get_issue` auto-aprova todas as chamadas para essa ferramenta, enquanto uma regra com escopo como `Bash(ls *)` auto-aprova apenas chamadas correspondentes e outras chamadas de `Bash` ainda passam para o callback. Para verificações que devem ser executadas em todas as chamadas de ferramenta, use um hook [`PreToolUse`](/pt/agent-sdk/hooks): hooks são executados antes de qualquer outra etapa, e uma negação de hook se aplica mesmo no modo `bypassPermissions`.

71</Warning>

72 

69Para um agente bloqueado, combine `allowedTools` com `permissionMode: "dontAsk"`. Ferramentas listadas são aprovadas; qualquer outra coisa é negada completamente em vez de solicitar:73Para um agente bloqueado, combine `allowedTools` com `permissionMode: "dontAsk"`. Ferramentas listadas são aprovadas; qualquer outra coisa é negada completamente em vez de solicitar:

70 74 

71```typescript theme={null}75```typescript theme={null}

Details

750 750 

751 751 

752async def main():752async def main():

753 options = ClaudeAgentOptions(753 # Não liste também as ferramentas controladas em allowed_tools: as regras de permissão aprovam chamadas antes que can_use_tool seja executado

754 can_use_tool=custom_permission_handler, allowed_tools=["Read", "Write", "Edit"]754 options = ClaudeAgentOptions(can_use_tool=custom_permission_handler)

755 )

756 755 

757 async with ClaudeSDKClient(options=options) as client:756 async with ClaudeSDKClient(options=options) as client:

758 await client.query("Update the system config file")757 await client.query("Update the system config file")


886 fork_session: bool = False885 fork_session: bool = False

887 agents: dict[str, AgentDefinition] | None = None886 agents: dict[str, AgentDefinition] | None = None

888 setting_sources: list[SettingSource] | None = None887 setting_sources: list[SettingSource] | None = None

888 skills: list[str] | Literal["all"] | None = None

889 sandbox: SandboxSettings | None = None889 sandbox: SandboxSettings | None = None

890 plugins: list[SdkPluginConfig] = field(default_factory=list)890 plugins: list[SdkPluginConfig] = field(default_factory=list)

891 max_thinking_tokens: int | None = None # Deprecated: use thinking instead891 max_thinking_tokens: int | None = None # Deprecated: use thinking instead


924| `max_buffer_size` | `int \| None` | `None` | Bytes máximos ao fazer buffer da saída padrão do CLI |924| `max_buffer_size` | `int \| None` | `None` | Bytes máximos ao fazer buffer da saída padrão do CLI |

925| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - Objeto semelhante a arquivo para saída de depuração. Use callback `stderr` em vez disso |925| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - Objeto semelhante a arquivo para saída de depuração. Use callback `stderr` em vez disso |

926| `stderr` | `Callable[[str], None] \| None` | `None` | Função de callback para saída stderr do CLI |926| `stderr` | `Callable[[str], None] \| None` | `None` | Função de callback para saída stderr do CLI |

927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Função de callback de permissão de ferramenta. Veja [Permission types](#canusetool) para detalhes |927| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Função de callback de permissão de ferramenta, invocada apenas quando o [fluxo de permissão](/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai através de um prompt. Não invocada para chamadas auto-aprovadas por `allowed_tools`, regras de permissão ou `permission_mode`. Veja [`CanUseTool`](#canusetool) para detalhes |

928| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurações de hook para interceptar eventos |928| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurações de hook para interceptar eventos |

929| `user` | `str \| None` | `None` | Identificador de usuário |929| `user` | `str \| None` | `None` | Identificador de usuário |

930| `include_partial_messages` | `bool` | `False` | Inclua eventos de streaming de mensagem parcial. Quando ativado, mensagens [`StreamEvent`](#streamevent) são produzidas |930| `include_partial_messages` | `bool` | `False` | Inclua eventos de streaming de mensagem parcial. Quando ativado, mensagens [`StreamEvent`](#streamevent) são produzidas |


960* `API_TIMEOUT_MS`: timeout por solicitação no cliente Anthropic, em milissegundos. Padrão `600000`. Aplica-se ao loop principal e a todos os subagentes.960* `API_TIMEOUT_MS`: timeout por solicitação no cliente Anthropic, em milissegundos. Padrão `600000`. Aplica-se ao loop principal e a todos os subagentes.

961* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções autônomas que precisam aguardar interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG=1` para tentar capacidade de erros indefinidamente.961* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções autônomas que precisam aguardar interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG=1` para tentar capacidade de erros indefinidamente.

962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de travamento para subagentes lançados com `run_in_background`. Padrão `600000`. Redefine em cada evento de stream; em caso de travamento, aborta o subagente, marca a tarefa como falha e expõe o erro ao pai com qualquer resultado parcial. Não se aplica a subagentes síncronos.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de travamento para subagentes lançados com `run_in_background`. Padrão `600000`. Redefine em cada evento de stream; em caso de travamento, aborta o subagente, marca a tarefa como falha e expõe o erro ao pai com qualquer resultado parcial. Não se aplica a subagentes síncronos.

963* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta a solicitação quando os cabeçalhos chegaram mas o corpo da resposta para de fazer stream. Quando `CLAUDE_ENABLE_STREAM_WATCHDOG` não está definido, o padrão é controlado pelo servidor na API Anthropic direta e desativado em outros provedores. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é fixado nesse mínimo. A solicitação abortada passa pelo caminho de tentativa normal.963* `CLAUDE_ENABLE_STREAM_WATCHDOG` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta a solicitação quando os cabeçalhos chegaram mas o corpo da resposta para de fazer stream. O watchdog está ativado por padrão para todos os provedores; defina `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desabilitá-lo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é fixado nesse mínimo. A solicitação abortada passa pelo caminho de tentativa normal.

964 964 

965<h3 id="outputformat">965<h3 id="outputformat">

966 `OutputFormat`966 `OutputFormat`


1206 "low", # Minimal thinking, fastest responses1206 "low", # Minimal thinking, fastest responses

1207 "medium", # Moderate thinking1207 "medium", # Moderate thinking

1208 "high", # Deep reasoning1208 "high", # Deep reasoning

1209 "xhigh", # Extended reasoning (Opus 4.8 and Opus 4.7; falls back to "high" on other models)1209 "xhigh", # Extended reasoning; falls back to "high" on models that don't support it

1210 "max", # Maximum effort1210 "max", # Maximum effort

1211]1211]

1212```1212```


1231 1231 

1232Retorna um `PermissionResult` (ou `PermissionResultAllow` ou `PermissionResultDeny`).1232Retorna um `PermissionResult` (ou `PermissionResultAllow` ou `PermissionResultDeny`).

1233 1233 

1234O callback é a substituição do SDK para o prompt de permissão interativo: é invocado apenas quando o [fluxo de avaliação de permissão](/pt/agent-sdk/permissions#how-permissions-are-evaluated) se resolve para um prompt. Chamadas de ferramenta já aprovadas por uma entrada `allowed_tools`, uma regra de permissão de configurações ou o modo de permissão, como `acceptEdits` ou `bypassPermissions`, nunca o invocam. Para controlar cada chamada de ferramenta, use um [hook `PreToolUse`](/pt/agent-sdk/hooks) em vez disso.

1235 

1234<h3 id="toolpermissioncontext">1236<h3 id="toolpermissioncontext">

1235 `ToolPermissionContext`1237 `ToolPermissionContext`

1236</h3>1238</h3>


1432Use com o campo `betas` em `ClaudeAgentOptions` para ativar recursos beta.1434Use com o campo `betas` em `ClaudeAgentOptions` para ativar recursos beta.

1433 1435 

1434<Warning>1436<Warning>

1435 O beta `context-1m-2025-08-07` foi descontinuado a partir de 30 de abril de 2026. Passar este cabeçalho com Claude Sonnet 4.5 ou Sonnet 4 não tem efeito, e solicitações que excedem a janela de contexto padrão de 200k-token retornam um erro. Para usar uma janela de contexto de 1M-token, migre para [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, ou Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluem contexto de 1M a preços padrão sem cabeçalho beta necessário.1437 O beta `context-1m-2025-08-07` foi descontinuado a partir de 30 de abril de 2026. Passar este cabeçalho com Claude Sonnet 4.5 ou Sonnet 4 não tem efeito, e solicitações que excedem a janela de contexto padrão de 200k-token retornam um erro. Para usar uma janela de contexto de 1M-token, migre para [Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, ou Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluem contexto de 1M a preços padrão sem cabeçalho beta necessário.

1436</Warning>1438</Warning>

1437 1439 

1438<h3 id="mcpsdkserverconfig">1440<h3 id="mcpsdkserverconfig">


2681 2683 

2682**Nome da ferramenta:** `Monitor`2684**Nome da ferramenta:** `Monitor`

2683 2685 

2684Executa um script de fundo e entrega cada linha stdout para Claude como um evento para que ele possa reagir sem polling. Monitor segue as mesmas regras de permissão que Bash. Veja a [referência da ferramenta Monitor](/pt/tools-reference#monitor-tool) para comportamento e disponibilidade de provedor.2686Executa uma fonte de fundo e entrega cada evento para Claude para que ele possa reagir sem polling: `command` executa um script e emite um evento por linha stdout, e `ws` abre um WebSocket e emite um evento por frame de texto. Forneça exatamente um de `command` ou `ws`.

2687 

2688Quando Monitor executa um comando, ele segue as mesmas regras de permissão que Bash; uma observação de WebSocket solicita aprovação separadamente. {/* min-version: 2.1.195 */}A fonte `ws` requer Claude Code v2.1.195 ou posterior. Veja a [referência da ferramenta Monitor](/pt/tools-reference#monitor-tool) para comportamento e disponibilidade de provedor.

2685 2689 

2686**Entrada:**2690**Entrada:**

2687 2691 

2688```python theme={null}2692```python theme={null}

2689{2693{

2690 "command": str, # Script de shell; cada linha stdout é um evento, exit encerra a observação2694 "command": str | None, # Script de shell; cada linha stdout é um evento, exit encerra a observação

2695 "ws": dict | None, # Fonte WebSocket: {"url": str, "protocols": list[str] | None}; cada frame de texto é um evento

2691 "description": str, # Descrição breve mostrada em notificações2696 "description": str, # Descrição breve mostrada em notificações

2692 "timeout_ms": int | None, # Interromper após este prazo (padrão 300000, máx 3600000)2697 "timeout_ms": int | None, # Interromper após este prazo (padrão 300000, máx 3600000)

2693 "persistent": bool | None, # Executar pela vida útil da sessão; parar com TaskStop2698 "persistent": bool | None, # Executar pela vida útil da sessão; parar com TaskStop

Details

41 Instale o pacote Agent SDK para sua linguagem:41 Instale o pacote Agent SDK para sua linguagem:

42 42 

43 <Tabs>43 <Tabs>

44 <Tab title="TypeScript">44 <Tab title="TypeScript (novo projeto)">

45 ```bash theme={null}45 ```bash theme={null}

46 npm init -y

47 npm pkg set type=module

46 npm install @anthropic-ai/claude-agent-sdk48 npm install @anthropic-ai/claude-agent-sdk

49 npm install --save-dev tsx

47 ```50 ```

51 

52 Definir `"type": "module"` em `package.json` permite que seu script de agente use `await` de nível superior, e [tsx](https://tsx.is) executa arquivos TypeScript diretamente.

53 </Tab>

54 

55 <Tab title="TypeScript (projeto existente)">

56 ```bash theme={null}

57 npm install @anthropic-ai/claude-agent-sdk

58 npm install --save-dev tsx

59 ```

60 

61 [tsx](https://tsx.is) executa arquivos TypeScript diretamente. Se seu projeto usa CommonJS, nomeie seu script de agente como `agent.mts` em vez de `agent.ts`. A extensão `.mts` faz o tsx tratar o arquivo como um módulo ES, para que `await` de nível superior funcione sem converter todo o seu projeto para módulos ES. Use `agent.mts` no lugar de `agent.ts` nas etapas de criação e execução mais adiante neste início rápido.

48 </Tab>62 </Tab>

49 63 

50 <Tab title="Python (uv)">64 <Tab title="Python (uv)">


85 </Step>99 </Step>

86 100 

87 <Step title="Defina sua chave de API">101 <Step title="Defina sua chave de API">

88 Obtenha uma chave de API no [Claude Console](https://platform.claude.com/), depois crie um arquivo `.env` no diretório do seu projeto:102 Obtenha uma chave de API no [Claude Console](https://platform.claude.com/), depois defina-a como uma variável de ambiente no shell onde você executará seu agente:

89 103 

104 <Tabs>

105 <Tab title="macOS / Linux">

90 ```bash theme={null}106 ```bash theme={null}

91 ANTHROPIC_API_KEY=your-api-key107 export ANTHROPIC_API_KEY=your-api-key

92 ```108 ```

109 </Tab>

110 

111 <Tab title="Windows (PowerShell)">

112 ```powershell theme={null}

113 $env:ANTHROPIC_API_KEY = "your-api-key"

114 ```

115 </Tab>

116 </Tabs>

117 

118 O SDK lê a chave do ambiente do processo que executa seu agente; ele não carrega arquivos `.env` automaticamente. Se você mantiver a chave em um arquivo `.env`, carregue-a você mesmo, por exemplo com o pacote `dotenv`, antes de chamar o SDK.

93 119 

94 O SDK também suporta autenticação através de provedores de API de terceiros:120 O SDK também suporta autenticação através de provedores de API de terceiros:

95 121 


133 Construir um agente que encontra e corrige bugs159 Construir um agente que encontra e corrige bugs

134</h2>160</h2>

135 161 

136Crie `agent.py` se estiver usando o SDK Python, ou `agent.ts` para TypeScript:162Crie `agent.py` se estiver usando o SDK Python, ou `agent.ts` para TypeScript. Use `agent.mts` em vez disso se seu projeto existente usar CommonJS:

137 163 

138<CodeGroup>164<CodeGroup>

139 ```python Python theme={null}165 ```python Python theme={null}


218 ```bash theme={null}244 ```bash theme={null}

219 npx tsx agent.ts245 npx tsx agent.ts

220 ```246 ```

247 

248 Se você nomeou seu script como `agent.mts`, execute `npx tsx agent.mts` em vez disso.

221 </Tab>249 </Tab>

222 250 

223 <Tab title="Python (uv)">251 <Tab title="Python (uv)">


235 </Tab>263 </Tab>

236</Tabs>264</Tabs>

237 265 

238Após executar, verifique `utils.py`. Você verá código defensivo tratando listas vazias e usuários nulos. Seu agente autonomamente:266Conforme funciona, o agente imprime seu raciocínio e cada ferramenta que chama, terminando com `Done: success`. Após executar, verifique `utils.py`. Você verá código defensivo tratando listas vazias e usuários nulos. Seu agente autonomamente:

239 267 

2401. **Leu** `utils.py` para entender o código2681. **Leu** `utils.py` para entender o código

2412. **Analisou** a lógica e identificou casos extremos que causariam falhas2692. **Analisou** a lógica e identificou casos extremos que causariam falhas


244Isto é o que torna o Agent SDK diferente: Claude executa ferramentas diretamente em vez de pedir que você as implemente.272Isto é o que torna o Agent SDK diferente: Claude executa ferramentas diretamente em vez de pedir que você as implemente.

245 273 

246<Note>274<Note>

247 Se você vir "API key not found", certifique-se de que definiu a variável de ambiente `ANTHROPIC_API_KEY` no seu arquivo `.env` ou ambiente shell. Veja o [guia completo de solução de problemas](/pt/troubleshooting) para mais ajuda.275 Se você vir "API key not found", certifique-se de que definiu a variável de ambiente `ANTHROPIC_API_KEY` no shell onde você executa seu agente. O SDK não carrega arquivos `.env` automaticamente. Veja o [guia completo de solução de problemas](/pt/troubleshooting) para mais ajuda.

248</Note>276</Note>

249 277 

250<h3 id="try-other-prompts">278<h3 id="try-other-prompts">


342| Modo | Comportamento | Caso de uso |370| Modo | Comportamento | Caso de uso |

343| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |371| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |

344| `acceptEdits` | Auto-aprova edições de arquivo e comandos comuns do sistema de arquivos, pede outras ações | Fluxos de trabalho de desenvolvimento confiáveis |372| `acceptEdits` | Auto-aprova edições de arquivo e comandos comuns do sistema de arquivos, pede outras ações | Fluxos de trabalho de desenvolvimento confiáveis |

373| `plan` | Executa ferramentas somente leitura; edições de arquivo nunca são auto-aprovadas e chegam ao seu callback `canUseTool` | Escopo de uma tarefa antes de aprovar a execução |

345| `dontAsk` | Nega qualquer coisa não em `allowedTools` | Agentes headless bloqueados |374| `dontAsk` | Nega qualquer coisa não em `allowedTools` | Agentes headless bloqueados |

346| `auto` (apenas TypeScript) | Um classificador de modelo aprova ou nega cada chamada de ferramenta | Agentes autônomos com proteções de segurança |375| `auto` (apenas TypeScript) | Um classificador de modelo aprova ou nega cada chamada de ferramenta | Agentes autônomos com proteções de segurança |

347| `bypassPermissions` | Executa cada ferramenta sem prompts, a menos que uma regra [`ask`](/pt/agent-sdk/permissions#how-permissions-are-evaluated) explícita corresponda | CI em sandbox, ambientes totalmente confiáveis |376| `bypassPermissions` | Executa cada ferramenta sem prompts, a menos que uma regra [`ask`](/pt/agent-sdk/permissions#how-permissions-are-evaluated) explícita corresponda | CI em sandbox, ambientes totalmente confiáveis |


349 378 

350O exemplo acima usa o modo `acceptEdits`, que auto-aprova operações de arquivo para que o agente possa executar sem prompts interativos. Se você quiser solicitar aprovação dos usuários, use o modo `default` e forneça um callback [`canUseTool`](/pt/agent-sdk/user-input) que coleta entrada do usuário. Para mais controle, veja [Permissões](/pt/agent-sdk/permissions).379O exemplo acima usa o modo `acceptEdits`, que auto-aprova operações de arquivo para que o agente possa executar sem prompts interativos. Se você quiser solicitar aprovação dos usuários, use o modo `default` e forneça um callback [`canUseTool`](/pt/agent-sdk/user-input) que coleta entrada do usuário. Para mais controle, veja [Permissões](/pt/agent-sdk/permissions).

351 380 

352<h2 id="troubleshooting">

353 Solução de problemas

354</h2>

355 

356<h3 id="api-error-thinking-type-enabled-is-not-supported-for-this-model">

357 Erro de API `thinking.type.enabled` não é suportado para este modelo

358</h3>

359 

360Claude Opus 4.7 substitui `thinking.type.enabled` por `thinking.type.adaptive`. Versões mais antigas do Agent SDK falham com o seguinte erro de API quando você seleciona `claude-opus-4-7`:

361 

362```text theme={null}

363API Error: 400 {"type":"invalid_request_error","message":"\"thinking.type.enabled\" is not supported for this model. Use \"thinking.type.adaptive\" and \"output_config.effort\" to control thinking behavior."}

364```

365 

366Atualize para Agent SDK v0.2.111 ou posterior para usar Opus 4.7.

367 

368<h2 id="next-steps">381<h2 id="next-steps">

369 Próximos passos382 Próximos passos

370</h2>383</h2>

Details

235 Escritas de espelho são best-effort235 Escritas de espelho são best-effort

236</h3>236</h3>

237 237 

238Se `append()` rejeita ou expira, o erro é registrado, uma mensagem `{ type: "system", subtype: "mirror_error" }` é emitida para o iterador, e a consulta continua. A transcrição local já é durável no disco, então uma interrupção de store não interrompe o agente ou perde dados localmente. Lotes que falham não são retentados, então monitore `mirror_error` se você precisar detectar perda de dados de store.238Se `append()` rejeita, o SDK tenta novamente o lote até mais duas vezes com um backoff curto, para no máximo três tentativas no total. Uma chamada que expira não é retentada, já que a chamada original ainda pode chegar. Se o lote ainda falhar, o erro é registrado, uma mensagem `{ type: "system", subtype: "mirror_error" }` é emitida para o iterador, o lote é descartado, e a consulta continua. A transcrição local já é durável no disco, então uma interrupção de store não interrompe o agente ou perde dados localmente. Monitore `mirror_error` se você precisar detectar perda de dados de store. Como um lote retentado pode reentrega entradas que já chegaram, deduplicar por `entry.uuid` em sua implementação de `append()`.

239 239 

240<h3 id="getsessionmessages-returns-the-post-compaction-chain">240<h3 id="getsessionmessages-returns-the-post-compaction-chain">

241 `getSessionMessages` retorna a cadeia pós-compactação241 `getSessionMessages` retorna a cadeia pós-compactação

Details

24 })) {24 })) {

25 if (message.type === "system" && message.subtype === "init") {25 if (message.type === "system" && message.subtype === "init") {

26 console.log("Available slash commands:", message.slash_commands);26 console.log("Available slash commands:", message.slash_commands);

27 // Example output: ["clear", "compact", "context", "usage"]27 // Inclui comandos integrados mais skills agrupados, por exemplo:

28 // ["clear", "compact", "context", "usage", "code-review", "verify", ...]

28 }29 }

29 }30 }

30 ```31 ```


38 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):39 async for message in query(prompt="Hello Claude", options=ClaudeAgentOptions(max_turns=1)):

39 if isinstance(message, SystemMessage) and message.subtype == "init":40 if isinstance(message, SystemMessage) and message.subtype == "init":

40 print("Available slash commands:", message.data["slash_commands"])41 print("Available slash commands:", message.data["slash_commands"])

41 # Example output: ["clear", "compact", "context", "usage"]42 # Inclui comandos integrados mais skills agrupados, por exemplo:

43 # ["clear", "compact", "context", "usage", "code-review", "verify", ...]

42 44 

43 45 

44 asyncio.run(main())46 asyncio.run(main())


49 Enviando Slash Commands51 Enviando Slash Commands

50</h2>52</h2>

51 53 

52Envie slash commands incluindo-os em sua string de prompt, assim como texto regular:54Envie slash commands incluindo-os em sua string de prompt, assim como texto regular. Comandos que atuam no histórico de conversas, como `/compact`, precisam de mensagens anteriores para funcionar, então os exemplos abaixo fazem uma pergunta primeiro e depois enviam o comando como um acompanhamento para a mesma conversa:

53 55 

54<CodeGroup>56<CodeGroup>

55 ```typescript TypeScript theme={null}57 ```typescript TypeScript theme={null}

56 import { query } from "@anthropic-ai/claude-agent-sdk";58 import { query } from "@anthropic-ai/claude-agent-sdk";

57 59 

58 // Enviar um slash command60 // Construir histórico de conversa primeiro

61 try {

59 for await (const message of query({62 for await (const message of query({

60 prompt: "/compact",63 prompt: "What does the README in this directory cover?",

61 options: { maxTurns: 1 }64 options: { maxTurns: 2 }

62 })) {65 })) {

63 if (message.type === "result" && message.subtype === "success") {66 if (message.type === "result" && message.subtype === "success") {

64 console.log("Command executed:", message.result);67 console.log(message.result);

68 }

69 }

70 } catch (error) {

71 // Uma query() de um único disparo lança após produzir um resultado de erro,

72 // então a query de acompanhamento abaixo ainda é executada.

73 console.error(`Session ended with an error: ${error}`);

74 }

75 

76 // Enviar um slash command como acompanhamento para a mesma conversa

77 for await (const message of query({

78 prompt: "/compact",

79 options: { continue: true, maxTurns: 1 }

80 })) {

81 if (message.type === "result") {

82 console.log("Command executed, result subtype:", message.subtype);

83 // Exemplo de saída: Command executed, result subtype: success

65 }84 }

66 }85 }

67 ```86 ```


72 91 

73 92 

74 async def main():93 async def main():

75 # Enviar um slash command94 # Construir histórico de conversa primeiro

76 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):95 try:

96 async for message in query(

97 prompt="What does the README in this directory cover?",

98 options=ClaudeAgentOptions(max_turns=2),

99 ):

100 if isinstance(message, ResultMessage) and message.subtype == "success":

101 print(message.result)

102 except Exception as error:

103 # Uma query() de um único disparo lança após produzir um resultado de erro,

104 # então a query de acompanhamento abaixo ainda é executada.

105 print(f"Session ended with an error: {error}")

106 

107 # Enviar um slash command como acompanhamento para a mesma conversa

108 async for message in query(

109 prompt="/compact",

110 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

111 ):

77 if isinstance(message, ResultMessage):112 if isinstance(message, ResultMessage):

78 print("Command executed:", message.result)113 print("Command executed, result subtype:", message.subtype)

114 # Exemplo de saída: Command executed, result subtype: success

79 115 

80 116 

81 asyncio.run(main())117 asyncio.run(main())

82 ```118 ```

83</CodeGroup>119</CodeGroup>

84 120 

121<Note>

122 Uma query pode terminar com um resultado de erro, por exemplo quando o limite `maxTurns` / `max_turns` é atingido antes do trabalho ser concluído. A mensagem de resultado final então tem `is_error: true` e um subtipo de erro como `error_max_turns` em vez de `success`.

123 

124 Após produzir essa mensagem de resultado final, o SDK lança um erro, porque o processo CLI sai com um código diferente de zero.

125 

126 Envolva o loop em um `try`/`catch` em TypeScript ou `try`/`except` em Python se seu comando puder atingir o limite, como mostrado em [Single Message Input](/pt/agent-sdk/streaming-vs-single-mode#single-message-input), ou defina `maxTurns` alto o suficiente para o trabalho ser concluído. Em Python, capture `Exception`: o SDK apresenta resultados de erro como uma `Exception` simples.

127</Note>

128 

85<h2 id="common-slash-commands">129<h2 id="common-slash-commands">

86 Slash Commands Comuns130 Slash Commands Comuns

87</h2>131</h2>


90 `/compact` - Compactar histórico de conversa134 `/compact` - Compactar histórico de conversa

91</h3>135</h3>

92 136 

93O comando `/compact` reduz o tamanho do seu histórico de conversa resumindo mensagens antigas enquanto preserva contexto importante:137O comando `/compact` reduz o tamanho do seu histórico de conversa resumindo mensagens antigas enquanto preserva contexto importante. A compactação precisa de uma conversa existente com pelo menos duas trocas anteriores para resumir. Este exemplo tem uma conversa primeiro, depois a compacta e lê a mensagem do sistema `compact_boundary` que relata o resultado:

94 138 

95<CodeGroup>139<CodeGroup>

96 ```typescript TypeScript theme={null}140 ```typescript TypeScript theme={null}

97 import { query } from "@anthropic-ai/claude-agent-sdk";141 import { query } from "@anthropic-ai/claude-agent-sdk";

98 142 

143 // Compaction needs existing history, so have a conversation first

144 try {

145 for await (const message of query({

146 prompt: "Explain what this project does",

147 options: { maxTurns: 2 }

148 })) {

149 if (message.type === "result" && message.subtype === "success") {

150 console.log(message.result);

151 }

152 }

153 } catch (error) {

154 // A single-shot query() throws after yielding an error result,

155 // so the follow-up query below still runs.

156 console.error(`Session ended with an error: ${error}`);

157 }

158 

159 // Compact the same conversation

99 for await (const message of query({160 for await (const message of query({

100 prompt: "/compact",161 prompt: "/compact",

101 options: { maxTurns: 1 }162 options: { continue: true, maxTurns: 1 }

102 })) {163 })) {

103 if (message.type === "system" && message.subtype === "compact_boundary") {164 if (message.type === "system" && message.subtype === "compact_boundary") {

104 console.log("Compaction completed");165 console.log("Compaction completed");

105 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);166 console.log("Pre-compaction tokens:", message.compact_metadata.pre_tokens);

106 console.log("Trigger:", message.compact_metadata.trigger);167 console.log("Trigger:", message.compact_metadata.trigger);

168 // Example output:

169 // Compaction completed

170 // Pre-compaction tokens: 1842

171 // Trigger: manual

107 }172 }

108 }173 }

109 ```174 ```

110 175 

111 ```python Python theme={null}176 ```python Python theme={null}

112 import asyncio177 import asyncio

113 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage178 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage, SystemMessage

114 179 

115 180 

116 async def main():181 async def main():

117 async for message in query(prompt="/compact", options=ClaudeAgentOptions(max_turns=1)):182 # Compaction needs existing history, so have a conversation first

183 try:

184 async for message in query(

185 prompt="Explain what this project does",

186 options=ClaudeAgentOptions(max_turns=2),

187 ):

188 if isinstance(message, ResultMessage) and message.subtype == "success":

189 print(message.result)

190 except Exception as error:

191 # A single-shot query() raises after yielding an error result,

192 # so the follow-up query below still runs.

193 print(f"Session ended with an error: {error}")

194 

195 # Compact the same conversation

196 async for message in query(

197 prompt="/compact",

198 options=ClaudeAgentOptions(continue_conversation=True, max_turns=1),

199 ):

118 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":200 if isinstance(message, SystemMessage) and message.subtype == "compact_boundary":

119 print("Compaction completed")201 print("Compaction completed")

120 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])202 print("Pre-compaction tokens:", message.data["compact_metadata"]["pre_tokens"])

121 print("Trigger:", message.data["compact_metadata"]["trigger"])203 print("Trigger:", message.data["compact_metadata"]["trigger"])

204 # Example output:

205 # Compaction completed

206 # Pre-compaction tokens: 1842

207 # Trigger: manual

122 208 

123 209 

124 asyncio.run(main())210 asyncio.run(main())

125 ```211 ```

126</CodeGroup>212</CodeGroup>

127 213 

214<Note>

215 Uma mensagem `compact_boundary` só chega quando a compactação foi executada. Sem nada para resumir, `/compact` relata o motivo em vez de gerar um erro: a execução ainda termina com um resultado `success`, nenhuma mensagem `compact_boundary` é emitida, e o texto do resultado carrega a mensagem, por exemplo `Not enough messages to compact.` após uma única troca curta. Uma chamada `query()` única e nova começa com contexto vazio, então use este padrão em uma sessão com turnos anteriores, por exemplo no [modo de entrada em streaming](/pt/agent-sdk/streaming-vs-single-mode) ou ao retomar uma sessão.

216</Note>

217 

128<h3 id="/clear-reset-conversation-context">218<h3 id="/clear-reset-conversation-context">

129 `/clear` - Redefinir contexto de conversa219 `/clear` - Redefinir contexto de conversa

130</h3>220</h3>


170 Exemplo Básico260 Exemplo Básico

171</h4>261</h4>

172 262 

173Crie `.claude/commands/refactor.md`:263Crie o diretório `.claude/commands` em seu projeto se ele não existir, então crie `.claude/commands/refactor.md`:

174 264 

175```markdown theme={null}265```markdown theme={null}

176Refactor the selected code to improve readability and maintainability.266Refactor the selected code to improve readability and maintainability.


189---279---

190allowed-tools: Read, Grep, Glob280allowed-tools: Read, Grep, Glob

191description: Run security vulnerability scan281description: Run security vulnerability scan

192model: claude-opus-4-7282model: claude-opus-4-8

193---283---

194 284 

195Analyze the codebase for security vulnerabilities including:285Analyze the codebase for security vulnerabilities including:


210 import { query } from "@anthropic-ai/claude-agent-sdk";300 import { query } from "@anthropic-ai/claude-agent-sdk";

211 301 

212 // Use a custom command302 // Use a custom command

303 try {

213 for await (const message of query({304 for await (const message of query({

214 prompt: "/refactor src/auth/login.ts",305 prompt: "/refactor src/auth/login.ts",

215 options: { maxTurns: 3 }306 options: { maxTurns: 3 }


218 console.log("Refactoring suggestions:", message.message);309 console.log("Refactoring suggestions:", message.message);

219 }310 }

220 }311 }

312 } catch (error) {

313 // A single-shot query() throws after yielding an error result,

314 // so the second query below still runs.

315 console.error(`Session ended with an error: ${error}`);

316 }

221 317 

222 // Custom commands appear in the slash_commands list318 // Custom commands appear in the slash_commands list

223 for await (const message of query({319 for await (const message of query({


225 options: { maxTurns: 1 }321 options: { maxTurns: 1 }

226 })) {322 })) {

227 if (message.type === "system" && message.subtype === "init") {323 if (message.type === "system" && message.subtype === "init") {

228 // Will include both built-in and custom commands

229 console.log("Available commands:", message.slash_commands);324 console.log("Available commands:", message.slash_commands);

230 // Example: ["clear", "compact", "context", "usage", "refactor", "security-check"]325 // Includes built-in commands plus bundled skills and your custom commands, for example:

326 // ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

231 }327 }

232 }328 }

233 ```329 ```


239 335 

240 async def main():336 async def main():

241 # Use a custom command337 # Use a custom command

338 try:

242 async for message in query(339 async for message in query(

243 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)340 prompt="/refactor src/auth/login.py", options=ClaudeAgentOptions(max_turns=3)

244 ):341 ):


246 for block in message.content:343 for block in message.content:

247 if hasattr(block, "text"):344 if hasattr(block, "text"):

248 print("Refactoring suggestions:", block.text)345 print("Refactoring suggestions:", block.text)

346 except Exception as error:

347 # A single-shot query() raises after yielding an error result,

348 # so the second query below still runs.

349 print(f"Session ended with an error: {error}")

249 350 

250 # Custom commands appear in the slash_commands list351 # Custom commands appear in the slash_commands list

251 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):352 async for message in query(prompt="Hello", options=ClaudeAgentOptions(max_turns=1)):

252 if isinstance(message, SystemMessage) and message.subtype == "init":353 if isinstance(message, SystemMessage) and message.subtype == "init":

253 # Will include both built-in and custom commands

254 print("Available commands:", message.data["slash_commands"])354 print("Available commands:", message.data["slash_commands"])

255 # Example: ["clear", "compact", "context", "usage", "refactor", "security-check"]355 # Includes built-in commands plus bundled skills and your custom commands, for example:

356 # ["clear", "compact", "context", "usage", "code-review", "verify", "refactor", "security-check", ...]

256 357 

257 358 

258 asyncio.run(main())359 asyncio.run(main())


384 Exemplos Práticos485 Exemplos Práticos

385</h3>486</h3>

386 487 

387<h4 id="code-review-command">488<h4 id="pull-request-review-command">

388 Comando de Revisão de Código489 Comando de Revisão de Pull Request

389</h4>490</h4>

390 491 

391Crie `.claude/commands/code-review.md`:492Crie `.claude/commands/review-pr.md`:

392 493 

393```markdown theme={null}494```markdown theme={null}

394---495---


414Provide specific, actionable feedback organized by priority.515Provide specific, actionable feedback organized by priority.

415```516```

416 517 

518<Note>

519 Claude Code inclui skills `code-review` e `verify` agrupados. Se você nomear um comando personalizado após um deles, por exemplo `.claude/commands/code-review.md`, seu comando sobrescreve o skill agrupado e `slash_commands` lista o nome uma vez.

520</Note>

521 

417<h4 id="test-runner-command">522<h4 id="test-runner-command">

418 Comando Test Runner523 Comando Test Runner

419</h4>524</h4>


442 import { query } from "@anthropic-ai/claude-agent-sdk";547 import { query } from "@anthropic-ai/claude-agent-sdk";

443 548 

444 // Run code review549 // Run code review

550 try {

445 for await (const message of query({551 for await (const message of query({

446 prompt: "/code-review",552 prompt: "/review-pr",

447 options: { maxTurns: 3 }553 options: { maxTurns: 3 }

448 })) {554 })) {

449 // Process review feedback555 // Process review feedback

450 }556 }

557 } catch (error) {

558 // A single-shot query() throws after yielding an error result,

559 // so the second query below still runs.

560 console.error(`Session ended with an error: ${error}`);

561 }

451 562 

452 // Run specific tests563 // Run specific tests

453 for await (const message of query({564 for await (const message of query({


465 576 

466 async def main():577 async def main():

467 # Run code review578 # Run code review

468 async for message in query(prompt="/code-review", options=ClaudeAgentOptions(max_turns=3)):579 try:

580 async for message in query(prompt="/review-pr", options=ClaudeAgentOptions(max_turns=3)):

469 # Process review feedback581 # Process review feedback

470 pass582 pass

583 except Exception as error:

584 # A single-shot query() raises after yielding an error result,

585 # so the second query below still runs.

586 print(f"Session ended with an error: {error}")

471 587 

472 # Run specific tests588 # Run specific tests

473 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):589 async for message in query(prompt="/test auth", options=ClaudeAgentOptions(max_turns=5)):

Details

71 71 

72Defina subagentes diretamente em seu código usando o parâmetro `agents`. Este exemplo cria dois subagentes: um revisor de código com acesso somente leitura e um executor de testes que pode executar comandos. Claude invoca subagentes através da ferramenta `Agent`, portanto inclua `Agent` em `allowedTools` para aprovar automaticamente invocações de subagentes sem um prompt de permissão.72Defina subagentes diretamente em seu código usando o parâmetro `agents`. Este exemplo cria dois subagentes: um revisor de código com acesso somente leitura e um executor de testes que pode executar comandos. Claude invoca subagentes através da ferramenta `Agent`, portanto inclua `Agent` em `allowedTools` para aprovar automaticamente invocações de subagentes sem um prompt de permissão.

73 73 

74A maioria dos exemplos nesta página imprime apenas o resultado final. Para confirmar que Claude delegou a um subagente em vez de responder diretamente, veja [Detectando invocação de subagente](#detecting-subagent-invocation).

75 

74<CodeGroup>76<CodeGroup>

75 ```python Python theme={null}77 ```python Python theme={null}

76 import asyncio78 import asyncio


193| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Não | Nível de esforço de raciocínio para este agente |195| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max' \| number` | Não | Nível de esforço de raciocínio para este agente |

194| `permissionMode` | `PermissionMode` | Não | Modo de permissão para execução de ferramentas dentro deste agente |196| `permissionMode` | `PermissionMode` | Não | Modo de permissão para execução de ferramentas dentro deste agente |

195 197 

196No SDK Python, esses nomes de campo usam camelCase para corresponder ao formato de transmissão. Veja a referência [`AgentDefinition`](/pt/agent-sdk/python#agentdefinition) para detalhes.198No SDK Python, nomes de campo com múltiplas palavras como `disallowedTools` e `mcpServers` mantêm sua ortografia camelCase para corresponder ao formato de transmissão em vez de seguir a convenção snake\_case do Python. Veja a referência [`AgentDefinition`](/pt/agent-sdk/python#agentdefinition) para detalhes.

197 199 

198<Note>200<Note>

199 {/* min-version: 2.1.172 */}A partir do Claude Code v2.1.172, subagentes podem gerar seus próprios subagentes. Um subagente cinco níveis abaixo do agente principal não pode gerar mais subagentes, independentemente de ser executado em primeiro plano ou em fundo. Para evitar que um subagente gere outros, omita `Agent` de seu array `tools` ou adicione-o a `disallowedTools`. Veja [subagentes aninhados](/pt/sub-agents#spawn-nested-subagents) para as regras de profundidade completas.201 {/* min-version: 2.1.172 */}A partir do Claude Code v2.1.172, subagentes podem gerar seus próprios subagentes. Um subagente cinco níveis abaixo do agente principal não pode gerar mais subagentes, independentemente de ser executado em primeiro plano ou em fundo. Para evitar que um subagente gere outros, omita `Agent` de seu array `tools` ou adicione-o a `disallowedTools`. Veja [subagentes aninhados](/pt/sub-agents#spawn-nested-subagents) para as regras de profundidade completas.


469 session_id = None471 session_id = None

470 472 

471 # First invocation - run the endpoint-finder subagent473 # First invocation - run the endpoint-finder subagent

474 try:

472 async for message in query(475 async for message in query(

473 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",476 prompt="Use the endpoint-finder agent to find all API endpoints in this codebase",

474 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),477 options=ClaudeAgentOptions(allowed_tools=["Read", "Grep", "Glob", "Agent"], agents=AGENTS),


483 # Print the final result486 # Print the final result

484 if hasattr(message, "result"):487 if hasattr(message, "result"):

485 print(message.result)488 print(message.result)

489 except Exception as error:

490 # A single-shot query() raises after yielding an error result,

491 # so session_id and agent_id have already been captured by the loop above.

492 print(f"Session ended with an error: {error}")

486 493 

487 # Second invocation - resume and ask follow-up494 # Second invocation - resume and ask follow-up

488 if agent_id and session_id:495 if agent_id and session_id:


494 ):501 ):

495 if hasattr(message, "result"):502 if hasattr(message, "result"):

496 print(message.result)503 print(message.result)

504 else:

505 print("No agentId found in the first query, so there is no subagent to resume.")

497 506 

498 507 

499 asyncio.run(main())508 asyncio.run(main())


522 let sessionId: string | undefined;531 let sessionId: string | undefined;

523 532 

524 // First invocation - run the endpoint-finder subagent533 // First invocation - run the endpoint-finder subagent

534 try {

525 for await (const message of query({535 for await (const message of query({

526 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",536 prompt: "Use the endpoint-finder agent to find all API endpoints in this codebase",

527 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }537 options: { allowedTools: ["Read", "Grep", "Glob", "Agent"], agents }


534 // Print the final result544 // Print the final result

535 if ("result" in message) console.log(message.result);545 if ("result" in message) console.log(message.result);

536 }546 }

547 } catch (error) {

548 // A single-shot query() throws after yielding an error result,

549 // so sessionId and agentId have already been captured by the loop above.

550 console.error(`Session ended with an error: ${error}`);

551 }

537 552 

538 // Second invocation - resume and ask follow-up553 // Second invocation - resume and ask follow-up

539 if (agentId && sessionId) {554 if (agentId && sessionId) {


543 })) {558 })) {

544 if ("result" in message) console.log(message.result);559 if ("result" in message) console.log(message.result);

545 }560 }

561 } else {

562 console.log("No agentId found in the first query, so there is no subagent to resume.");

546 }563 }

547 ```564 ```

548</CodeGroup>565</CodeGroup>

Details

475| `allowDangerouslySkipPermissions` | `boolean` | `false` | Ativar bypass de permissões. Obrigatório ao usar `permissionMode: 'bypassPermissions'` |475| `allowDangerouslySkipPermissions` | `boolean` | `false` | Ativar bypass de permissões. Obrigatório ao usar `permissionMode: 'bypassPermissions'` |

476| `allowedTools` | `string[]` | `[]` | Ferramentas para auto-aprovar sem solicitar. Isso não restringe Claude apenas a essas ferramentas; ferramentas não listadas caem em `permissionMode` e `canUseTool`. Use `disallowedTools` para bloquear ferramentas. Veja [Permissões](/pt/agent-sdk/permissions#allow-and-deny-rules) |476| `allowedTools` | `string[]` | `[]` | Ferramentas para auto-aprovar sem solicitar. Isso não restringe Claude apenas a essas ferramentas; ferramentas não listadas caem em `permissionMode` e `canUseTool`. Use `disallowedTools` para bloquear ferramentas. Veja [Permissões](/pt/agent-sdk/permissions#allow-and-deny-rules) |

477| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Ativar recursos beta |477| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | Ativar recursos beta |

478| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Função de permissão personalizada para uso de ferramentas |478| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | Função de permissão personalizada, invocada apenas quando o [fluxo de permissão](/pt/agent-sdk/permissions#how-permissions-are-evaluated) cai em um prompt. Não invocada para chamadas auto-aprovadas por `allowedTools`, regras de permissão, ou `permissionMode`. Veja [`CanUseTool`](#canusetool) para detalhes |

479| `continue` | `boolean` | `false` | Continuar a conversa mais recente |479| `continue` | `boolean` | `false` | Continuar a conversa mais recente |

480| `cwd` | `string` | `process.cwd()` | Diretório de trabalho atual |480| `cwd` | `string` | `process.cwd()` | Diretório de trabalho atual |

481| `debug` | `boolean` | `false` | Ativar modo de depuração para o processo Claude Code |481| `debug` | `boolean` | `false` | Ativar modo de depuração para o processo Claude Code |


553* `API_TIMEOUT_MS`: timeout por solicitação no cliente Anthropic, em milissegundos. Padrão `600000`. Aplica-se ao loop principal e a todos os subagentes.553* `API_TIMEOUT_MS`: timeout por solicitação no cliente Anthropic, em milissegundos. Padrão `600000`. Aplica-se ao loop principal e a todos os subagentes.

554* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções sem supervisão que precisam aguardar através de interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG=1` para tentar capacidade de erros indefinidamente.554* `CLAUDE_CODE_MAX_RETRIES`: máximo de tentativas de API. Padrão `10`, limitado a `15`. Cada tentativa obtém sua própria janela `API_TIMEOUT_MS`, então o tempo de parede no pior caso é aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` mais backoff. Para execuções sem supervisão que precisam aguardar através de interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG=1` para tentar capacidade de erros indefinidamente.

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de travamento para subagentes lançados com `run_in_background`. Padrão `600000`. Redefine em cada evento de stream; em caso de travamento, aborta o subagente, marca a tarefa como falhada e expõe o erro ao pai com qualquer resultado parcial. Não se aplica a subagentes síncronos.555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog de travamento para subagentes lançados com `run_in_background`. Padrão `600000`. Redefine em cada evento de stream; em caso de travamento, aborta o subagente, marca a tarefa como falhada e expõe o erro ao pai com qualquer resultado parcial. Não se aplica a subagentes síncronos.

556* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta a solicitação quando os cabeçalhos chegaram mas o corpo da resposta para de fazer stream. Quando `CLAUDE_ENABLE_STREAM_WATCHDOG` não está definido, o padrão é controlado pelo servidor na API Anthropic direta e desativado em outros provedores. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é fixado nesse mínimo. A solicitação abortada passa pelo caminho de tentativa normal.556* `CLAUDE_ENABLE_STREAM_WATCHDOG` com `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta a solicitação quando os cabeçalhos chegaram mas o corpo da resposta para de fazer stream. O watchdog está ativado por padrão para todos os provedores; defina `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desativá-lo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` padrão é `300000` e é fixado nesse mínimo. A solicitação abortada passa pelo caminho de tentativa normal.

557 557 

558<h3 id="query-object">558<h3 id="query-object">

559 Objeto `Query`559 Objeto `Query`


573 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;573 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;

574 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;574 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;

575 initializationResult(): Promise<SDKControlInitializeResponse>;575 initializationResult(): Promise<SDKControlInitializeResponse>;

576 reinitialize(): Promise<SDKControlInitializeResponse>;

576 supportedCommands(): Promise<SlashCommand[]>;577 supportedCommands(): Promise<SlashCommand[]>;

577 supportedModels(): Promise<ModelInfo[]>;578 supportedModels(): Promise<ModelInfo[]>;

578 supportedAgents(): Promise<AgentInfo[]>;579 supportedAgents(): Promise<AgentInfo[]>;


592</h4>593</h4>

593 594 

594| Método | Descrição |595| Método | Descrição |

595| :------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |596| :------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

596| `interrupt()` | Interrompe a consulta (apenas disponível em modo de entrada de transmissão) |597| `interrupt()` | Interrompe a consulta (apenas disponível em modo de entrada de transmissão) |

597| `rewindFiles(userMessageId, options?)` | Restaura arquivos para seu estado na mensagem de usuário especificada. Passe `{ dryRun: true }` para visualizar mudanças. Requer `enableFileCheckpointing: true`. Veja [File checkpointing](/pt/agent-sdk/file-checkpointing) |598| `rewindFiles(userMessageId, options?)` | Restaura arquivos para seu estado na mensagem de usuário especificada. Passe `{ dryRun: true }` para visualizar mudanças. Requer `enableFileCheckpointing: true`. Veja [File checkpointing](/pt/agent-sdk/file-checkpointing) |

598| `setPermissionMode()` | Altera o modo de permissão (apenas disponível em modo de entrada de transmissão) |599| `setPermissionMode()` | Altera o modo de permissão (apenas disponível em modo de entrada de transmissão) |


600| `setMaxThinkingTokens()` | *Descontinuado:* Use a opção `thinking` em vez disso. Altera os tokens de pensamento máximos |601| `setMaxThinkingTokens()` | *Descontinuado:* Use a opção `thinking` em vez disso. Altera os tokens de pensamento máximos |

601| `applyFlagSettings(settings)` | Mescla configurações na camada de configurações de flag da sessão em tempo de execução (apenas disponível em modo de entrada de transmissão). Veja [`applyFlagSettings()`](#applyflagsettings) |602| `applyFlagSettings(settings)` | Mescla configurações na camada de configurações de flag da sessão em tempo de execução (apenas disponível em modo de entrada de transmissão). Veja [`applyFlagSettings()`](#applyflagsettings) |

602| `initializationResult()` | Retorna o resultado de inicialização completo incluindo comandos suportados, modelos, informações de conta e configuração de estilo de saída |603| `initializationResult()` | Retorna o resultado de inicialização completo incluindo comandos suportados, modelos, informações de conta e configuração de estilo de saída |

604| `reinitialize()` | {/* min-version: 2.1.195 */}Re-envia a solicitação de controle `initialize` para a CLI em execução e retorna um resultado novo em vez do resultado de primeira conexão em cache. Use-o após uma lacuna de transporte, como reconectar a uma sessão após uma desconexão, para que solicitações de permissão pendentes alcancem seu callback `canUseTool` novamente. Torne o callback idempotente por ID de solicitação, porque uma solicitação cuja resposta foi perdida é despachada novamente. Requer Claude Code v2.1.195 ou posterior |

603| `supportedCommands()` | Retorna comandos slash disponíveis |605| `supportedCommands()` | Retorna comandos slash disponíveis |

604| `supportedModels()` | Retorna modelos disponíveis com informações de exibição |606| `supportedModels()` | Retorna modelos disponíveis com informações de exibição |

605| `supportedAgents()` | Retorna subagentes disponíveis como [`AgentInfo`](#agentinfo)`[]` |607| `supportedAgents()` | Retorna subagentes disponíveis como [`AgentInfo`](#agentinfo)`[]` |


689 691 

690Quando um cliente envia `initialize` para uma sessão que já está em execução, o wrapper de resposta de controle também carrega um array `pending_permission_requests` opcional. O campo está no wrapper de resposta em si, não na carga `SDKControlInitializeResponse` acima. Cada entrada é uma mensagem `control_request` completa com a mesma forma `{ type: "control_request", request_id, request }` que a sessão transmite para solicitações de permissão durante a execução.692Quando um cliente envia `initialize` para uma sessão que já está em execução, o wrapper de resposta de controle também carrega um array `pending_permission_requests` opcional. O campo está no wrapper de resposta em si, não na carga `SDKControlInitializeResponse` acima. Cada entrada é uma mensagem `control_request` completa com a mesma forma `{ type: "control_request", request_id, request }` que a sessão transmite para solicitações de permissão durante a execução.

691 693 

692Estas são solicitações que foram emitidas antes do cliente se conectar e ainda estão aguardando uma resposta, então leia este array para exibir prompts de permissão em voo imediatamente; eles não serão reenviados.694Estas são solicitações que foram emitidas antes do cliente se conectar e ainda estão aguardando uma resposta. O SDK o array para você e despacha cada entrada para seu callback [`canUseTool`](#canusetool), o mesmo reenvio que [`reinitialize()`](#query-object) dispara após uma lacuna de transporte. Trate IDs de solicitação repetidos idempotentemente, porque uma entrada pode repetir uma solicitação que o callback já recebeu antes da conexão cair.

693 695 

694<h3 id="agentdefinition">696<h3 id="agentdefinition">

695 `AgentDefinition`697 `AgentDefinition`


886 888 

887Tipo de função de permissão personalizada para controlar o uso de ferramentas.889Tipo de função de permissão personalizada para controlar o uso de ferramentas.

888 890 

891A função é a substituição do SDK para o prompt de permissão interativo: é invocada apenas quando o [fluxo de avaliação de permissão](/pt/agent-sdk/permissions#how-permissions-are-evaluated) se resolve em um prompt. Chamadas de ferramenta já aprovadas por uma entrada `allowedTools`, uma regra de permissão de configurações, ou o modo de permissão, como `acceptEdits` ou `bypassPermissions`, nunca a invocam. Para controlar cada chamada de ferramenta, use um [hook `PreToolUse`](/pt/agent-sdk/hooks) em vez disso.

892 

889```typescript theme={null}893```typescript theme={null}

890type CanUseTool = (894type CanUseTool = (

891 toolName: string,895 toolName: string,


1531 session_id: string;1535 session_id: string;

1532 transcript_path: string;1536 transcript_path: string;

1533 cwd: string;1537 cwd: string;

1538 prompt_id?: string;

1534 permission_mode?: string;1539 permission_mode?: string;

1535 effort?: { level: string };1540 effort?: { level: string };

1536 agent_id?: string;1541 agent_id?: string;


1538};1543};

1539```1544```

1540 1545 

1546O campo `prompt_id` é um UUID que identifica o prompt do usuário sendo processado atualmente. Ele corresponde ao [atributo `prompt.id` em eventos OpenTelemetry](/pt/monitoring-usage#event-correlation-attributes) e está ausente até a primeira entrada do usuário. Requer Claude Code v2.1.196 ou posterior.

1547 

1541<h4 id="pretoolusehookinput">1548<h4 id="pretoolusehookinput">

1542 `PreToolUseHookInput`1549 `PreToolUseHookInput`

1543</h4>1550</h4>


2037 2044 

2038```typescript theme={null}2045```typescript theme={null}

2039type MonitorInput = {2046type MonitorInput = {

2040 command: string;2047 command?: string;

2048 ws?: {

2049 url: string;

2050 protocols?: string[];

2051 };

2041 description: string;2052 description: string;

2042 timeout_ms?: number;2053 timeout_ms?: number;

2043 persistent?: boolean;2054 persistent?: boolean;

2044};2055};

2045```2056```

2046 2057 

2047Executa um script de background e entrega cada linha stdout para Claude como um evento para que possa reagir sem polling. Defina `persistent: true` para watches de comprimento de sessão, como tails de log. Monitor segue as mesmas regras de permissão que Bash. Veja a [referência da ferramenta Monitor](/pt/tools-reference#monitor-tool) para comportamento e disponibilidade de provedor.2058Executa uma fonte de background e entrega cada evento para Claude para que possa reagir sem polling: `command` executa um script e emite um evento por linha stdout, e `ws` abre um WebSocket e emite um evento por frame de texto. Forneça exatamente um de `command` ou `ws`. {/* min-version: 2.1.195 */}A fonte `ws` requer Claude Code v2.1.195 ou posterior.

2059 

2060Defina `persistent: true` para watches de comprimento de sessão, como tails de log. Quando Monitor executa um comando, ele segue as mesmas regras de permissão que Bash; um watch de WebSocket solicita aprovação separadamente. Veja a [referência da ferramenta Monitor](/pt/tools-reference#monitor-tool) para comportamento e disponibilidade de provedor.

2048 2061 

2049<h3 id="taskoutput">2062<h3 id="taskoutput">

2050 TaskOutput2063 TaskOutput


2236Executa um [workflow dinâmico](/pt/workflows): um script que orquestra muitos subagentes em background e retorna um resultado consolidado. A ferramenta `Workflow` está disponível no Agent SDK v0.3.149 e posterior. Pelo menos um de `script`, `name` ou `scriptPath` é obrigatório.2249Executa um [workflow dinâmico](/pt/workflows): um script que orquestra muitos subagentes em background e retorna um resultado consolidado. A ferramenta `Workflow` está disponível no Agent SDK v0.3.149 e posterior. Pelo menos um de `script`, `name` ou `scriptPath` é obrigatório.

2237 2250 

2238| Campo | Tipo | Descrição |2251| Campo | Tipo | Descrição |

2239| ----------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2252| ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2240| `script` | `string` | Script de workflow inline. Deve começar com `export const meta = { name, description, phases }` como um literal, seguido pelo corpo do script usando `agent()`, `parallel()`, `pipeline()` e `phase()` |2253| `script` | `string` | Script de workflow inline. Deve começar com `export const meta = { name, description }` como um literal, seguido pelo corpo do script usando `agent()`, `parallel()`, `pipeline()` e `phase()`. Um array `phases` opcional em `meta` agrupa agentes sob estágios nomeados na visualização de progresso |

2241| `name` | `string` | Nome de um workflow integrado ou um salvo em `.claude/workflows/`. Resolvido para um script |2254| `name` | `string` | Nome de um workflow integrado ou um salvo em `.claude/workflows/`. Resolvido para um script |

2242| `scriptPath` | `string` | Caminho para um arquivo de script de workflow no disco. Tem precedência sobre `script` e `name`. Cada invocação persiste seu script e retorna o caminho no resultado, para que você possa editar esse arquivo e reinvocar com o mesmo `scriptPath` para iterar |2255| `scriptPath` | `string` | Caminho para um arquivo de script de workflow no disco. Tem precedência sobre `script` e `name`. Cada invocação persiste seu script e retorna o caminho no resultado, para que você possa editar esse arquivo e reinvocar com o mesmo `scriptPath` para iterar |

2243| `args` | `unknown` | Valor de entrada exposto ao script como o `args` global, para workflows nomeados parametrizados, como uma pergunta de pesquisa ou uma lista de caminhos de arquivo. Passe arrays e objetos como valores JSON reais, não como uma string codificada em JSON |2256| `args` | `unknown` | Valor de entrada exposto ao script como o `args` global, para workflows nomeados parametrizados, como uma pergunta de pesquisa ou uma lista de caminhos de arquivo. Passe arrays e objetos como valores JSON reais, não como uma string codificada em JSON |


3098```3111```

3099 3112 

3100<Warning>3113<Warning>

3101 O beta `context-1m-2025-08-07` foi descontinuado a partir de 30 de abril de 2026. Passar este valor com Claude Sonnet 4.5 ou Sonnet 4 não tem efeito, e requisições que excedem a janela de contexto padrão de 200k-token retornam um erro. Para usar uma janela de contexto de 1M-token, migre para [Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 ou Claude Opus 4.8](https://platform.claude.com/docs/pt/about-claude/models/overview), que incluem contexto de 1M a preço padrão sem header beta necessário.3114 O beta `context-1m-2025-08-07` foi descontinuado a partir de 30 de abril de 2026. Passar este valor com Claude Sonnet 4.5 ou Sonnet 4 não tem efeito, e requisições que excedem a janela de contexto padrão de 200k-token retornam um erro. Para usar uma janela de contexto de 1M-token, migre para [Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 ou Claude Opus 4.8](https://platform.claude.com/docs/pt/about-claude/models/overview), que incluem contexto de 1M a preço padrão sem header beta necessário.

3102</Warning>3115</Warning>

3103 3116 

3104<h3 id="slashcommand">3117<h3 id="slashcommand">

Details

44 44 

45O callback é acionado em dois casos:45O callback é acionado em dois casos:

46 46 

471. **Ferramenta precisa de aprovação**: Claude quer usar uma ferramenta que não é aprovada automaticamente por [regras de permissão](/pt/agent-sdk/permissions) ou modos. Verifique `tool_name` para a ferramenta (por exemplo, `"Bash"`, `"Write"`).471. **Ferramenta precisa de aprovação**: Claude quer usar uma ferramenta que não é aprovada automaticamente por uma [regra de permissão](/pt/agent-sdk/permissions) ou modo de permissão. Verifique `tool_name` para a ferramenta (por exemplo, `"Bash"`, `"Write"`).

482. **Claude faz uma pergunta**: Claude chama a ferramenta `AskUserQuestion`. Verifique se `tool_name == "AskUserQuestion"` para tratá-la diferentemente. Se você especificar um array `tools`, inclua `AskUserQuestion` para que isso funcione. Veja [Lidar com perguntas de esclarecimento](#handle-clarifying-questions) para detalhes.482. **Claude faz uma pergunta**: Claude chama a ferramenta `AskUserQuestion`. Verifique se `tool_name == "AskUserQuestion"` para tratá-la diferentemente. Se você especificar um array `tools`, inclua `AskUserQuestion` para que isso funcione. Veja [Lidar com perguntas de esclarecimento](#handle-clarifying-questions) para detalhes.

49 49 

50<Note>50<Warning>

51 Para permitir ou negar automaticamente ferramentas sem solicitar aos usuários, use [hooks](/pt/agent-sdk/hooks) em vez disso. Os hooks são executados antes de `canUseTool` e podem permitir, negar ou modificar solicitações com base em sua própria lógica. Você também pode usar o [hook `PermissionRequest`](/pt/agent-sdk/hooks#available-hooks) para enviar notificações externas (Slack, email, push) quando Claude está aguardando aprovação.51 **O callback nunca é acionado para ferramentas aprovadas automaticamente.** Qualquer aprovação anterior no [fluxo de avaliação de permissões](/pt/agent-sdk/permissions#how-permissions-are-evaluated), uma regra de permissão ou um modo como `acceptEdits` ou `bypassPermissions`, resolve a chamada antes que `canUseTool` seja consultado. Se você listar uma ferramenta diretamente em `allowed_tools`, uma verificação `canUseTool` para essa ferramenta nunca é executada a menos que uma regra de pergunta ou modo `plan` redirecione a chamada de volta para um prompt. Para lógica que deve se aplicar a cada chamada de ferramenta, use um [hook `PreToolUse`](/pt/agent-sdk/hooks), que é executado antes do resto do fluxo e pode permitir, negar ou modificar solicitações.

52</Note>52</Warning>

53 

54Você também pode usar o [hook `PermissionRequest`](/pt/agent-sdk/hooks#available-hooks) para enviar notificações externas (Slack, email, push) quando Claude está aguardando aprovação.

53 55 

54<h2 id="handle-tool-approval-requests">56<h2 id="handle-tool-approval-requests">

55 Lidar com solicitações de aprovação de ferramentas57 Lidar com solicitações de aprovação de ferramentas

56</h2>58</h2>

57 59 

58Depois de passar um callback `canUseTool` nas opções de sua consulta, ele é acionado quando Claude quer usar uma ferramenta que não é aprovada automaticamente. Seu callback recebe três argumentos:60Depois de passar um callback `canUseTool` nas opções de sua consulta, ele é acionado quando Claude quer usar uma ferramenta que nada anterior no fluxo de permissão aprovou. Seu callback recebe três argumentos:

59 61 

60| Argumento | Descrição |62| Argumento | Descrição |

61| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |63| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

agent-view.md +66 −38

Details

76 76 

77Execute `claude agents` para abrir agent view. Ele assume o terminal completo e lista cada sessão agrupada por estado, com sessões fixadas e as que precisam de você no topo. Cada linha mostra o nome da sessão, atividade atual e há quanto tempo foi alterada pela última vez.77Execute `claude agents` para abrir agent view. Ele assume o terminal completo e lista cada sessão agrupada por estado, com sessões fixadas e as que precisam de você no topo. Cada linha mostra o nome da sessão, atividade atual e há quanto tempo foi alterada pela última vez.

78 78 

79Por padrão, a lista mostra cada sessão em background que você iniciou, em todos os seus projetos. Uma sessão funcionando em um repositório e outra em um worktree diferente aparecem aqui, independentemente de qual diretório você abriu agent view. Para limitar a lista a um projeto, passe `--cwd` (requer Claude Code v2.1.141 ou posterior):79Por padrão, a lista mostra cada sessão em background que você iniciou, em todos os seus projetos. Uma sessão funcionando em um repositório e outra em um worktree diferente aparecem aqui, independentemente de qual diretório você abriu agent view. Para limitar a lista a um projeto, passe `--cwd`:

80 80 

81```bash theme={null}81```bash theme={null}

82claude agents --cwd ~/projects/my-app82claude agents --cwd ~/projects/my-app


143 143 

144O resumo de uma linha em cada linha é gerado por um [modelo Haiku-class](/pt/model-config) para que a linha possa informar o que a sessão está fazendo, o que precisa ou o que produziu sem abrir o transcript. Enquanto uma sessão está ativamente funcionando, o resumo é atualizado no máximo uma vez a cada 15 segundos, mais uma vez quando cada turno termina.144O resumo de uma linha em cada linha é gerado por um [modelo Haiku-class](/pt/model-config) para que a linha possa informar o que a sessão está fazendo, o que precisa ou o que produziu sem abrir o transcript. Enquanto uma sessão está ativamente funcionando, o resumo é atualizado no máximo uma vez a cada 15 segundos, mais uma vez quando cada turno termina.

145 145 

146A partir da v2.1.161, quando a sessão está executando dois ou mais itens de trabalho paralelos, como subagents, comandos shell em background ou monitores, uma contagem `done/total` como `2/5` aparece antes do texto do resumo.146Quando a sessão está executando dois ou mais itens de trabalho paralelos, como subagents, comandos shell em background ou monitores, uma contagem `done/total` como `2/5` aparece antes do texto do resumo.

147 147 

148Cada atualização é uma solicitação curta de Haiku-class através de seu provedor normal, cobrada e tratada sob os mesmos [termos de uso de dados](/pt/data-usage) que a sessão em si. Em provedores de terceiros como Bedrock, Vertex AI, Microsoft Foundry e gateways personalizados, a solicitação volta para o modelo principal da sessão quando nenhum modelo Haiku está configurado. Defina [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/pt/model-config#environment-variables) para escolher o modelo para esses resumos nesses provedores.148Cada atualização é uma solicitação curta de Haiku-class através de seu provedor normal, cobrada e tratada sob os mesmos [termos de uso de dados](/pt/data-usage) que a sessão em si. Em provedores de terceiros como Bedrock, Vertex AI, Microsoft Foundry e gateways personalizados, a solicitação volta para o modelo principal da sessão quando nenhum modelo Haiku está configurado. Defina [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](/pt/model-config#environment-variables) para escolher o modelo para esses resumos nesses provedores.

149 149 


172 172 

173Pressione `Space` em uma linha selecionada para abrir o painel de espiada. Ele mostra o que a sessão precisa de você, sua saída mais recente e quaisquer pull requests que abriu. Na maioria das vezes, isso é suficiente e você nunca precisa abrir o transcript completo.173Pressione `Space` em uma linha selecionada para abrir o painel de espiada. Ele mostra o que a sessão precisa de você, sua saída mais recente e quaisquer pull requests que abriu. Na maioria das vezes, isso é suficiente e você nunca precisa abrir o transcript completo.

174 174 

175A partir da v2.1.161, quando a sessão está executando itens de trabalho paralelos, o painel também nomeia o que está em execução há mais tempo e há quanto tempo está acontecendo, para que você possa ver o que a sessão está aguardando sem anexar.175Quando a sessão está executando itens de trabalho paralelos, o painel também nomeia o que está em execução há mais tempo e há quanto tempo está acontecendo, para que você possa ver o que a sessão está aguardando sem anexar.

176 176 

177Digite uma resposta no painel de espiada e pressione `Enter` para enviá-la para essa sessão. Quando a sessão está fazendo uma pergunta de múltipla escolha, o painel de espiada mostra as opções e você pode pressionar uma tecla numérica para escolher uma. Para outras sessões bloqueadas, pressione `Tab` para preencher a entrada com uma resposta sugerida que você pode editar antes de enviar. Prefixe uma resposta com `!` para enviar um comando Bash em vez disso.177Digite uma resposta no painel de espiada e pressione `Enter` para enviá-la para essa sessão. Quando a sessão está fazendo uma pergunta de múltipla escolha, o painel de espiada mostra as opções e você pode pressionar uma tecla numérica para escolher uma. Para outras sessões bloqueadas, pressione `Tab` para preencher a entrada com uma resposta sugerida que você pode editar antes de enviar. Prefixe uma resposta com `!` para enviar um comando Bash em vez disso.

178 178 

179A partir da v2.1.145, com [voice dictation](/pt/voice-dictation) ativada, segure ou toque sua tecla push-to-talk enquanto a entrada de resposta está focada para ditar uma resposta em vez de digitá-la. O mesmo funciona na entrada de despacho na parte inferior de agent view.179Com [voice dictation](/pt/voice-dictation) ativada, segure ou toque sua tecla push-to-talk enquanto a entrada de resposta está focada para ditar uma resposta em vez de digitá-la. O mesmo funciona na entrada de despacho na parte inferior de agent view.

180 180 

181Use `↑` e `↓` para espreitar sessões adjacentes sem fechar o painel, ou `→` para anexar.181Use `↑` e `↓` para espreitar sessões adjacentes sem fechar o painel, ou `→` para anexar.

182 182 


196 196 

197Desanexar nunca interrompe uma sessão em background: `←`, `Ctrl+Z`, `/exit` e duplo `Ctrl+C` ou duplo `Ctrl+D` a deixam em execução. Para encerrar uma sessão de dentro dela, execute `/stop`.197Desanexar nunca interrompe uma sessão em background: `←`, `Ctrl+Z`, `/exit` e duplo `Ctrl+C` ou duplo `Ctrl+D` a deixam em execução. Para encerrar uma sessão de dentro dela, execute `/stop`.

198 198 

199Pressionar `←` em um prompt vazio funciona de qualquer sessão Claude Code, não apenas as que você anexou a partir de agent view. Coloca a sessão atual em background e abre agent view com essa linha selecionada, para que você possa alternar sessões sem sair do terminal. A linha é criada mesmo a partir de uma sessão nova sem histórico de conversa, então `→` retorna a ela. Quando essa linha é a única, agent view mostra uma dica de integração abaixo dela. Você pode desativar este atalho em `/config` (a configuração `leftArrowOpensAgents`).199Em uma sessão em execução em primeiro plano, uma que você iniciou no terminal em vez de anexar a partir de agent view, pressionar `←` em um prompt vazio a coloca em background e abre agent view com essa linha selecionada, para que você possa alternar sessões sem sair do terminal. O mesmo pressionamento único desanexa uma sessão anexada.

200 

201Se uma ferramenta está em execução quando você pressiona `←`, Claude Code aguarda até cerca de dez segundos para que ela termine antes de colocar em background, e a resposta continua na sessão em background. Pressione `←` novamente para colocar em background imediatamente em vez de aguardar. Quando o trabalho em andamento não pode ser transferido para a sessão em background, o diálogo `Background this session?` aparece primeiro, o mesmo que com [`/background`](#from-inside-a-session).

202 

203A linha é criada mesmo a partir de uma sessão nova sem histórico de conversa, então `→` retorna a ela. Quando essa linha é a única, agent view mostra uma dica de integração abaixo dela.

204 

205Você pode desativar este atalho com a configuração `leftArrowOpensAgents` em `/config`.

200 206 

201<h3 id="organize-the-list">207<h3 id="organize-the-list">

202 Organizar a lista208 Organizar a lista

203</h3>209</h3>

204 210 

205Agent view agrupa sessões para que as que precisam de entrada estejam no topo, com `Ready for review` e `Needs input` acima de `Working` e `Completed`. Esses nomes de grupo não mapeiam um-para-um para os [estados](#read-session-state) acima: uma sessão se move para `Ready for review` quando tem um pull request aberto, e `Completed` coleta sessões concluídas, falhadas e interrompidas juntas. Pressione `Ctrl+S` para agrupar por diretório em vez disso. Sua escolha persiste entre execuções.211Agent view agrupa sessões para que as que precisam de entrada estejam no topo, com `Ready for review` e `Needs input` acima de `Working` e `Completed`. Esses nomes de grupo não mapeiam um-para-um para os [estados](#read-session-state) acima: uma sessão se move para `Ready for review` quando tem um pull request aberto, e `Completed` coleta sessões concluídas, falhadas e interrompidas juntas.

212 

213Pressione `Ctrl+S` para agrupar por diretório em vez disso. Sua escolha persiste entre execuções.

206 214 

207Dentro de um grupo:215Dentro de um grupo:

208 216 


215 223 

216Deletar remove a sessão de agent view. Se Claude [criou um worktree](#how-file-edits-are-isolated) para a sessão, deletar remove esse worktree também, incluindo quaisquer alterações não confirmadas nele, então faça push ou commit do trabalho que você quer manter primeiro. Um worktree que você criou você mesmo e iniciou a sessão dentro é deixado no lugar. O transcript de conversa fica em sua máquina local e permanece disponível através de `claude --resume`.224Deletar remove a sessão de agent view. Se Claude [criou um worktree](#how-file-edits-are-isolated) para a sessão, deletar remove esse worktree também, incluindo quaisquer alterações não confirmadas nele, então faça push ou commit do trabalho que você quer manter primeiro. Um worktree que você criou você mesmo e iniciou a sessão dentro é deixado no lugar. O transcript de conversa fica em sua máquina local e permanece disponível através de `claude --resume`.

217 225 

218Sessões concluídas mais antigas se dobram em uma linha `… N more` para manter a lista curta. Falhas e sessões com um pull request aberto sempre permanecem visíveis.226Sessões concluídas que não cabem na tela se dobram em uma linha `… N more`. Falhas e sessões com um pull request aberto sempre permanecem visíveis. O grupo `Completed` preenche o espaço vertical deixado após os grupos ativos, e em um terminal curto o cabeçalho se compacta para uma única linha de resumo para que sessões que estão funcionando ou precisam de entrada permaneçam visíveis.

219 227 

220<h3 id="filter-sessions">228<h3 id="filter-sessions">

221 Filtrar sessões229 Filtrar sessões


305 313 

306Execute `/background` ou seu alias `/bg` para mover a conversa atual para uma sessão em background. Passe um prompt como `/bg run the test suite and fix any failures` para dar uma instrução adicional primeiro. Se Claude estiver respondendo quando você executar `/bg`, a resposta continua na sessão em background.314Execute `/background` ou seu alias `/bg` para mover a conversa atual para uma sessão em background. Passe um prompt como `/bg run the test suite and fix any failures` para dar uma instrução adicional primeiro. Se Claude estiver respondendo quando você executar `/bg`, a resposta continua na sessão em background.

307 315 

308Colocar em background a partir de uma sessão interativa inicia um novo processo que retoma da conversa salva, portanto executar subagents, [monitors](/pt/tools-reference#monitor-tool) e comandos em background não são transferidos para ele. Claude pede que você confirme antes de colocar em background quando algum deles está em execução. Uma vez em background, a sessão pode iniciar novos subagents, monitors e comandos em background, e esses continuam em execução em desanexações e reanexações posteriores.316Colocar em background a partir de uma sessão interativa inicia um novo processo que retoma da conversa salva, e o trabalho em andamento se move para ele: comandos shell em background em execução, subagents em background, workflows dinâmicos e tarefas agendadas que você criou com [`/loop`](/pt/scheduled-tasks) são transferidos para a sessão em background e continuam em execução . Um subagent se move junto com tudo que iniciou, portanto é transferido apenas quando todo esse trabalho pode se mover também, incluindo no Windows. Para parar o trabalho em andamento em vez de transferi-lo, defina a variável de ambiente [`CLAUDE_DISABLE_ADOPT=1`](/pt/env-vars#variables); Claude Code então pede que você confirme antes de colocar em background.

317 

318Trabalho que não pode ser transferido, como um [monitor](/pt/tools-reference#monitor-tool) em execução, é interrompido. Um subagent em background que possui um monitor é interrompido junto com ele. Quando algum desse trabalho está em execução, Claude Code mostra um diálogo `Background this session?` para que você possa confirmar antes de ser interrompido.

319 

320Uma vez em background, a sessão pode iniciar novos subagents, monitors e comandos em background, e esses continuam em execução em desanexações e reanexações posteriores.

309 321 

310As flags de configuração do lançamento original são transferidas para a sessão colocada em background, portanto seus servidores MCP, settings e modelo de fallback permanecem em vigor:322As flags de configuração do lançamento original são transferidas para a sessão colocada em background, portanto seus servidores MCP, settings e modelo de fallback permanecem em vigor:

311 323 


394}406}

395```407```

396 408 

397<Note>

398 A configuração `worktree.bgIsolation` requer Claude Code v2.1.143 ou posterior.

399</Note>

400 

401Fora de um repositório git, as sessões escrevem no diretório de trabalho diretamente e não são isoladas uma da outra, portanto evite despachar sessões paralelas que editam os mesmos arquivos. Se você usar um sistema de controle de versão diferente, configure um hook [`WorktreeCreate`](/pt/worktrees#non-git-version-control) e Claude isola edições da mesma forma que faz para git.409Fora de um repositório git, as sessões escrevem no diretório de trabalho diretamente e não são isoladas uma da outra, portanto evite despachar sessões paralelas que editam os mesmos arquivos. Se você usar um sistema de controle de versão diferente, configure um hook [`WorktreeCreate`](/pt/worktrees#non-git-version-control) e Claude isola edições da mesma forma que faz para git.

402 410 

403Deletar uma sessão em agent view (`Ctrl+X` duas vezes) remove um worktree que Claude criou para ela, incluindo quaisquer alterações não confirmadas, portanto mescle ou envie as alterações que você quer manter primeiro. Deletar do shell com [`claude rm`](#manage-sessions-from-the-shell) mantém um worktree que tem alterações não confirmadas e imprime seu caminho para que você possa limpá-lo você mesmo. Um worktree que você criou você mesmo e iniciou a sessão dentro é deixado no lugar de qualquer forma.411Deletar uma sessão em agent view com `Ctrl+X` duas vezes remove um worktree que Claude criou para ela, incluindo quaisquer alterações não confirmadas, portanto mescle ou envie as alterações que você quer manter primeiro. Deletar do shell com [`claude rm`](#manage-sessions-from-the-shell) mantém um worktree que tem alterações não confirmadas e imprime seu caminho para que você possa limpá-lo você mesmo. Um worktree que você criou você mesmo e iniciou a sessão dentro é deixado no lugar de qualquer forma.

404 412 

405Para encontrar o caminho do worktree de uma sessão, espreite a sessão ou anexe e verifique seu diretório de trabalho.413Para encontrar o caminho do worktree de uma sessão, espreite a sessão ou anexe e verifique seu diretório de trabalho.

406 414 


410 Set the model418 Set the model

411</h3>419</h3>

412 420 

413O nome do modelo mostrado no cabeçalho de agent view é o padrão de despacho. Novas sessões que você inicia a partir da entrada usam este modelo, que vem da configuração [`model`](/pt/settings#available-settings) em suas settings de usuário. Defina-o selecionando um modelo no seletor [`/model`](/pt/model-config), ou edite a configuração diretamente. Para substituir para toda a sessão de agent view, passe `--model` ao abrir agent view. Veja [Permission mode, model, and effort](#permission-mode-model-and-effort).421O nome do modelo mostrado no cabeçalho de agent view é o padrão de despacho. Novas sessões que você inicia a partir da entrada usam este modelo, que vem da configuração [`model`](/pt/settings#available-settings) em suas settings de usuário. Defina-o selecionando um modelo no seletor [`/model`](/pt/model-config), ou edite a configuração diretamente.

422 

423Para substituir o padrão de despacho para toda a sessão de agent view, passe `--model` ao abrir agent view. Veja [Permission mode, model, and effort](#permission-mode-model-and-effort).

414 424 

415Para alterar o padrão de despacho de dentro de agent view, digite `/model` seguido de um nome de modelo na entrada de despacho e pressione `Enter`. O cabeçalho é atualizado para mostrar esse modelo com um marcador `(session)`, e as sessões que você despacha depois usam-no. Digite `/model default` para limpar a substituição e retornar ao padrão de despacho. Essa substituição dura o resto da execução atual de `claude agents`, não escreve no seu arquivo de settings e requer Claude Code v2.1.172 ou posterior. {/* min-version: 2.1.172 */} O exemplo a seguir despacha uma sessão em Opus e a próxima em Sonnet:425Para alterar o padrão de despacho de dentro de agent view, digite `/model` seguido de um nome de modelo na entrada de despacho e pressione `Enter`. O cabeçalho é atualizado para mostrar esse modelo com um marcador `(session)`, e as sessões que você despacha depois usam-no. Digite `/model default` para limpar a substituição e retornar ao padrão de despacho. Essa substituição dura o resto da execução atual de `claude agents` e não escreve no seu arquivo de settings. O exemplo a seguir despacha uma sessão em Opus e a próxima em Sonnet:

416 426 

417```text theme={null}427```text theme={null}

418/model opus428/model opus


449 459 

450`claude agents` também aceita `--dangerously-skip-permissions` como abreviação para `--permission-mode bypassPermissions`, e `--allow-dangerously-skip-permissions` para tornar `bypassPermissions` disponível no ciclo `Shift+Tab` de cada sessão despachada sem iniciar naquele modo. Ambos correspondem aos [flags CLI de nível superior](/pt/cli-reference).460`claude agents` também aceita `--dangerously-skip-permissions` como abreviação para `--permission-mode bypassPermissions`, e `--allow-dangerously-skip-permissions` para tornar `bypassPermissions` disponível no ciclo `Shift+Tab` de cada sessão despachada sem iniciar naquele modo. Ambos correspondem aos [flags CLI de nível superior](/pt/cli-reference).

451 461 

452Essas flags foram adicionadas em diferentes versões. Versões anteriores as rejeitam com um erro de opção desconhecida.

453 

454| Flag ou configuração | Versão mínima |

455| :--------------------------------------------------------------------------- | :------------------------------------ |

456| `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions` | v2.1.142 {/* min-version: 2.1.142 */} |

457| `--allow-dangerously-skip-permissions` | v2.1.143 {/* min-version: 2.1.143 */} |

458| `--agent` e honrando a configuração `agent` para sessões despachadas | v2.1.157 {/* min-version: 2.1.157 */} |

459 

460Antes de v2.1.157, agent view ignora a configuração `agent` e despacha o agente `claude` integrado.

461 

462Os padrões ativos aparecem no rodapé abaixo da entrada de despacho.462Os padrões ativos aparecem no rodapé abaixo da entrada de despacho.

463 463 

464Sem essas flags, a sessão usa o `defaultMode` das settings daquele diretório ou o `permissionMode` do [frontmatter do subagent despachado](/pt/sub-agents#supported-frontmatter-fields), e o modelo mostrado no cabeçalho de agent view.464Sem essas flags, a sessão usa o `defaultMode` das settings daquele diretório ou o `permissionMode` do [frontmatter do subagent despachado](/pt/sub-agents#supported-frontmatter-fields), e o modelo mostrado no cabeçalho de agent view.

465 465 

466Usar `bypassPermissions` ou `auto` é recusado até que você tenha aceitado esse modo executando `claude` com ele uma vez interativamente, já que esses modos permitem que uma sessão que você não está observando aja sem aprovação. O mesmo se aplica se você passar o modo para `claude agents` ou para `claude --bg --permission-mode`.466Usar `bypassPermissions` com `claude --bg --permission-mode` é recusado até que você tenha aceitado o aviso de bypass executando `claude --dangerously-skip-permissions` uma vez interativamente, já que esse modo permite que uma sessão que você não está observando aja sem aprovação. Passar `--dangerously-skip-permissions` ou `--permission-mode bypassPermissions` para `claude agents` mostra o mesmo aviso quando você não o aceitou antes, e aceitar aplica `bypassPermissions` às sessões que você inicia a partir da visualização. Passar `--allow-dangerously-skip-permissions` mostra o mesmo aviso também, e aceitar torna `bypassPermissions` disponível no ciclo `Shift+Tab` dessas sessões sem iniciá-las nele.

467 467 

468<h3 id="settings-plugins-and-mcp-servers">468<h3 id="settings-plugins-and-mcp-servers">

469 Settings, plugins, and MCP servers469 Settings, plugins, and MCP servers

470</h3>470</h3>

471 471 

472Agent view aceita os mesmos flags de configuração que `claude` para carregar settings, plugins, servidores MCP e diretórios adicionais. Esses flags requerem Claude Code v2.1.142 ou posterior. Cada flag se aplica a agent view em si e é passado para cada sessão que você despacha a partir dele, portanto um plugin ou servidor MCP que você carrega desta forma está disponível nessas sessões também.472Agent view aceita os mesmos flags de configuração que `claude` para carregar settings, plugins, servidores MCP e diretórios adicionais. Cada flag se aplica a agent view em si e é passado para cada sessão que você despacha a partir dele, portanto um plugin ou servidor MCP que você carrega desta forma está disponível nessas sessões também.

473 473 

474| Flag | Efeito |474| Flag | Efeito |

475| :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- |475| :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- |


494Cada sessão em background tem um ID curto que você pode usar do shell. O ID é impresso quando você inicia uma sessão com `claude --bg`, e o ID de cada sessão é seu nome de diretório em `~/.claude/jobs/`. Esses comandos são úteis para scripts ou quando você não quer abrir agent view.494Cada sessão em background tem um ID curto que você pode usar do shell. O ID é impresso quando você inicia uma sessão com `claude --bg`, e o ID de cada sessão é seu nome de diretório em `~/.claude/jobs/`. Esses comandos são úteis para scripts ou quando você não quer abrir agent view.

495 495 

496| Comando | Propósito |496| Comando | Propósito |

497| :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |497| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

498| `claude agents` | Abrir agent view |498| `claude agents` | Abrir agent view |

499| `claude agents --cwd <path>` | Abrir agent view com escopo para sessões iniciadas em `<path>` |499| `claude agents --cwd <path>` | Abrir agent view com escopo para sessões iniciadas em `<path>` |

500| `claude agents --json` | Imprimir sessões ativas como um array JSON e sair: cada sessão ativa, mais sessões em background que ainda estão funcionando ou bloqueadas mesmo quando seu processo saiu. Adicione `--all` para também incluir sessões em background concluídas. Cada entrada tem `cwd`, `kind` e `startedAt`. Entradas em background também têm `id`, utilizável com `claude attach`/`logs`/`stop`, e `state`: um de `working`, `blocked`, `done`, `failed` ou `stopped`. `pid` e `status` estão presentes apenas enquanto o processo está ativo, mais `waitingFor` quando status é `waiting`, que diz no que a sessão está bloqueada, como `permission prompt` ou `input needed`; `sessionId` e `name` aparecem quando definidos. Combine com `--cwd <path>` para filtrar |500| `claude agents --json` | Imprimir sessões ativas como um array JSON e sair: cada sessão ativa, mais sessões em background que ainda estão funcionando ou bloqueadas mesmo quando seu processo saiu. Adicione `--all` para também incluir sessões em background concluídas. Cada entrada tem `cwd`, `kind` e `startedAt`. Entradas em background também têm `id`, utilizável com `claude attach`/`logs`/`stop`, e `state`: um de `working`, `blocked`, `done`, `failed` ou `stopped`. `pid` e `status` estão presentes apenas enquanto o processo está ativo, mais `waitingFor` quando status é `waiting`, que diz no que a sessão está bloqueada, como `permission prompt` ou `input needed`; `sessionId` e `name` aparecem quando definidos. Uma entrada interativa que você nunca nomeou carrega um `name` padrão construído a partir do nome do diretório de trabalho mais um sufixo de dois caracteres, como `my-app-3f`. Combine com `--cwd <path>` para filtrar |

501| `claude attach <id>` | Anexar a uma sessão neste terminal |501| `claude attach <id>` | Anexar a uma sessão neste terminal |

502| `claude logs <id>` | Imprimir a saída recente da sessão |502| `claude logs <id>` | Imprimir a saída recente da sessão |

503| `claude stop <id>` | Interromper uma sessão. Também aceita `claude kill` |503| `claude stop <id>` | Interromper uma sessão. Também aceita `claude kill` |


523 523 

524O supervisor e suas sessões se autenticam com as mesmas credenciais armazenadas que suas sessões interativas e não fazem conexões de rede adicionais além da API do modelo. Variáveis de seleção de provedor, como `CLAUDE_CODE_USE_BEDROCK` e aliases `ANTHROPIC_DEFAULT_*_MODEL`, são lidas do shell que fez dispatch de cada sessão e são aplicadas ao seu worker.524O supervisor e suas sessões se autenticam com as mesmas credenciais armazenadas que suas sessões interativas e não fazem conexões de rede adicionais além da API do modelo. Variáveis de seleção de provedor, como `CLAUDE_CODE_USE_BEDROCK` e aliases `ANTHROPIC_DEFAULT_*_MODEL`, são lidas do shell que fez dispatch de cada sessão e são aplicadas ao seu worker.

525 525 

526{/* min-version: 2.1.174 */}Uma sessão em background não herda variáveis de endpoint de gateway, como `ANTHROPIC_BASE_URL`, as variáveis de URL base equivalentes do Bedrock, Vertex e Foundry, ou um `ANTHROPIC_AUTH_TOKEN` pareado do shell que iniciou o supervisor ou do shell que fez dispatch. A sessão usa suas credenciais armazenadas e quaisquer valores `env` no [settings](/pt/settings) do diretório do projeto. Para apontar sessões em background em um projeto para um [gateway LLM](/pt/llm-gateway), defina `ANTHROPIC_BASE_URL` no bloco `env` do `settings.json` do `.claude/` desse projeto em vez de exportá-lo no seu shell. Antes da v2.1.174, uma sessão em background herdava essas variáveis do shell de inicialização do supervisor, então poderia usar o gateway que você tinha configurado naquele shell em vez do configurado para o diretório do projeto.526Uma sessão em background não herda variáveis de endpoint de gateway, como `ANTHROPIC_BASE_URL`, as variáveis de URL base equivalentes do Bedrock, Vertex e Foundry, ou um `ANTHROPIC_AUTH_TOKEN` pareado do shell que iniciou o supervisor ou do shell que fez dispatch. A sessão usa suas credenciais armazenadas e quaisquer valores `env` no [settings](/pt/settings) do diretório do projeto. Para apontar sessões em background em um projeto para um [gateway LLM](/pt/llm-gateway), defina `ANTHROPIC_BASE_URL` no bloco `env` do `settings.json` do `.claude/` desse projeto em vez de exportá-lo no seu shell.

527 527 

528Cada sessão em background é seu próprio processo Claude Code, gerenciado pelo supervisor em vez de estar vinculado ao seu terminal. Uma sessão que está ativamente funcionando, aguardando sua entrada ou tem um terminal anexado mantém seu processo em execução. Um comando de shell em background em execução, subagente, workflow dinâmico ou monitor conta como trabalho ativo, então um processo de longa duração, como um servidor de desenvolvimento, mantém a sessão ativa.528Cada sessão em background é seu próprio processo Claude Code, gerenciado pelo supervisor em vez de estar vinculado ao seu terminal. Uma sessão que está ativamente funcionando, aguardando sua entrada ou tem um terminal anexado mantém seu processo em execução. Um comando de shell em background em execução, subagent, workflow dinâmico ou monitor conta como trabalho ativo, então um processo de longa duração, como um servidor de desenvolvimento, mantém a sessão ativa.

529 529 

530Depois que uma sessão termina e fica desanexada por cerca de uma hora, o supervisor interrompe seu processo para liberar recursos. Uma sessão que você [fixou](#organize-the-list) com `Ctrl+T` é isenta e mantém seu processo em execução enquanto inativo. O transcript e o estado permanecem no disco de qualquer forma, e na próxima vez que você anexar, espreitar ou responder a uma sessão parada, o supervisor inicia um novo processo de onde parou. Quando cada sessão terminou e nenhum terminal está conectado, o supervisor em si sai e é iniciado novamente na próxima vez que você precisar dele.530Depois que uma sessão termina e fica desanexada por cerca de uma hora, o supervisor interrompe seu processo para liberar recursos. Uma sessão que você [fixou](#organize-the-list) com `Ctrl+T` é isenta e mantém seu processo em execução enquanto inativo. O transcript e o estado permanecem no disco de qualquer forma, e na próxima vez que você anexar, espreitar ou responder a uma sessão parada, o supervisor inicia um novo processo de onde parou. Quando cada sessão terminou e nenhum terminal está conectado, o supervisor em si sai e é iniciado novamente na próxima vez que você precisar dele.

531 531 

532Comandos shell em background e workflows dinâmicos que a sessão iniciou continuam em execução quando seu processo é interrompido, reiniciado ou atualizado, incluindo no Windows. O próximo processo iniciado para essa sessão os retoma, um comando shell que terminou no meio é relatado como concluído com sua saída, e um workflow retoma de onde parou. Comandos shell iniciados por um subagent e [monitors](/pt/tools-reference#monitor-tool) em execução ainda param com o processo, e deletar a sessão interrompe tudo que ela entregou. Para parar comandos shell em background e workflows com o processo também, defina a variável de ambiente [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/pt/env-vars#variables) como `1`.

533 

534Se uma sessão reiniciada volta mostrando apenas seu prompt original porque Claude Code leu mal seu transcript como vazio, o transcript de conversa é renomeado com um sufixo `.orphaned-` em vez de ser deletado, portanto permanece em sua máquina.

535 

532Uma linha vazia deixada ao pressionar `←` que nunca recebeu um prompt é removida completamente após cerca de cinco minutos para que a lista se limpe por conta própria. Sessões iniciadas com `claude --bg` e sessões aguardando um prompt de configuração, como um diálogo de confiança, não são removidas dessa forma.536Uma linha vazia deixada ao pressionar `←` que nunca recebeu um prompt é removida completamente após cerca de cinco minutos para que a lista se limpe por conta própria. Sessões iniciadas com `claude --bg` e sessões aguardando um prompt de configuração, como um diálogo de confiança, não são removidas dessa forma.

533 537 

534Quando o host fica com pouca memória, o supervisor interrompe as sessões inativas não fixadas primeiro e interrompe as fixadas inativas apenas se isso não liberou nada.538Quando o host fica com pouca memória, o supervisor interrompe as sessões inativas não fixadas primeiro e interrompe as fixadas inativas apenas se isso não liberou nada.


554 558 

555O comando também avisa quando o supervisor em execução está em uma versão diferente do `claude` que você invocou, o que acontece após uma atualização que o supervisor ainda não reiniciou. O aviso mostra ambas as versões e diz para você executar `claude daemon stop --any` para pegar a nova versão. Quando Claude Code é instalado como um serviço do SO, o comando sugerido é `claude daemon stop` sem a flag.559O comando também avisa quando o supervisor em execução está em uma versão diferente do `claude` que você invocou, o que acontece após uma atualização que o supervisor ainda não reiniciou. O aviso mostra ambas as versões e diz para você executar `claude daemon stop --any` para pegar a nova versão. Quando Claude Code é instalado como um serviço do SO, o comando sugerido é `claude daemon stop` sem a flag.

556 560 

561Sessões sobrevivem a esse desajuste de versão intactas: uma versão mais antiga do Claude Code que atualiza o `state.json` de uma sessão preserva campos que não reconhece e mantém a sessão listada.

562 

557No Windows, `claude daemon status` expõe o erro de arquivo subjacente quando o arquivo de chave de pipe do daemon está bloqueado ou ilegível em vez de relatar uma falha de conexão genérica.563No Windows, `claude daemon status` expõe o erro de arquivo subjacente quando o arquivo de chave de pipe do daemon está bloqueado ou ilegível em vez de relatar uma falha de conexão genérica.

558 564 

559<h3 id="turn-off-agent-view">565<h3 id="turn-off-agent-view">


570 `claude agents` lista subagentes em vez de abrir a visualização de agentes576 `claude agents` lista subagentes em vez de abrir a visualização de agentes

571</h3>577</h3>

572 578 

573Se `claude agents` imprime uma contagem seguida pelos seus subagentes configurados e depois sai, a visualização de agentes não está disponível no seu ambiente. Versões anteriores não abriam a visualização de agentes em todos os ambientes, incluindo quando conectado através de Bedrock, Vertex AI ou Foundry. Execute `claude update` para instalar a versão mais recente.579Se `claude agents` imprime uma contagem seguida pelos seus subagentes configurados e depois sai, a visualização de agentes não está disponível no seu ambiente. Execute `claude update` para instalar a versão mais recente.

574 580 

575Se a visualização de agentes ainda não abrir após atualizar, verifique se ela foi [desativada](#turn-off-agent-view) por uma configuração ou variável de ambiente.581Se a visualização de agentes ainda não abrir após atualizar, verifique se ela foi [desativada](#turn-off-agent-view) por uma configuração ou variável de ambiente.

576 582 


580 586 

581Antes de você despachar sua primeira sessão, agent view mostra uma dica de integração breve com prompts de exemplo no lugar da lista de sessões. Digite um prompt na entrada na parte inferior e pressione `Enter` para despachar sua primeira sessão.587Antes de você despachar sua primeira sessão, agent view mostra uma dica de integração breve com prompts de exemplo no lugar da lista de sessões. Digite um prompt na entrada na parte inferior e pressione `Enter` para despachar sua primeira sessão.

582 588 

583<h3 id="cannot-open-agents-because-work-is-running-in-the-background">589<h3 id="backgrounding-shows-a-background-this-session-dialog">

584 Cannot open agents because work is running in the background590 Backgrounding mostra um diálogo `Background this session?`

585</h3>591</h3>

586 592 

587Se pressionar `←` para colocar a sessão atual em background mostrar `Cannot open agents — N still running in the background`, a sessão tem trabalho em andamento, como um subagente, um workflow dinâmico ou um comando shell em background, e o atalho não o abandonará silenciosamente. Execute `/tasks` para ver o que está em execução, depois `/bg` para confirmar o abandono deles. Veja [From inside a session](#from-inside-a-session) para saber o que é e o que não é transferido quando você coloca em background.593Se pressionar `←` para colocar a sessão atual em background mostrar um diálogo `Background this session?`, a sessão tem trabalho em andamento que não pode se mover para a sessão em background, como um [monitor](/pt/tools-reference#monitor-tool) em execução, e Claude Code não o interromperá silenciosamente. O diálogo nomeia o trabalho que será interrompido e, separadamente, conta as tarefas que são transferidas. Execute `/tasks` para ver tudo que está em execução, depois confirme para colocar em background mesmo assim ou escolha `Stay` para deixar o trabalho terminar primeiro. Veja [From inside a session](#from-inside-a-session) para quais tipos de tarefas são transferidos e quais são interrompidos.

588 594 

589<h3 id="prompt-rejected-as-too-short">595<h3 id="prompt-rejected-as-too-short">

590 Prompt rejected as too short596 Prompt rejected as too short


612 618 

613O novo supervisor se reconecta às sessões em execução. Sem `--keep-workers`, o comando também encerra as sessões em background. O sinalizador `--any` confirma que você deseja interromper um supervisor que foi iniciado sob demanda em vez de como um serviço instalado, que é o padrão.619O novo supervisor se reconecta às sessões em execução. Sem `--keep-workers`, o comando também encerra as sessões em background. O sinalizador `--any` confirma que você deseja interromper um supervisor que foi iniciado sob demanda em vez de como um serviço instalado, que é o padrão.

614 620 

621Um supervisor que inicia mas não consegue aceitar conexões sai e libera seu bloqueio por conta própria, portanto o próximo `claude agents` inicia um novo sem essa parada manual. Os passos acima se aplicam quando um supervisor em execução trava.

622 

615No Windows, se o supervisor não responder à solicitação de parada, o comando imprime seu ID de processo. Encerre esse processo com `taskkill /PID <pid>` para concluir a recuperação. As sessões em background ainda são preservadas quando você passou `--keep-workers`.623No Windows, se o supervisor não responder à solicitação de parada, o comando imprime seu ID de processo. Encerre esse processo com `taskkill /PID <pid>` para concluir a recuperação. As sessões em background ainda são preservadas quando você passou `--keep-workers`.

616 624 

617<h3 id="dispatch-fails-with-could-not-resolve-authentication-method">625<h3 id="dispatch-fails-with-could-not-resolve-authentication-method">

618 Dispatch fails with `Could not resolve authentication method`626 Dispatch fails with `Could not resolve authentication method`

619</h3>627</h3>

620 628 

621{/* min-version: 2.1.174 */}Se um dispatch em background falhar com `Could not resolve authentication method` enquanto sessões interativas autenticam normalmente, o worker que recebeu o dispatch não pegou as credenciais. Na v2.1.174 e posterior, o supervisor fornece um snapshot de credencial fresco quando atribui um [pre-warmed worker](#the-supervisor-process), então este erro significa que nenhuma credencial armazenada estava disponível para o próprio processo supervisor. Confirme que você executou `/login` ou configurou uma chave de API, depois interrompa o supervisor:629Se um dispatch em background falhar com `Could not resolve authentication method` enquanto sessões interativas autenticam normalmente, o worker que recebeu o dispatch não pegou as credenciais. O supervisor fornece um snapshot de credencial fresco quando atribui um [pre-warmed worker](#the-supervisor-process), então este erro significa que nenhuma credencial armazenada estava disponível para o próprio processo supervisor. Confirme que você executou `/login` ou configurou uma chave de API, depois interrompa o supervisor:

622 630 

623```bash theme={null}631```bash theme={null}

624claude daemon stop --any --keep-workers632claude daemon stop --any --keep-workers


626 634 

627O próximo `claude agents` ou `claude --bg` inicia um novo supervisor que lê suas credenciais armazenadas. Se você autenticar com uma variável de ambiente como `ANTHROPIC_API_KEY` em vez de `/login`, execute esse próximo comando a partir de um shell onde a variável está definida.635O próximo `claude agents` ou `claude --bg` inicia um novo supervisor que lê suas credenciais armazenadas. Se você autenticar com uma variável de ambiente como `ANTHROPIC_API_KEY` em vez de `/login`, execute esse próximo comando a partir de um shell onde a variável está definida.

628 636 

629Veja a [referência de erro](/pt/errors#could-not-resolve-authentication-method) para a lista completa de causas e correções. Antes da v2.1.174, um pre-warmed worker que ficou ocioso poderia exibir este erro quando foi atribuído a um dispatch mesmo quando suas credenciais eram válidas. Atualize para recuperar.637Veja a [referência de erro](/pt/errors#could-not-resolve-authentication-method) para a lista completa de causas e correções.

630 638 

631<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">639<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">

632 Background sessions cannot read Desktop, Documents, or Downloads on macOS640 Background sessions cannot read Desktop, Documents, or Downloads on macOS


640 A session is slow to respond after attaching648 A session is slow to respond after attaching

641</h3>649</h3>

642 650 

643Depois que uma sessão termina e fica desanexada por cerca de uma hora, o supervisor interrompe seu processo para liberar recursos. Anexar inicia um novo processo de onde parou, o que leva um momento. Sessões que estão funcionando, aguardando você ou [fixadas](#organize-the-list) não são interrompidas dessa forma, então fixe uma sessão com `Ctrl+T` para mantê-la responsiva.651Depois que uma sessão termina e fica desanexada por cerca de uma hora, o supervisor interrompe seu processo para liberar recursos. Anexar inicia um novo processo de onde parou e muda para a sessão imediatamente enquanto o processo reinicia. Sessões que estão funcionando, aguardando você ou [fixadas](#organize-the-list) não são interrompidas dessa forma, portanto fixe uma sessão com `Ctrl+T` para mantê-la responsiva.

644 652 

645<h3 id="claude/worktrees/-is-filling-up">653<h3 id="claude/worktrees/-is-filling-up">

646 `.claude/worktrees/` is filling up654 `.claude/worktrees/` is filling up


667* [Executar agentes em paralelo](/pt/agents): compare agent view com subagentes, equipes de agentes e worktrees675* [Executar agentes em paralelo](/pt/agents): compare agent view com subagentes, equipes de agentes e worktrees

668* [Equipes de agentes](/pt/agent-teams): coordene múltiplas sessões que se mensageiam676* [Equipes de agentes](/pt/agent-teams): coordene múltiplas sessões que se mensageiam

669* [Claude Code na web](/pt/claude-code-on-the-web): execute sessões em um ambiente de nuvem gerenciado em vez de localmente677* [Claude Code na web](/pt/claude-code-on-the-web): execute sessões em um ambiente de nuvem gerenciado em vez de localmente

678 

679<h2 id="version-history">

680 Histórico de versões

681</h2>

682 

683Agent view evoluiu rapidamente durante a visualização de pesquisa. Se você estiver em uma versão mais antiga do Claude Code, alguns comportamentos nesta página podem diferir; em particular, `claude agents` rejeita flags que ainda não suporta com um erro de opção desconhecida. A tabela abaixo lista quando cada flag e comportamento foi adicionado.

684 

685| Versão | Mudança |

686| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

687| v2.1.196 | {/* min-version: 2.1.196 */}Um único pressionamento de `←` coloca em background uma sessão em primeiro plano; versões anteriores exigiam dois pressionamentos, com uma dica de rodapé e uma confirmação. `--dangerously-skip-permissions` passado para `claude agents` mostra o aviso de bypass em vez de ser silenciosamente descartado. Sessões interativas que você nunca nomeou carregam um nome padrão como `my-app-3f` em listagens de sessão e `claude agents --json`. Comandos shell em background e workflows dinâmicos sobrevivem ao processo da sessão sendo interrompido, reiniciado ou atualizado, incluindo no Windows; defina `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desativar a entrega. Um transcript lido mal como vazio no reinício é renomeado com um sufixo `.orphaned-` em vez de ser deletado. |

688| v2.1.195 | {/* min-version: 2.1.195 */}O trabalho em andamento é transferido quando você coloca em background uma sessão no Windows também; defina `CLAUDE_DISABLE_ADOPT=1` para interrompê-lo em vez disso. O grupo `Completed` preenche o espaço vertical restante e o cabeçalho se compacta em terminais curtos. Uma versão mais antiga do Claude Code não descarta mais campos `state.json` mais novos ou oculta essas sessões de `claude agents`. Anexar a uma sessão parada muda imediatamente em vez de mostrar uma tela em branco por até cinco segundos. Um supervisor que não consegue aceitar conexões sai e libera seu bloqueio por conta própria. |

689| v2.1.174 | {/* min-version: 2.1.174 */}Sessões em background não herdam mais variáveis de endpoint de gateway como `ANTHROPIC_BASE_URL` do shell de inicialização do supervisor; o supervisor fornece um snapshot de credencial fresco para workers pré-aquecidos, corrigindo erros espúrios de `Could not resolve authentication method`. |

690| v2.1.172 | {/* min-version: 2.1.172 */}`/model` na entrada de despacho define uma substituição de modelo de despacho com escopo de sessão. |

691| v2.1.161 | {/* min-version: 2.1.161 */}Resumos de linha mostram uma contagem `done/total` para itens de trabalho paralelos; o painel de espiada nomeia o item de trabalho paralelo que está em execução há mais tempo. |

692| v2.1.157 | {/* min-version: 2.1.157 */}`claude agents` aceita `--agent`; sessões despachadas honram a configuração `agent`. |

693| v2.1.145 | {/* min-version: 2.1.145 */}Voice dictation suportada na entrada de resposta do painel de espiada e na entrada de despacho. |

694| v2.1.143 | {/* min-version: 2.1.143 */}Configuração `worktree.bgIsolation` adicionada; `claude agents` aceita `--allow-dangerously-skip-permissions`. |

695| v2.1.142 | {/* min-version: 2.1.142 */}`claude agents` aceita `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`, `--settings`, `--add-dir`, `--plugin-dir`, `--mcp-config` e `--strict-mcp-config`. |

696| v2.1.141 | {/* min-version: 2.1.141 */}`claude agents` aceita `--cwd` para escopar a lista a um projeto. |

697| v2.1.139 | {/* min-version: 2.1.139 */}Agent view introduzido como uma visualização de pesquisa. |

Details

397 Janela de contexto de 1M de tokens397 Janela de contexto de 1M de tokens

398</h2>398</h2>

399 399 

400Claude 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#1m-token-context-window) no Amazon Bedrock. Claude Code habilita automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo de 1M.400Claude 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#1m-token-context-window) no Amazon Bedrock. Sonnet 5 é servido através do [endpoint Mantle](#use-the-mantle-endpoint) e sempre é executado com a janela de 1M, sem nenhuma variante `[1m]` para selecionar. Para os outros modelos, Claude Code habilita automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo de 1M.

401 401 

402O [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](/pt/model-config#pin-models-for-third-party-deployments) para detalhes.402O [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](/pt/model-config#pin-models-for-third-party-deployments) para detalhes.

403 403 


458 Selecionar um modelo Mantle458 Selecionar um modelo Mantle

459</h3>459</h3>

460 460 

461Mantle usa IDs de modelo com prefixo `anthropic.` e sem sufixo de versão, por exemplo `anthropic.claude-haiku-4-5`. Os modelos disponíveis para sua conta dependem do que sua organização foi concedida; IDs de modelo adicionais estão listados em seus materiais de integração da AWS. Entre em contato com sua equipe de conta AWS para solicitar acesso aos modelos permitidos.461Mantle usa IDs de modelo com prefixo `anthropic.` e sem sufixo de versão, por exemplo `anthropic.claude-sonnet-5` ou `anthropic.claude-haiku-4-5`. Os modelos disponíveis para sua conta dependem do que sua organização foi concedida; IDs de modelo adicionais estão listados em seus materiais de integração da AWS. Entre em contato com sua equipe de conta AWS para solicitar acesso aos modelos permitidos.

462 462 

463Defina o modelo com a flag `--model` ou com `/model` dentro do Claude Code:463Defina o modelo com a flag `--model` ou com `/model` dentro do Claude Code:

464 464 


542 542 

543Claude Code usa a [API Invoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html) do Bedrock e não suporta a API Converse.543Claude Code usa a [API Invoke](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html) do Bedrock e não suporta a API Converse.

544 544 

545<h3 id="zero-token-counts-in-/context">

546 Contagens de token zero em /context

547</h3>

548 

549O comando `/context` conta tokens para cada grupo de ferramentas enviando os esquemas de ferramentas para a API count-tokens do Bedrock. {/* min-version: 2.1.196 */}Em versões do Claude Code anteriores à v2.1.196, Bedrock rejeitou essa solicitação porque os esquemas carregavam campos que sua API count-tokens não aceita, então cada grupo de ferramentas mostrava 0 tokens. Outras linhas na análise, como mensagens e arquivos de memória, não são afetadas.

550 

551Atualize para v2.1.196 ou posterior.

552 

545<h3 id="mantle-endpoint-errors">553<h3 id="mantle-endpoint-errors">

546 Erros de endpoint Mantle554 Erros de endpoint Mantle

547</h3>555</h3>

Details

24* **Claude for Teams ou Enterprise**: faça login com a conta Claude.ai que seu administrador de equipe o convidou.24* **Claude for Teams ou Enterprise**: faça login com a conta Claude.ai que seu administrador de equipe o convidou.

25* **Claude Console**: faça login com suas credenciais do Console. Seu administrador deve ter [o convidado](#claude-console-authentication) primeiro.25* **Claude Console**: faça login com suas credenciais do Console. Seu administrador deve ter [o convidado](#claude-console-authentication) primeiro.

26* **Provedores de nuvem**: se sua organização usa [Amazon Bedrock](/pt/amazon-bedrock), [Google Vertex AI](/pt/google-vertex-ai) ou [Microsoft Foundry](/pt/microsoft-foundry), defina as variáveis de ambiente necessárias antes de executar `claude`. Nenhum login do navegador é necessário.26* **Provedores de nuvem**: se sua organização usa [Amazon Bedrock](/pt/amazon-bedrock), [Google Vertex AI](/pt/google-vertex-ai) ou [Microsoft Foundry](/pt/microsoft-foundry), defina as variáveis de ambiente necessárias antes de executar `claude`. Nenhum login do navegador é necessário.

27* **Cloud gateway**: se sua organização executa um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado, faça login com SSO corporativo através de `/login`. O token emitido pelo gateway é a única credencial da sessão.

27 28 

28Para fazer logout e se autenticar novamente, digite `/logout` no prompt do Claude Code.29Para fazer logout e se autenticar novamente, digite `/logout` no prompt do Claude Code.

29 30 


37 38 

38* [Claude for Teams ou Enterprise](#claude-for-teams-or-enterprise), recomendado para a maioria das equipes39* [Claude for Teams ou Enterprise](#claude-for-teams-or-enterprise), recomendado para a maioria das equipes

39* [Claude Console](#claude-console-authentication)40* [Claude Console](#claude-console-authentication)

41* [Claude apps gateway](/pt/claude-apps-gateway), um gateway auto-hospedado que faz login dos desenvolvedores com seu IdP e roteia a inferência para o provedor de nuvem que você configurar

40* [Amazon Bedrock](/pt/amazon-bedrock)42* [Amazon Bedrock](/pt/amazon-bedrock)

41* [Google Vertex AI](/pt/google-vertex-ai)43* [Google Vertex AI](/pt/google-vertex-ai)

42* [Microsoft Foundry](/pt/microsoft-foundry)44* [Microsoft Foundry](/pt/microsoft-foundry)


131 * No Windows, as credenciais são armazenadas em `%USERPROFILE%\.claude\.credentials.json` e herdam os controles de acesso do diretório do seu perfil de usuário, o que restringe o arquivo à sua conta de usuário por padrão.133 * No Windows, as credenciais são armazenadas em `%USERPROFILE%\.claude\.credentials.json` e herdam os controles de acesso do diretório do seu perfil de usuário, o que restringe o arquivo à sua conta de usuário por padrão.

132 * Se você definiu a variável de ambiente `CLAUDE_CONFIG_DIR` no Linux ou Windows, o arquivo `.credentials.json` fica sob esse diretório em vez disso.134 * Se você definiu a variável de ambiente `CLAUDE_CONFIG_DIR` no Linux ou Windows, o arquivo `.credentials.json` fica sob esse diretório em vez disso.

133 * Claude Code gerencia `.credentials.json` através de `/login` e `/logout`. Para rotear solicitações através de um endpoint de API personalizado, defina a variável de ambiente [`ANTHROPIC_BASE_URL`](/pt/env-vars) em vez disso.135 * Claude Code gerencia `.credentials.json` através de `/login` e `/logout`. Para rotear solicitações através de um endpoint de API personalizado, defina a variável de ambiente [`ANTHROPIC_BASE_URL`](/pt/env-vars) em vez disso.

134* **Tipos de autenticação suportados**: credenciais Claude.ai, credenciais da API Claude, Azure Auth, Bedrock Auth e Vertex Auth.136* **Tipos de autenticação suportados**: credenciais Claude.ai, credenciais da API Claude, Azure Auth, Bedrock Auth, Vertex Auth e tokens de sessão do [gateway de aplicativos Claude](/pt/claude-apps-gateway).

135* **Scripts de credenciais personalizados**: a configuração [`apiKeyHelper`](/pt/settings#available-settings) pode ser configurada para executar um script de shell que retorna uma chave de API.137* **Scripts de credenciais personalizados**: a configuração [`apiKeyHelper`](/pt/settings#available-settings) pode ser configurada para executar um script de shell que retorna uma chave de API.

136* **Intervalos de atualização**: por padrão, `apiKeyHelper` é chamado após 5 minutos ou em resposta HTTP 401. Defina a variável de ambiente `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` para intervalos de atualização personalizados.138* **Intervalos de atualização**: por padrão, `apiKeyHelper` é chamado após 5 minutos ou em resposta HTTP 401. Defina a variável de ambiente `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` para intervalos de atualização personalizados.

137* **Aviso de helper lento**: se `apiKeyHelper` levar mais de 10 segundos para retornar uma chave, Claude Code exibe um aviso na barra de prompt mostrando o tempo decorrido. Se você vir este aviso regularmente, verifique se seu script de credenciais pode ser otimizado.139* **Aviso de helper lento**: se `apiKeyHelper` levar mais de 10 segundos para retornar uma chave, Claude Code exibe um aviso na barra de prompt mostrando o tempo decorrido. Se você vir este aviso regularmente, verifique se seu script de credenciais pode ser otimizado.


1515. Variável de ambiente `CLAUDE_CODE_OAUTH_TOKEN`. Um token OAuth de longa duração gerado por [`claude setup-token`](#generate-a-long-lived-token). Use isso para pipelines de CI e scripts onde login do navegador não está disponível.1535. Variável de ambiente `CLAUDE_CODE_OAUTH_TOKEN`. Um token OAuth de longa duração gerado por [`claude setup-token`](#generate-a-long-lived-token). Use isso para pipelines de CI e scripts onde login do navegador não está disponível.

1526. Credenciais OAuth de assinatura de `/login`. Este é o padrão para usuários Claude Pro, Max, Team e Enterprise.1546. Credenciais OAuth de assinatura de `/login`. Este é o padrão para usuários Claude Pro, Max, Team e Enterprise.

153 155 

156Uma sessão do [gateway de aplicativos Claude](/pt/claude-apps-gateway) assinada fica fora desta lista: é uma seleção de provedor como Bedrock ou Vertex, e a supera. Quando uma sessão de gateway existe, a CLI se autentica com o token do gateway mesmo se `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX` ou `CLAUDE_CODE_USE_FOUNDRY` está definido, e as entradas de token bearer, chave de API e `apiKeyHelper` acima não são usadas.

157 

154Se você tem uma assinatura Claude ativa mas também tem `ANTHROPIC_API_KEY` definido em seu ambiente, a chave de API tem precedência uma vez aprovada. Isso pode causar falhas de autenticação se a chave pertencer a uma organização desabilitada ou expirada. Execute `unset ANTHROPIC_API_KEY` para voltar à sua assinatura e verifique `/status` para confirmar qual método está ativo.158Se você tem uma assinatura Claude ativa mas também tem `ANTHROPIC_API_KEY` definido em seu ambiente, a chave de API tem precedência uma vez aprovada. Isso pode causar falhas de autenticação se a chave pertencer a uma organização desabilitada ou expirada. Execute `unset ANTHROPIC_API_KEY` para voltar à sua assinatura e verifique `/status` para confirmar qual método está ativo.

155 159 

156[Claude Code na Web](/pt/claude-code-on-the-web) sempre usa suas credenciais de assinatura. `ANTHROPIC_API_KEY` e `ANTHROPIC_AUTH_TOKEN` no ambiente sandbox não as substituem.160[Claude Code na Web](/pt/claude-code-on-the-web) sempre usa suas credenciais de assinatura. `ANTHROPIC_API_KEY` e `ANTHROPIC_AUTH_TOKEN` no ambiente sandbox não as substituem.

Details

9[Auto mode](/pt/permission-modes#eliminate-prompts-with-auto-mode) permite que Claude Code seja executado sem prompts de permissão rotineiros, roteando chamadas de ferramenta através de um classificador que bloqueia qualquer coisa irreversível, destrutiva ou direcionada para fora do seu ambiente. Regras de negação e solicitação explícita são avaliadas antes do classificador e ainda bloqueiam ou solicitam. Use o bloco de configurações `autoMode` para dizer ao classificador quais repositórios, buckets e domínios sua organização confia, para que ele pare de bloquear operações internas rotineiras.9[Auto mode](/pt/permission-modes#eliminate-prompts-with-auto-mode) permite que Claude Code seja executado sem prompts de permissão rotineiros, roteando chamadas de ferramenta através de um classificador que bloqueia qualquer coisa irreversível, destrutiva ou direcionada para fora do seu ambiente. Regras de negação e solicitação explícita são avaliadas antes do classificador e ainda bloqueiam ou solicitam. Use o bloco de configurações `autoMode` para dizer ao classificador quais repositórios, buckets e domínios sua organização confia, para que ele pare de bloquear operações internas rotineiras.

10 10 

11<Note>11<Note>

12 Auto mode está disponível para todos os usuários na API Anthropic. No Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry, você deve primeiro [definir `CLAUDE_CODE_ENABLE_AUTO_MODE`](/pt/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Se Claude Code relatar que o auto mode não está disponível para sua conta, verifique os [requisitos completos](/pt/permission-modes#eliminate-prompts-with-auto-mode), que também cobrem os modelos suportados e a habilitação de administrador nos planos Team e Enterprise.12 Auto mode está disponível para todos os usuários na API Anthropic. No Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry e sessões de [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectadas, você deve primeiro [definir `CLAUDE_CODE_ENABLE_AUTO_MODE`](/pt/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry). Se Claude Code relatar que o auto mode não está disponível para sua conta, verifique os [requisitos completos](/pt/permission-modes#eliminate-prompts-with-auto-mode), que também cobrem os modelos suportados e a habilitação de proprietário nos planos Team e Enterprise.

13</Note>13</Note>

14 14 

15Pronto para usar, o classificador confia apenas no diretório de trabalho e nos remotes configurados do repositório atual. Ações como fazer push para a organização de controle de código-fonte da sua empresa ou escrever em um bucket de nuvem de equipe são bloqueadas até que você as adicione a `autoMode.environment`.15Por padrão, o classificador confia apenas no diretório de trabalho e nos remotes configurados do repositório atual. Ações como fazer push para a organização de controle de código-fonte da sua empresa ou escrever em um bucket de nuvem de equipe são bloqueadas até que você as adicione a `autoMode.environment`.

16 16 

17Para saber como ativar o modo automático e o que ele bloqueia por padrão, consulte [Permission modes](/pt/permission-modes#eliminate-prompts-with-auto-mode). Esta página é a referência de configuração.17Para saber como ativar o modo automático e o que ele bloqueia por padrão, consulte [Permission modes](/pt/permission-modes#eliminate-prompts-with-auto-mode). Esta página é a referência de configuração.

18 18 


21* [Escolher onde definir regras](#where-the-classifier-reads-configuration) em CLAUDE.md, configurações do usuário e configurações gerenciadas21* [Escolher onde definir regras](#where-the-classifier-reads-configuration) em CLAUDE.md, configurações do usuário e configurações gerenciadas

22* [Definir infraestrutura confiável](#define-trusted-infrastructure) com `autoMode.environment`22* [Definir infraestrutura confiável](#define-trusted-infrastructure) com `autoMode.environment`

23* [Substituir as regras de bloqueio e permissão](#override-the-block-and-allow-rules) quando os padrões não se adequam ao seu pipeline23* [Substituir as regras de bloqueio e permissão](#override-the-block-and-allow-rules) quando os padrões não se adequam ao seu pipeline

24* [Rotear todos os comandos shell através do classificador](#route-all-shell-commands-through-the-classifier) com `autoMode.classifyAllShell`

24* [Inspecionar sua configuração efetiva](#inspect-the-defaults-and-your-effective-config) com os subcomandos `claude auto-mode`25* [Inspecionar sua configuração efetiva](#inspect-the-defaults-and-your-effective-config) com os subcomandos `claude auto-mode`

25* [Revisar negações](#review-denials) para saber o que adicionar a seguir26* [Revisar negações](#review-denials) para saber o que adicionar a seguir

26 27 


53 54 

54Para a maioria das organizações, `autoMode.environment` é o único campo que você precisa definir. Ele diz ao classificador quais repositórios, buckets e domínios são confiáveis: o classificador o usa para decidir o que significa "externo", portanto qualquer destino não listado é um alvo potencial de exfiltração.55Para a maioria das organizações, `autoMode.environment` é o único campo que você precisa definir. Ele diz ao classificador quais repositórios, buckets e domínios são confiáveis: o classificador o usa para decidir o que significa "externo", portanto qualquer destino não listado é um alvo potencial de exfiltração.

55 56 

56A lista de ambiente padrão confia no repositório de trabalho e seus remotes configurados. Para adicionar suas próprias entradas junto com esse padrão, inclua a string literal `"$defaults"` no array. As entradas padrão são inseridas nessa posição, portanto suas entradas personalizadas podem vir antes ou depois delas.57A partir do Claude Code v2.1.195, `claude auto-mode defaults` imprime dois tipos de entrada de ambiente.

58 

59* **Slots de confiança**: nomeiam o que o classificador trata como dentro de seu limite. Os slots são Repositório confiável, Controle de código-fonte, Domínios internos confiáveis, Buckets de nuvem confiáveis, Serviços internos principais e Registro de pacotes interno. As entradas de repositório e controle de código-fonte padrão para o repositório de trabalho e seus remotes configurados. Todos os outros slots de confiança padrão para `None configured`, portanto nada mais é confiável até que você o adicione.

60* **Slots de sensibilidade**: nomeiam o que as regras de proteção tratam como alto risco. Os slots são Locais de PII / dados regulados, Alvos remotos sensíveis e Escopos de IaC protegidos. Cada um padrão para uma heurística ampla, como tratar qualquer host ou namespace cujo nome carrega `prod` ou `production` como um alvo remoto sensível, portanto as regras de proteção estão ativas antes de você configurar qualquer coisa. Nomear alvos concretos em um slot de sensibilidade faz com que essas regras se apliquem aos alvos nomeados em vez da heurística.

61 

62Versões anteriores a v2.1.195 imprimem apenas os primeiros cinco slots de confiança.

63 

64Para adicionar suas próprias entradas junto com os padrões, inclua a string literal `"$defaults"` no array. As entradas padrão são inseridas nessa posição, portanto suas entradas personalizadas podem vir antes ou depois delas.

65 

66O exemplo a seguir mantém as entradas padrão e adiciona repositórios, buckets, domínios e serviços de uma organização.

57 67 

58```json theme={null}68```json theme={null}

59{69{


76* **Provedores de nuvem e buckets confiáveis**: nomes de buckets ou prefixos dos quais Claude deve ser capaz de ler e escrever86* **Provedores de nuvem e buckets confiáveis**: nomes de buckets ou prefixos dos quais Claude deve ser capaz de ler e escrever

77* **Domínios internos confiáveis**: nomes de host para APIs, painéis e serviços dentro de sua rede, como `*.internal.example.com`87* **Domínios internos confiáveis**: nomes de host para APIs, painéis e serviços dentro de sua rede, como `*.internal.example.com`

78* **Serviços internos principais**: CI, registros de artefatos, índices de pacotes internos, ferramentas de incidentes88* **Serviços internos principais**: CI, registros de artefatos, índices de pacotes internos, ferramentas de incidentes

89* **Registro de pacotes interno**: o registro npm, PyPI ou outro privado através do qual as instalações devem ser roteadas, portanto as instalações que o contornam para um registro público são bloqueadas

90* **Locais de PII / dados regulados**: os buckets, bancos de dados ou caminhos que contêm dados pessoais ou regulados, para que o classificador proteja esses locais em vez de adivinhar pelo conteúdo

91* **Alvos remotos sensíveis**: os namespaces, hosts ou contêineres que contam como produção, portanto shells remotos e port-forwards para eles precisam de sua aprovação explícita

92* **Escopos de IaC protegidos**: os recursos de infraestrutura cuja aplicação ou destruição sempre devem exigir que você nomeie a mudança

79* **Contexto adicional**: restrições de indústria regulada, infraestrutura multi-tenant ou requisitos de conformidade que afetam o que o classificador deve tratar como arriscado93* **Contexto adicional**: restrições de indústria regulada, infraestrutura multi-tenant ou requisitos de conformidade que afetam o que o classificador deve tratar como arriscado

80 94 

95As entradas Registro de pacotes interno, Locais de PII / dados regulados, Alvos remotos sensíveis e Escopos de IaC protegidos exigem Claude Code v2.1.195 ou posterior. Versões anteriores ainda as leem como contexto simples, mas não têm as regras integradas que as direcionam.

96 

81Um modelo inicial útil: preencha os campos entre colchetes e remova as linhas que não se aplicam.97Um modelo inicial útil: preencha os campos entre colchetes e remova as linhas que não se aplicam.

82 98 

83```json theme={null}99```json theme={null}


105 Substituir as regras de bloqueio e permissão121 Substituir as regras de bloqueio e permissão

106</h2>122</h2>

107 123 

108Três campos adicionais permitem que você substitua as listas de regras integradas do classificador: `autoMode.hard_deny` para limites de segurança incondicionais, `autoMode.soft_deny` para ações destrutivas que a intenção do usuário pode contornar, e `autoMode.allow` para exceções. Cada um é uma matriz de descrições em prosa, lidas como regras em linguagem natural. Para bloqueios baseados em padrões de ferramentas que são executados antes do classificador, use [`permissions.deny`](/pt/permissions).124Três campos adicionais permitem que você substitua as listas de regras integradas do classificador:

125 

126* `autoMode.hard_deny`: limites de segurança incondicionais

127* `autoMode.soft_deny`: ações destrutivas que a intenção do usuário pode contornar

128* `autoMode.allow`: exceções às regras de bloqueio soft

129 

130Cada um é uma matriz de descrições em prosa, lidas como regras em linguagem natural. Para bloqueios baseados em padrões de ferramentas que são executados antes do classificador, use [`permissions.deny`](/pt/permissions).

109 131 

110Dentro do classificador, a precedência funciona em quatro camadas:132Dentro do classificador, a precedência funciona em quatro camadas:

111 133 


120 142 

121Para manter as regras integradas enquanto adiciona as suas próprias, inclua a string literal `"$defaults"` na matriz. As regras padrão são inseridas nessa posição, portanto suas regras personalizadas podem vir antes ou depois delas, e você continua a herdar atualizações conforme a lista integrada muda entre versões.143Para manter as regras integradas enquanto adiciona as suas próprias, inclua a string literal `"$defaults"` na matriz. As regras padrão são inseridas nessa posição, portanto suas regras personalizadas podem vir antes ou depois delas, e você continua a herdar atualizações conforme a lista integrada muda entre versões.

122 144 

145O exemplo a seguir mantém os padrões em todas as quatro listas e adiciona regras específicas da organização a cada uma.

146 

123```json theme={null}147```json theme={null}

124{148{

125 "autoMode": {149 "autoMode": {


149 Definir qualquer um de `environment`, `allow`, `soft_deny` ou `hard_deny` sem `"$defaults"` substitui a lista padrão inteira para essa seção. Uma matriz `soft_deny` sem `"$defaults"` descarta todas as regras de bloqueio integradas, incluindo force push, `curl | bash` e implantações em produção. Uma matriz `hard_deny` sem `"$defaults"` descarta as regras integradas de exfiltração de dados e bypass de auto-mode.173 Definir qualquer um de `environment`, `allow`, `soft_deny` ou `hard_deny` sem `"$defaults"` substitui a lista padrão inteira para essa seção. Uma matriz `soft_deny` sem `"$defaults"` descarta todas as regras de bloqueio integradas, incluindo force push, `curl | bash` e implantações em produção. Uma matriz `hard_deny` sem `"$defaults"` descarta as regras integradas de exfiltração de dados e bypass de auto-mode.

150</Danger>174</Danger>

151 175 

152Cada seção é avaliada independentemente, portanto definir `environment` sozinho deixa as listas padrão `allow`, `soft_deny` e `hard_deny` intactas. Omita `"$defaults"` apenas quando você pretender assumir a propriedade total da lista. Para fazer isso com segurança, execute `claude auto-mode defaults` para imprimir as regras integradas, copie-as para seu arquivo de configurações e depois revise cada regra em relação ao seu próprio pipeline e tolerância ao risco.176Cada seção é avaliada independentemente, portanto definir `environment` sozinho deixa as listas padrão `allow`, `soft_deny` e `hard_deny` intactas.

177 

178Omita `"$defaults"` apenas quando você pretender assumir a propriedade total da lista. Para fazer isso com segurança, execute `claude auto-mode defaults` para imprimir as regras integradas, copie-as para seu arquivo de configurações e depois revise cada regra em relação ao seu próprio pipeline e tolerância ao risco.

179 

180<h2 id="route-all-shell-commands-through-the-classifier">

181 Rotear todos os comandos shell através do classificador

182</h2>

183 

184Por padrão, regras de permissão Bash e PowerShell estreitas como `Bash(npm test)` são mantidas no modo automático e resolvidas antes do classificador ser executado. O modo automático suspende apenas as regras amplas que concedem execução de código arbitrário, como `Bash(*)` ou intérpretes com caracteres curinga. Isso significa que uma regra estreita ainda pode deixar um argumento destrutivo passar sem o classificador vê-lo, por exemplo um caminho de script ou flag que o prefixo da regra não antecipou.

185 

186Defina `autoMode.classifyAllShell` como `true` para suspender todas as regras de permissão Bash e PowerShell enquanto o modo automático está ativo, para que o classificador avalie cada comando shell independentemente de sua lista de permissões.

187 

188```json theme={null}

189{

190 "autoMode": {

191 "classifyAllShell": true

192 }

193}

194```

195 

196Isso troca latência por cobertura: um comando que uma regra de permissão teria aprovado instantaneamente agora aguarda uma decisão do classificador, e cada comando shell conta como uma chamada do classificador.

197 

198A configuração se aplica apenas enquanto o modo automático está ativo, e suas regras de permissão se comportam normalmente em outros modos de permissão.

199 

200<Note>

201 `autoMode.classifyAllShell` requer Claude Code v2.1.193 ou posterior. Versões anteriores ignoram a chave e continuam a manter regras de permissão shell estreitas no modo automático.

202</Note>

153 203 

154<h2 id="inspect-the-defaults-and-your-effective-config">204<h2 id="inspect-the-defaults-and-your-effective-config">

155 Inspecione os padrões e sua configuração efetiva205 Inspecionar os padrões e sua configuração efetiva

156</h2>206</h2>

157 207 

158Três subcomandos CLI ajudam você a inspecionar e validar sua configuração.208Três subcomandos CLI ajudam você a inspecionar e validar sua configuração.


175claude auto-mode critique225claude auto-mode critique

176```226```

177 227 

178Execute `claude auto-mode config` após salvar suas configurações para confirmar que as regras efetivas são o que você espera, com `"$defaults"` expandido no lugar. Se você escreveu regras personalizadas, `claude auto-mode critique` as revisa e sinaliza entradas que são ambíguas, redundantes ou provavelmente causarão falsos positivos. Se você precisar remover ou reescrever uma regra integrada em vez de adicionar ao lado dela, salve a saída de `claude auto-mode defaults` em um arquivo, edite as listas e cole o resultado em seu arquivo de configurações no lugar de `"$defaults"`.228Execute `claude auto-mode config` após salvar suas configurações para confirmar que as regras efetivas são o que você espera, com `"$defaults"` expandido no lugar. Se você escreveu regras personalizadas, `claude auto-mode critique` as revisa e sinaliza entradas que são ambíguas, redundantes ou provavelmente causarão falsos positivos.

229 

230Se você precisar remover ou reescrever uma regra integrada em vez de adicionar ao lado dela, salve a saída de `claude auto-mode defaults` em um arquivo, edite as listas e cole o resultado em seu arquivo de configurações no lugar de `"$defaults"`.

179 231 

180<h2 id="review-denials">232<h2 id="review-denials">

181 Review denials233 Revisar negações

182</h2>234</h2>

183 235 

184Quando o modo automático nega uma chamada de ferramenta, a negação é registrada em `/permissions` na aba Recently denied. Pressione `r` em uma ação negada para marcá-la para retry: quando você sair do diálogo, Claude Code envia uma mensagem dizendo ao modelo que ele pode tentar novamente essa chamada de ferramenta e retoma a conversa.236Quando o modo automático nega uma chamada de ferramenta, a negação é registrada em `/permissions` na aba Recently denied. Pressione `r` em uma ação negada para marcá-la para retry: quando você sair do diálogo, Claude Code envia uma mensagem dizendo ao modelo que ele pode tentar novamente essa chamada de ferramenta e retoma a conversa.

185 237 

238No Claude Code v2.1.193 e posterior, o motivo do classificador para cada negação aparece ao lado da chamada de ferramenta bloqueada na transcrição, na notificação de negação e sob cada entrada na aba Recently denied. Use o motivo para decidir se a correção é uma entrada `environment`, uma exceção `allow` ou tentar novamente com intenção explícita em sua próxima mensagem.

239 

186Negações repetidas para o mesmo destino geralmente significam que o classificador está perdendo contexto. Adicione esse destino a `autoMode.environment`, depois execute `claude auto-mode config` para confirmar que teve efeito.240Negações repetidas para o mesmo destino geralmente significam que o classificador está perdendo contexto. Adicione esse destino a `autoMode.environment`, depois execute `claude auto-mode config` para confirmar que teve efeito.

187 241 

188Para reagir a negações programaticamente, use o hook [`PermissionDenied`](/pt/hooks#permissiondenied).242Para reagir a negações programaticamente, use o hook [`PermissionDenied`](/pt/hooks#permissiondenied).

claude-apps-gateway-config.md +749 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Configuração do gateway de aplicativos Claude

6 

7> Referência para cada opção de gateway.yaml: listener e TLS, OIDC, sessão, armazenamento Postgres, upstreams Bedrock/Agent Platform/Foundry, roteamento de modelos, políticas gerenciadas e telemetria.

8 

9Uma implantação de gateway de aplicativos Claude é configurada por um arquivo YAML, convencionalmente `gateway.yaml`. O arquivo define tudo o que o gateway faz: onde ele escuta, como os desenvolvedores fazem login, para onde a inferência vai e quais políticas e telemetria se aplicam. Esta página é a referência para cada opção nesse arquivo. Para escrever o seu primeiro, comece pelo [quickstart](/pt/claude-apps-gateway#quickstart), que constrói uma configuração mínima funcional e a executa; uma vez que você tenha uma configuração com a qual esteja satisfeito, o [guia de implantação](/pt/claude-apps-gateway-deploy) cobre a containerização e hospedagem no Kubernetes, Cloud Run ou sua própria plataforma.

10 

11O gateway lê o arquivo uma vez, na inicialização, com `claude gateway --config /path/to/gateway.yaml`. Cada opção é validada contra um esquema na inicialização, portanto uma configuração malformada falha no início com um erro no nível do campo em vez de no primeiro uso.

12 

13O [exemplo completo](#complete-example) no final desta página exercita cada seção.

14 

15<h2 id="file-structure">

16 Estrutura do arquivo

17</h2>

18 

19Cinco seções são [obrigatórias](#required-sections). Todas as outras seções são [opcionais](#optional-sections), e uma seção omitida assume seus padrões. Chaves desconhecidas falham na inicialização, portanto um erro de digitação aparece como um erro nomeado em vez de uma configuração silenciosamente ignorada.

20 

21**Seções obrigatórias:**

22 

23* [`listen`](#listen): endereço de vinculação, URL pública, terminação TLS

24* [`oidc`](#oidc): seu provedor de identidade (IdP), incluindo emissor, cliente, mapeamento de declarações e quem pode fazer login

25* [`session`](#session): os tokens de portador que o gateway emite, com segredo e tempo de vida

26* [`store`](#store): PostgreSQL, para concessões de dispositivo e contadores de limite de taxa

27* [`upstreams`](#upstreams): para onde a inferência vai, seja Anthropic, Bedrock, Agent Platform ou Foundry

28 

29**Seções opcionais:**

30 

31* [`admin`](#admin): autenticação da API de administração e retenção para limites de gastos

32* [`enforcement`](#enforcement): comportamento de falha aberta ou fechada do limite de gastos

33* [`models`](#models) e `auto_include_builtin_models`: lista de modelos curada pelo administrador e IDs por upstream

34* [`managed`](#managed): políticas de configurações gerenciadas por grupo IdP

35* [`telemetry`](#telemetry): encaminhamento OTLP para sua pilha de observabilidade

36* [`access_control`, `limits`, `timeouts`, `rate_limits`](#http-tuning): permitir/negar IP, limites de tamanho de solicitação, tempo até o primeiro byte upstream e limites de login por IP

37 

38<h2 id="secret-expansion">

39 Expansão de segredos

40</h2>

41 

42Não escreva segredos como `client_secret`, `jwt_secret` ou `postgres_url` diretamente em `gateway.yaml`. Faça referência a eles com um dos formulários abaixo, e o gateway resolve o valor na inicialização a partir de uma variável de ambiente ou um arquivo:

43 

44| Formulário | Resolve para | Use para |

45| --------------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------- |

46| `${VAR}` | A variável de ambiente `VAR`. A inicialização falha se não estiver definida. | Variáveis de ambiente de contêiner, AWS Secrets Manager via injeção de env |

47| `${file:/path}` | Conteúdo do arquivo, aparado | Montagens de volume do Kubernetes Secret, Vault Agent, SOPS |

48 

49<h2 id="required-sections">

50 Seções obrigatórias

51</h2>

52 

53<h3 id="listen">

54 `listen`

55</h3>

56 

57O bloco `listen` controla onde o gateway serve: o endereço de vinculação e porta, a origem visível externamente e terminação TLS opcional.

58 

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

60| ---------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

61| `host` | Não | Endereço de vinculação. Padrão `0.0.0.0`. |

62| `port` | Não | Porta de vinculação. Padrão `8080`. |

63| `public_url` | Atrás de um proxy | A origem `https://` visível externamente, usada para construir o `redirect_uri` do IdP e metadados de descoberta. Obrigatório atrás de qualquer proxy que termine TLS, como um ALB, Ingress ou Cloud Run, porque o gateway não confia em cabeçalhos `X-Forwarded-*` ao construir sua própria origem; eles são falsificáveis pelo cliente. `trusted_proxies` abaixo governa apenas a resolução de IP do cliente. Também obrigatório para habilitar [telemetria](#telemetry), porque o gateway constrói o endpoint OTLP que envia para clientes a partir desta URL. |

64| `tls.cert` / `tls.key` | Não | Caminhos PEM se o gateway termina TLS por si mesmo |

65| `trusted_proxies` | Não | CIDRs ou IPs de balanceadores de carga na frente do gateway. Quando definido, o gateway confia em `X-Forwarded-For` apenas desses pares e registra o IP do cliente real para limitação de taxa por IP e auditoria. Equivalente ao nginx `set_real_ip_from`. |

66 

67<h3 id="oidc">

68 `oidc`

69</h3>

70 

71OpenID Connect (OIDC) é o protocolo SSO que o gateway usa com seu provedor de identidade; consulte [Configuração do provedor de identidade](/pt/claude-apps-gateway-deploy#identity-provider-setup) para saber o que registrar no lado do IdP. O bloco `oidc` conecta o gateway ao seu provedor de identidade e decide quem pode fazer login. Ele nomeia o emissor e cliente OAuth, mapeia as declarações que carregam email e grupos e restringe o login por domínio de email ou grupo.

72 

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

74| ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

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

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

78| `allowed_groups` | Não | Restrinja o login a membros desses grupos IdP, comparados com `groups_claim`. Um usuário em um domínio de email permitido mas em nenhum desses grupos é rejeitado. Requer que o IdP emita a declaração de grupos. |

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

80| `google_groups` | Não | Procure os grupos do usuário conectado através da API do Diretório do Google Workspace Admin SDK, porque o id\_token do Google não carrega nenhuma declaração de grupos. Defina `service_account_json_path` para um arquivo de chave de conta de serviço com delegação em todo o domínio no escopo `https://www.googleapis.com/auth/admin.directory.group.readonly` e `admin_email` para um administrador do Workspace que a conta de serviço representa; a API do Diretório requer um assunto de administrador real. Os endereços de email do grupo de cada usuário se tornam sua declaração de grupos, portanto `allowed_groups` e `managed.policies.match.groups` correspondem aos emails do grupo. |

81| `email_claim` | Não | Qual declaração id\_token carrega o email do usuário. Padrão `email`. Alguns IdPs, como ADFS e Entra B2C, emitem `upn` ou `preferred_username`. Aceita uma chave simples, um JSON Pointer ou uma lista de chaves de fallback onde a primeira chave presente é usada. |

82| `scopes` | Não | Substituição completa dos escopos OIDC que o gateway solicita. Padrão `[openid, profile, email, offline_access]`. Defina quando seu IdP rejeita escopos que não reconhece ou requer um escopo personalizado para emitir grupos ou email. Deve incluir `openid`. Descartar `offline_access` desabilita tokens de atualização, portanto os desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. Consulte [Configuração do provedor de identidade](/pt/claude-apps-gateway-deploy#identity-provider-setup) para receitas de escopo por IdP, como o fluxo de token de atualização do Google. |

83| `extra_auth_params` | Não | Parâmetros de consulta extras anexados à solicitação de autorização do IdP, literalmente. Este é o mecanismo de substituição para comportamento específico do IdP, como `access_type: offline` para tokens de atualização do Google, `domain_hint` para alguns locatários Entra ou `acr_values` para fluxos de step-up. Não pode substituir os parâmetros de protocolo gerenciados pelo gateway: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode` e `client_id`. |

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

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

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

87| `token_endpoint_auth_method` | Não | Substitua o método de autenticação do endpoint de token. Aceita `client_secret_basic` ou `client_secret_post`. Negociado automaticamente por padrão. |

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

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

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

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

92| `ca_cert_pem` | Não | Certificado CA PEM que substitui o armazenamento de confiança do sistema apenas para solicitações do IdP. Use para Keycloak ou Dex atrás de PKI corporativa. |

93 

94<h3 id="session">

95 `session`

96</h3>

97 

98O bloco `session` molda os tokens de portador que o gateway emite após o login: o segredo que os assina e quanto tempo eles vivem.

99 

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

101| ------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

102| `jwt_secret` | Sim | Pelo menos 32 bytes de entropia, por exemplo de `openssl rand -base64 32`. Assina os tokens de portador HS256 do gateway. Aceita uma única string ou um array para rotação: o índice 0 assina e todas as entradas verificam. Para girar, coloque um novo segredo na frente, aguarde `ttl_hours` e depois remova o antigo. |

103| `ttl_hours` | Não | Tempo de vida do token de portador do gateway. Padrão `1`. O CLI atualiza silenciosamente antes da expiração quando o IdP emite tokens de atualização. Um tempo de vida mais curto desprovisiona mais rápido; um mais longo faz menos viagens de ida e volta do IdP. Se seu IdP não puder emitir tokens de atualização porque `offline_access` não está disponível, não há atualização silenciosa, portanto aumente para `8` ou `12` para evitar enviar desenvolvedores de volta ao login do navegador a cada hora. |

104 

105<h3 id="store">

106 `store`

107</h3>

108 

109O bloco `store` aponta o gateway para seu banco de dados PostgreSQL, que contém concessões de dispositivo e contadores de limite de taxa.

110 

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

112| ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

113| `postgres_url` | Sim | URL `postgres://` ou `postgresql://`. Obrigatório: o encontro de concessão de dispositivo, onde o callback do navegador escreve e o CLI de sondagem lê, precisa de estado entre réplicas. O gateway executa suas próprias migrações de esquema na inicialização, portanto a função precisa de `CREATE TABLE` no esquema de destino. Se sua política de segurança proíbe DDL da função de aplicativo, execute as migrações com uma função de administrador, inicialmente e novamente sempre que uma nova versão envie migrações, e conceda à função de aplicativo `SELECT, INSERT, UPDATE, DELETE` nas tabelas do gateway. Consulte [Atualizações](/pt/claude-apps-gateway-deploy#upgrades) e [Postgres](/pt/claude-apps-gateway-deploy#postgres). |

114| `username` | Não | Substitui o usuário em `postgres_url` |

115| `password` | Não | Credencial do banco de dados. Defina aqui em vez de em `postgres_url` para que a credencial fique fora da URL. Aceita qualquer caractere e tem precedência sobre credenciais de URL. |

116| `max_connections` | Não | Tamanho do pool de conexão Postgres por réplica. Padrão `5`, que é conservador e amigável para bancos de dados compartilhados. Com [limites de gastos](#admin) habilitados, o caminho quente faz algumas operações por solicitação de inferência, portanto aumente para um banco de dados dedicado sob carga e mantenha réplicas × isto abaixo do `max_connections` do banco de dados. |

117 

118Para desenvolvimento local, aponte `postgres_url` para um contêiner Postgres descartável, por exemplo `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.

119 

120<h3 id="upstreams">

121 `upstreams`

122</h3>

123 

124`upstreams` é uma lista ordenada. O gateway encaminha inferência para o primeiro upstream que resolve o modelo solicitado. Em `5xx`, `429` ou timeout, ele falha para o próximo; outro `4xx` não, porque esses erros são atribuíveis à solicitação em vez do upstream. Múltiplos upstreams do mesmo provedor devem definir um `name:` distinto.

125 

126Clientes Bedrock, Agent Platform e Foundry são construídos uma vez na inicialização, e seus SDKs atualizam credenciais internamente, portanto girar credenciais de nuvem não requer reinicialização. Chaves de API Anthropic estáticas e portadores são lidos na inicialização; consulte [Anthropic API](#anthropic-api).

127 

128<h4 id="anthropic-api">

129 Anthropic API

130</h4>

131 

132O upstream Anthropic mínimo é uma chave de API do [Claude Console](https://platform.claude.com):

133 

134```yaml theme={null}

135upstreams:

136 - provider: anthropic

137 auth:

138 api_key: ${ANTHROPIC_API_KEY}

139 # OU um portador OAuth (por exemplo, um token trocado por Workload-Identity-Federation):

140 # oauth_token: ${file:/var/run/secrets/anthropic-oauth-token}

141 # base_url: https://api.anthropic.com # padrão; substitua por um proxy de encaminhamento

142```

143 

144As duas formas de credencial diferem no cabeçalho que enviam:

145 

146* **`api_key`**: envia `x-api-key`. Gire-a no Claude Console e atualize a variável env.

147* **`oauth_token`**: envia `Authorization: Bearer`. Use a forma de portador quando sua organização emite tokens de curta duração em vez de chaves de API de longa duração. O portador é lido uma vez na inicialização, portanto atualize remontando o segredo e reiniciando.

148 

149Em vez de uma chave estática ou portador, você pode usar Workload Identity Federation. Crie uma regra de federação seguindo o [guia de Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation), depois monte o JWT OIDC da sua carga de trabalho como um arquivo, como um token de conta de serviço projetado do Kubernetes ou um id-token de plataforma CI. O gateway troca o JWT por um portador de curta duração e o atualiza automaticamente. O arquivo de token é relido em cada troca, portanto tokens projetados girados são coletados sem reinicialização.

150 

151```yaml theme={null}

152upstreams:

153 - provider: anthropic

154 auth:

155 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}

156 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

157 identity_token_file: /var/run/secrets/anthropic/id-token

158 # workspace_id: wrkspc_... # obrigatório se a regra cobre >1 workspace

159 # service_account_id: svac_... # verificação de alvo esperado opcional

160```

161 

162<h4 id="amazon-bedrock">

163 Amazon Bedrock

164</h4>

165 

166Para a implantação Bedrock do lado do cliente que o gateway substitui ou está na frente, consulte [Claude Code on Amazon Bedrock](/pt/amazon-bedrock). O upstream do lado do gateway:

167 

168```yaml theme={null}

169upstreams:

170 - provider: bedrock

171 region: us-east-1

172 auth: {} # preferido: cadeia de credencial padrão AWS

173 # OU credenciais explícitas:

174 # auth:

175 # aws_access_key_id: ${AWS_AKID}

176 # aws_secret_access_key: ${AWS_SK}

177 # aws_session_token: ${AWS_ST}

178 # OU um token de portador da API Bedrock:

179 # auth:

180 # aws_bearer_token: ${AWS_BEARER_TOKEN}

181 # Substitua o endpoint bedrock-runtime para implantações FIPS ou VPC-endpoint:

182 # base_url: https://bedrock-runtime-fips.us-east-1.amazonaws.com

183```

184 

185Um bloco `auth` vazio usa a cadeia de credencial padrão do AWS SDK: variáveis env, `~/.aws/credentials`, função de tarefa ECS, metadados de instância EC2 ou IRSA no EKS. Em produção, dê ao pod do gateway uma função IAM em vez de incorporar chaves estáticas em uma imagem de contêiner.

186 

187| Configuração | Como |

188| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

189| Permissões IAM | Conceda ao principal do gateway `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` nos ARNs do perfil de inferência e nos ARNs do modelo de fundação subjacente. Para o catálogo integrado em regiões dos EUA: `arn:aws:bedrock:<region>:<account>:inference-profile/us.anthropic.*` e `arn:aws:bedrock:*::foundation-model/anthropic.*`. |

190| Acesso ao modelo | No console Bedrock, por região, solicite e habilite acesso ao modelo para os modelos Claude que você deseja. Perfis de inferência entre regiões (`us.anthropic.*`) requerem acesso ao modelo em cada região que o perfil abrange. |

191| EKS (IRSA) | Crie uma função IAM com a política acima e uma política de confiança para o provedor OIDC do seu cluster com escopo para a conta de serviço do gateway. Anote a conta de serviço com `eks.amazonaws.com/role-arn: arn:aws:iam::<acct>:role/claude-gateway`. `auth: {}` a coleta. |

192| ECS / EC2 | Anexe a função IAM à definição de tarefa ou perfil de instância. `auth: {}` a coleta. |

193| Em qualquer outro lugar | Passe credenciais através das variáveis env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`, ou defina-as explicitamente em `auth:` com expansão `${VAR}` |

194| Região | `region:` é a região do endpoint da API. Perfis de inferência entre regiões roteiam através da geo (US, EU, APAC) independentemente de qual você escolher. Para regiões fora dos EUA ou ARNs de throughput provisionado, adicione um bloco [`models:`](#models) com os IDs corretos por upstream. |

195 

196<h4 id="google-cloud-agent-platform">

197 Google Cloud Agent Platform

198</h4>

199 

200Para a configuração equivalente do lado do cliente, consulte [Claude Code on Google Cloud](/pt/google-vertex-ai). O upstream do lado do gateway:

201 

202```yaml theme={null}

203upstreams:

204 - provider: vertex

205 region: us-east5

206 project_id: example-prod

207 auth: {} # preferido: Credenciais Padrão de Aplicativo

208 # OU um arquivo de chave de conta de serviço:

209 # auth: { service_account_json: /secrets/sa.json }

210 # Substitua o endpoint aiplatform para Private Service Connect:

211 # base_url: https://us-east5-aiplatform.p.googleapis.com

212```

213 

214Um bloco `auth` vazio usa Credenciais Padrão de Aplicativo: `GOOGLE_APPLICATION_CREDENTIALS`, metadados GCE ou Workload Identity do GKE. Arquivos de chave JSON de conta de serviço são suportados mas desencorajados; use Workload Identity ou anexe uma conta de serviço à instância GCE ou Cloud Run.

215 

216Defina `region: global` para usar o [endpoint global do Agent Platform](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) em vez de um regional. O Google então roteia cada solicitação para uma região disponível, portanto você não rastreia disponibilidade de modelo por região. Definir uma região específica fixa cada solicitação a ela.

217 

218| Configuração | Como |

219| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

220| Permissões IAM | Conceda à conta de serviço do gateway `roles/aiplatform.user` no projeto, ou uma função personalizada com `aiplatform.endpoints.predict`. Habilite a API do Agent Platform (`aiplatform.googleapis.com`). |

221| Acesso ao modelo | No Model Garden, habilite os modelos Claude para seu projeto. Eles publicam em regiões específicas; verifique o cartão do modelo para regiões suportadas. |

222| GKE (Workload Identity) | Vincule uma conta de serviço GCP à conta de serviço Kubernetes do gateway e anote a KSA com `iam.gke.io/gcp-service-account: claude-gateway@<proj>.iam.gserviceaccount.com`. `auth: {}` a coleta. |

223| Cloud Run / GCE | Defina a conta de serviço do serviço para uma com `roles/aiplatform.user`. `auth: {}` a coleta. |

224| Em qualquer outro lugar | `auth: { service_account_json: /secrets/sa.json }`, o caminho para um arquivo de chave JSON montado como um segredo. O campo leva um caminho de arquivo, não o conteúdo da chave, portanto nenhuma expansão `${file:…}` está envolvida. |

225 

226<h4 id="microsoft-foundry">

227 Microsoft Foundry

228</h4>

229 

230Para a implantação Foundry do lado do cliente, consulte [Claude Code on Microsoft Foundry](/pt/microsoft-foundry). O upstream do lado do gateway:

231 

232```yaml theme={null}

233upstreams:

234 - provider: foundry

235 resource: example-foundry # https://example-foundry.services.ai.azure.com

236 auth: { use_azure_ad: true } # preferido: DefaultAzureCredential / Managed Identity

237 # OU uma chave de API:

238 # auth:

239 # api_key: ${FOUNDRY_API_KEY}

240```

241 

242`use_azure_ad: true` resolve através de `DefaultAzureCredential`: Managed Identity no AKS, ACI ou App Service; a CLI do Azure; ou credenciais de ambiente. Chaves de API funcionam mas são em todo o projeto e não giram automaticamente. O endpoint do Foundry é derivado de `resource:`; defina o `base_url` opcional para substituí-lo para nuvens soberanas como Azure Government.

243 

244| Configuração | Como |

245| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

246| RBAC | Conceda à identidade do gateway `Azure AI User` ou `Cognitive Services User` no recurso Foundry |

247| Implantações | Foundry usa nomes de implantação escolhidos pelo administrador, não IDs de modelo canônicos. Adicione um bloco [`models:`](#models) mapeando cada ID canônico para seu nome de implantação. |

248| AKS (workload identity) | Federe uma Managed Identity Atribuída pelo Usuário com o emissor OIDC do cluster e vincule-a à conta de serviço do gateway. `use_azure_ad: true` a coleta via `WorkloadIdentityCredential`. |

249| ACI / App Service | Habilite identidade gerenciada atribuída pelo sistema ou pelo usuário no recurso. `use_azure_ad: true` a coleta. |

250| Em qualquer outro lugar | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Cite `${…}` dentro de `{ }`. |

251 

252<h4 id="multiple-upstreams">

253 Múltiplos upstreams

254</h4>

255 

256O mesmo provedor pode aparecer mais de uma vez com um `name:` distinto. Isso cobre diferentes regiões, diferentes contas através de diferentes cadeias de credencial, throughput provisionado versus sob demanda e fallback entre provedores.

257 

258O gateway tenta upstreams em ordem. `5xx`, `429`, timeouts e endpoint ausente (`501`) falham; outro `4xx` não. `429` é capacidade por upstream, portanto esgotamento de throughput provisionado (PT) falha para sob demanda. Um upstream que não pode resolver o modelo solicitado é pulado sem uma viagem de rede.

259 

260Este exemplo roteia uma alocação de throughput provisionado Bedrock primeiro, transborda para sob demanda e uma segunda conta, e volta para a API Anthropic por último:

261 

262```yaml theme={null}

263upstreams:

264 # Primário: throughput provisionado em sua região inicial.

265 - name: bedrock-pt

266 provider: bedrock

267 region: us-east-1

268 auth: {}

269 # Transbordamento: sob demanda entre regiões.

270 - name: bedrock-od

271 provider: bedrock

272 region: us-west-2

273 auth: {}

274 # Conta diferente: uma alocação Bedrock separada através de credenciais de função assumida.

275 - name: bedrock-acct2

276 provider: bedrock

277 region: us-east-1

278 auth:

279 aws_access_key_id: ${ACCT2_AKID}

280 aws_secret_access_key: ${ACCT2_SK}

281 # Último recurso: API Anthropic direta.

282 - name: anthropic-fallback

283 provider: anthropic

284 auth:

285 api_key: ${ANTHROPIC_API_KEY}

286 

287# IDs de modelo por upstream são codificados no `name:` do upstream; um upstream

288# sem um `name:` assume como padrão sua string de provedor (por exemplo, `bedrock`). Qualquer

289# upstream não listado para um modelo é pulado, que é como você roteia um modelo

290# para throughput provisionado enquanto tudo mais fica sob demanda.

291models:

292 - id: claude-opus-4-8

293 label: Claude Opus 4.8

294 upstream_model:

295 bedrock-pt: arn:aws:bedrock:us-east-1:111111111111:provisioned-model/abcdef

296 bedrock-od: us.anthropic.claude-opus-4-8

297 bedrock-acct2: us.anthropic.claude-opus-4-8

298 anthropic-fallback: claude-opus-4-8

299```

300 

301| Alavanca | Como |

302| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

303| Diferentes regiões | Um upstream Bedrock por região, cada um com sua própria `region:`. Com [`auto_include_builtin_models: true`](#models) os perfis de inferência entre regiões roteiam automaticamente; para implantações fixadas por região use um bloco `models:`. |

304| Diferentes contas | Um upstream Bedrock por conta, cada um com suas próprias credenciais em `auth:`. A cadeia padrão (`auth: {}`) usa a identidade do pod; para uma segunda conta, defina credenciais explícitas ou um token de portador. |

305| Throughput provisionado | Mapeie o modelo para o ARN de throughput provisionado em `models:` para o nome desse upstream. Outros upstreams mantêm o ID sob demanda, portanto a capacidade PT é esgotada antes de falhar. |

306| Endpoints VPC / FIPS | Defina `base_url:` no upstream para sua URL de endpoint VPC ou FIPS |

307| Roteamento com escopo de modelo | Omita um upstream do mapa `upstream_model:` de um modelo e esse upstream é pulado para esse modelo. Por exemplo, rotear Opus para throughput provisionado e Sonnet e Haiku para sob demanda. |

308 

309Falhar entre provedores de nuvem ou para a API Anthropic direta muda qual acordo, geografia e outros termos governam a solicitação.

310 

311O CLI aplica o mesmo feature gating a gateways independentemente de qual upstream serve uma determinada solicitação, portanto o failover não envia um campo de corpo que um upstream rejeitaria.

312 

313<h2 id="optional-sections">

314 Seções opcionais

315</h2>

316 

317<h3 id="admin">

318 `admin`

319</h3>

320 

321Opcional. Habilita `/v1/organizations/spend_limits`, que espelha a API de Administração Pública da Anthropic, e aplicação de gastos por desenvolvedor em `/v1/messages`. Consulte [Limites de gastos](/pt/claude-apps-gateway-spend-limits) para saber como os limites são definidos e aplicados; esta seção cobre as chaves `gateway.yaml` que ativam o recurso e o ajustam.

322 

323```yaml theme={null}

324admin:

325 # Chaves de API estáticas nomeadas para os endpoints de administração, enviadas como x-api-key.

326 # O id aparece no log de auditoria como admin-key:<id> portanto cada chave é

327 # atribuível. Array para rotação: adicione a nova chave, role clientes,

328 # remova a antiga.

329 write_keys:

330 - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

331 - { id: ci, key: "${GATEWAY_ADMIN_WRITE_KEY_CI}" }

332 read_keys:

333 - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

334 # Grupos IdP concedidos acesso total de administrador através do JWT normal do gateway (sem chave de API).

335 admin_groups: [platform-finops]

336 blocked_message: request an increase at https://go.example.com/claude-limits

337```

338 

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

340| ------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

341| `write_keys` | Não | Array de `{id, key}`. Um `x-api-key` correspondente a um desses pode listar, definir e deletar limites de gastos. Os valores das chaves devem ter pelo menos 32 caracteres; `id`s devem ser únicos em `read_keys` e `write_keys`. |

342| `read_keys` | Não | Array de `{id, key}`. Somente leitura: cada endpoint `GET`, incluindo listagem de limites, busca de um por ID e leitura de [`/effective`](/pt/claude-apps-gateway-spend-limits#%2Feffective) e [`/audit`](/pt/claude-apps-gateway-spend-limits#%2Faudit). |

343| `admin_groups` | Não | Nomes de grupos IdP. Um JWT do gateway cuja declaração `groups` inclui um desses tem acesso total de administrador, leitura e escrita, e audita como `oidc:<sub>`. Use isso para administradores humanos; use chaves de API para máquinas. |

344| `blocked_message` | Não | Anexado literalmente ao `429 billing_error` que um desenvolvedor bloqueado vê. Escreva a instrução completa, como uma URL ou canal Slack. Não definido, o erro é `spend limit reached`. |

345| `audit_retention_days` | Não | Padrão `365`. Linhas `admin_audit` mais antigas são varridas. |

346| `spend_retention_months` | Não | Padrão `13`. Linhas do contador `spend` mais antigas que isso são varridas. O padrão mantém um ano completo mais o mês parcial atual para relatórios ano a ano. |

347| `identity_retention_days` | Não | Padrão `90`. TTL de última visualização para linhas `principal_emails`, que contêm email, nome de exibição e grupos de cada desenvolvedor (PII). Deliberadamente mais curto que retenção de gastos para que uma identidade desprovisionada envelheça enquanto seus contadores de gastos anônimos permanecem. |

348| `group_limit_mode` | Não | `min` (padrão) ou `max`. Quando um desenvolvedor está em vários grupos com limites, `min` aplica o mais restritivo e `max` o menos. Usado tanto por aplicação quanto por `/effective`. |

349 

350<h3 id="enforcement">

351 `enforcement`

352</h3>

353 

354O bloco `enforcement` controla como as verificações de limite de gastos se comportam quando o armazenamento está indisponível.

355 

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

357| ---------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

358| `fail_closed_on_error` | Não | Padrão `false`. A aplicação de gastos falha aberta em uma interrupção do Postgres, portanto a inferência fica ativa. Defina `true` para falhar fechado: desenvolvedores acima do limite são bloqueados, mas também todos se o armazenamento estiver inacessível. Não tem efeito sem um bloco [`admin:`](#admin). |

359 

360<h3 id="models">

361 `models`

362</h3>

363 

364O bloco `models` é uma lista de modelos curada pelo administrador opcional, servida em `/v1/models` e usada para traduzir IDs de modelo por upstream. É obrigatório para regiões Bedrock fora dos EUA, ARNs de throughput provisionado Bedrock e nomes de implantação Foundry.

365 

366```yaml theme={null}

367auto_include_builtin_models: true # false: expor apenas a lista abaixo

368models:

369 - id: claude-opus-4-8

370 label: Claude Opus 4.8

371 # description: texto opcional mostrado em clientes que o exibem

372 upstream_model:

373 anthropic: claude-opus-4-8

374 bedrock: us.anthropic.claude-opus-4-8 # ou um ARN de perfil de inferência

375 foundry: your-opus-deployment-name

376```

377 

378<h3 id="managed">

379 `managed`

380</h3>

381 

382O bloco `managed` define políticas de acesso baseadas em função codificadas em grupos IdP ou domínio de email. As políticas são avaliadas em ordem; a primeira correspondência é selecionada, depois mesclada na base `match: {}` catch-all descrita abaixo. Elas são servidas por usuário em `GET /managed/settings` com cache ETag/304.

383 

384```yaml theme={null}

385managed:

386 policies:

387 # Grupos específicos primeiro.

388 - match: { groups: [eng-contractors] }

389 cli:

390 availableModels: [claude-sonnet-4-6]

391 permissions: { deny: ["WebFetch", "WebSearch"] }

392 # Catch-all padrão por último: corresponde a todos que se autenticaram.

393 - match: {}

394 cli:

395 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

396```

397 

398Um catch-all `match: {}`, convencionalmente listado por último, é tratado como uma camada base. Cada outra política herda qualquer chave que não defina do catch-all, portanto entradas por função apenas precisam listar o que difere do padrão da organização. As regras de mesclagem dependem do tipo de chave:

399 

400* **Listas de permissão**: `availableModels` e `permissions.allow`. A lista de uma política específica substitui completamente a da base.

401* **Listas de negação e arrays de hook**: `permissions.deny`, `permissions.ask`, `disabledMcpjsonServers`, `deniedMcpServers`, `blockedMarketplaces` e cada array de tipo de evento `hooks`. Estes tomam a união de base e política, portanto uma negação em toda a organização ou hook de auditoria não pode ser acidentalmente descartada por uma substituição por função.

402* **Chaves do tipo registro**: `env`, `modelOverrides` e `skillOverrides`. Estes mesclam superficialmente, portanto um bloco `env` por função substitui as chaves que define e herda o resto da base.

403 

404`availableModels` também é aplicado no servidor em `/v1/messages`, portanto um modelo negado retorna `400` independentemente do que o cliente envia.

405 

406| Correspondente | Comportamento |

407| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

408| `match: {}` | Corresponde a cada usuário autenticado. Comece com um desses e adicione políticas com escopo de grupo acima mais tarde. |

409| `match: { groups: [a, b] }` | Corresponde se a declaração `groups` do JWT contiver qualquer um dos grupos listados. Sensível a maiúsculas/minúsculas: grupos devem corresponder ao invólucro exato do IdP. |

410| `match: { email_domain: example.com }` | Corresponde à parte após o último `@` na declaração `email` do JWT, insensível a maiúsculas/minúsculas. Aceita um domínio por política. |

411| `match: { groups: [a], email_domain: example.com }` | Ambas as condições devem corresponder |

412 

413Um usuário autenticado que não corresponde a nenhuma política obtém os padrões do gateway, o que significa cada modelo no catálogo e nenhuma configuração gerenciada. Adicione um catch-all `match: {}` por último se quiser uma política padrão garantida.

414 

415<Note>

416 O gateway não mantém seu próprio diretório de usuários. Ele autoriza cada solicitação do token IdP do usuário, lendo associação de grupo da declaração `groups` do token e avaliando políticas contra ela. Não há lista para enumerar e nenhuma conta para pré-criar, e portanto nenhum endpoint SCIM, porque não há nada para SCIM sincronizar.

417 

418 Execute gerenciamento de ciclo de vida de usuário e grupo na fonte de verdade, que é o provisionamento SCIM nativo do seu IdP ou uma plataforma dedicada de governança de identidade. Associação e desprovisionamento governados lá fluem para o gateway automaticamente através do token. Se você quiser provisionamento SCIM de contas Claude em si, essa é uma capacidade [Claude for Enterprise](/pt/admin-setup).

419 

420 Dois relógios de propagação se aplicam:

421 

422 * **Conteúdo da política**: editar uma política e reimplantar alcança clientes conectados em sua próxima sondagem de configurações gerenciadas, dentro de uma hora

423 * **Associação de grupo**: mudar a associação de grupo de um usuário muda qual política os corresponde. Isso entra em vigor na próxima re-cunhagem de sessão, significando a próxima atualização silenciosa, limitada por `session.ttl_hours`.

424</Note>

425 

426<h4 id="what-goes-in-cli">

427 O que vai em `cli`

428</h4>

429 

430Cada valor `cli` é um documento `managed-settings.json` completo do Claude Code, o mesmo esquema que você implantaria via MDM ou `/etc/claude-code/managed-settings.json`, expresso aqui como YAML. O CLI aplica o documento entregue na camada gerenciada, acima das configurações de usuário e projeto.

431 

432O gateway valida cada documento contra o esquema de configurações do CLI na inicialização, portanto uma chave de nível superior não reconhecida ou uma chave reconhecida com um valor malformado falha na inicialização com um erro nomeando cada chave ofensiva. Partes deliberadamente abertas do esquema ainda aceitam valores arbitrários, porque clientes mais novos podem reconhecer entradas que o esquema do gateway não reconhece. Essas chaves abertas são `env`, `pluginConfigs` e chaves aninhadas sob `permissions`.

433 

434Como a validação usa o esquema agrupado com a versão instalada do gateway, colocar uma chave de configurações de nível superior introduzida por uma versão mais nova do Claude Code na configuração gerenciada requer atualizar o gateway primeiro. Teste uma nova política em um cliente antes de implantá-la.

435 

436A referência de chave completa está em [Configurações do Claude Code](/pt/settings#available-settings). As chaves que os operadores mais procuram primeiro:

437 

438```yaml theme={null}

439managed:

440 policies:

441 - match: {}

442 cli:

443 # Acesso ao modelo (também aplicado no servidor em /v1/messages)

444 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

445 

446 # Política de permissão

447 permissions:

448 deny:

449 - "WebFetch"

450 - "Read(./.env)"

451 - "Read(./secrets/**)"

452 disableBypassPermissionsMode: disable # bloqueia --dangerously-skip-permissions

453 allowManagedPermissionRulesOnly: true # ignora regras de permissão de usuário/projeto

454 

455 # Ambiente empurrado para o processo CLI. DISABLE_UPDATES bloqueia

456 # atualizações de fundo e manuais; DISABLE_AUTOUPDATER para apenas

457 # atualizações de fundo.

458 env:

459 DISABLE_UPDATES: "1" # fixe versões através de sua própria distribuição

460 

461 # Hooks em toda a organização. Comandos de hook executam em máquinas de desenvolvedor, não no

462 # gateway, portanto o caminho deve existir em cada SO do cliente na política.

463 hooks:

464 PostToolUse:

465 - matcher: "Edit|Write"

466 hooks:

467 - { type: command, command: /usr/local/bin/audit-edit.sh }

468```

469 

470| Chave | Aplicada por | Efeito |

471| ------------------------------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

472| `availableModels` | Gateway + CLI | Lista de permissão de modelo. Também verificada em `/v1/messages`, portanto um cliente corrigido não pode contorná-la. |

473| `permissions.allow` / `.deny` | CLI | Regras de ferramenta e comando. Consulte [Permissões](/pt/permissions). |

474| `permissions.disableBypassPermissionsMode` | CLI | Defina como `disable` para bloquear [`bypassPermissions`](/pt/permission-modes#skip-all-checks-with-bypasspermissions-mode), o modo que aprova automaticamente cada chamada de ferramenta, e a flag `--dangerously-skip-permissions` |

475| `allowManagedPermissionRulesOnly` | CLI | Quando `true`, regras de permissão de usuário e projeto são ignoradas; apenas regras deste documento se aplicam |

476| `env` | CLI | Variáveis de ambiente mescladas no processo CLI. Use para telemetria, atualização automática e substituições de nome de modelo. |

477| `hooks` | CLI | [Hooks](/pt/hooks) em toda a organização |

478 

479Como essas configurações chegam pela rede, o CLI mostra a cada desenvolvedor um diálogo de aprovação de segurança única antes de aplicar qualquer coisa que possa executar um comando shell ou alterar para onde o tráfego vai. O diálogo cobre:

480 

481* `hooks`

482* Variáveis `env` que não estão na lista segura integrada do CLI

483* Configurações de execução de shell como `apiKeyHelper` e `statusLine`

484* Conteúdo CLAUDE.md gerenciado

485 

486A lista segura determina quais variáveis `env` se aplicam sem aprovação:

487 

488* **Na lista segura**: variáveis de atualização automática e nome de modelo

489* **Não na lista segura**: variáveis de proxy, variáveis de URL base e `OTEL_EXPORTER_OTLP_ENDPOINT`

490 

491A configuração de [telemetria](#telemetry) do gateway empurra `OTEL_EXPORTER_OTLP_ENDPOINT`, portanto definir `telemetry.forward_to` dispara o diálogo em cada cliente interativo. Execuções não interativas com a flag `-p` pulam o diálogo e aplicam configurações sem aprovação. O diálogo protege a máquina do desenvolvedor de um gateway comprometido ou hostil, não a organização do desenvolvedor, portanto o skip `-p` é intencional em vez de uma lacuna.

492 

493Se um desenvolvedor recusar, Claude Code sai em vez de aplicar a política. Empurrar um novo hook ou variável env não segura para uma política ampla portanto significa um prompt de aprovação em cada inicialização do desenvolvedor correspondente.

494 

495A chave `cli` foi nomeada `settings` em versões anteriores. Essa ortografia ainda é aceita como um alias, mas novas implantações devem usar `cli`.

496 

497<h4 id="precedence-with-other-managed-sources">

498 Precedência com outras fontes gerenciadas

499</h4>

500 

501Se um dispositivo também tiver um `managed-settings.json` local ou política entregue por MDM, as fontes gerenciadas não mesclam. A fonte de maior prioridade fornece todas as configurações de política, classificadas nesta ordem com maior prioridade primeiro:

502 

5031. O [auxiliar de política](/pt/settings#compute-managed-settings-with-a-policy-helper)

5042. Configurações entregues pelo gateway

5053. MDM, via registro HKLM no Windows ou plist no macOS

5064. O arquivo `managed-settings.json`

5075. O registro HKCU, apenas no Windows

508 

509Hosts de incorporação podem fornecer política através da opção SDK `managedSettings`. É ignorado por padrão e se aplica apenas quando uma fonte gerenciada opta por [`parentSettingsBehavior: "merge"`](/pt/settings#available-settings), filtrado para que possa apertar a política mas não afrouxá-la.

510 

511A exceção é um pequeno conjunto de chaves entre fontes, honradas quando qualquer fonte de administrador as define; a camada HKCU gravável pelo usuário é excluída:

512 

513* `sandbox.network.allowManagedDomainsOnly` e `sandbox.filesystem.allowManagedReadPathsOnly`: quando bloqueadas, as listas de permissão correspondentes são unidas entre fontes

514* [`allowAllClaudeAiMcps`](/pt/settings#available-settings): substituição de permissão apenas para a lista de permissão do servidor MCP claude.ai

515* `sandbox.bwrapPath` e `sandbox.socatPath`: caminhos do sistema de arquivos para os binários auxiliares [sandbox](/pt/sandboxing)

516 

517`allowManagedPermissionRulesOnly` e `disableBypassPermissionsMode` não são entre fontes, portanto apenas o valor da fonte vencedora se aplica.

518 

519As políticas do gateway se aplicam a cada invocação do Claude Code na máquina, incluindo execuções não interativas `claude -p` e sessões geradas pelo Agent SDK. Se o gateway estiver inacessível na inicialização, sessões assinadas saem com um erro em vez de executar sem sua política.

520 

521<Warning>

522 `mcpServers` dentro de um bloco `cli` de política é rejeitado na inicialização do gateway. Distribuição de MCP por grupo não está disponível; implante servidores MCP via `managed-mcp.json` baseado em arquivo em cada dispositivo ou deixe desenvolvedores adicioná-los localmente.

523</Warning>

524 

525<h3 id="telemetry">

526 `telemetry`

527</h3>

528 

529O CLI envia métricas, logs e, quando habilitado, rastreamentos do OpenTelemetry Protocol (OTLP) sobre HTTP para o gateway, que os retransmite literalmente para cada destino configurado. Consulte [Monitoramento de uso](/pt/monitoring-usage) para as métricas e eventos que o CLI emite.

530 

531O CLI carimba cada exportação com a identidade do usuário autenticado, lida do JWT emitido pelo gateway: os atributos `user.id`, `user.email` e `user.groups`. A atribuição de custo e uso por desenvolvedor portanto funciona sem nenhuma configuração do lado do desenvolvedor.

532 

533```yaml theme={null}

534telemetry:

535 forward_to:

536 - url: https://otel-collector.internal.example.com

537 headers:

538 Authorization: ${OTLP_TOKEN}

539 # Opt-in por sinal. Padrão: apenas métricas.

540 metrics: true

541 logs: false

542 traces: false

543 - url: https://api.datadoghq.com/api/v2/otlp

544 headers:

545 DD-API-KEY: ${DD_API_KEY}

546```

547 

548<Warning>

549 Cada destino opta por `metrics`, `logs` e `traces` independentemente, e o padrão é apenas métricas. Os sinais diferem em sensibilidade:

550 

551 * **Métricas**: contadores agregados como contagens de token, contagens de solicitação e latência

552 * **Logs e rastreamentos**: podem carregar comandos bash completos, entradas de ferramenta e caminhos de arquivo, cobrindo qualquer coisa que Claude Code faz na máquina de um desenvolvedor

553 

554 Habilite logs e rastreamentos apenas em destinos com os controles de acesso e política de retenção que os dados justificam.

555</Warning>

556 

557A telemetria está desativada no CLI por padrão. Configurar `telemetry.forward_to` junto com `listen.public_url` a ativa. O gateway empurra cinco variáveis env para cada cliente conectado através de `/managed/settings`:

558 

559* `CLAUDE_CODE_ENABLE_TELEMETRY=1`

560* `OTEL_METRICS_EXPORTER=otlp`

561* `OTEL_LOGS_EXPORTER=otlp`

562* `OTEL_TRACES_EXPORTER=otlp`

563* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

564 

565O endpoint empurrado é construído a partir da URL pública, portanto métricas e logs não precisam de nenhuma configuração OTEL de desenvolvedores ou políticas. A configuração empurrada é aplicada na camada gerenciada, substituindo variáveis `OTEL_*` que um desenvolvedor define localmente.

566 

567[Rastreamentos](/pt/monitoring-usage#traces-beta) adicionalmente requerem `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` em cada cliente. O gateway não empurra essa variável, portanto defina-a através do bloco `env` de uma política gerenciada. Não está na lista segura do CLI, portanto entregá-la através de uma política é coberta pelo mesmo [diálogo de aprovação de segurança](#managed) que o endpoint OTLP empurrado já dispara.

568 

569Ambas as codificações OTLP protobuf e JSON são retransmitidas, e qualquer backend compatível com OpenTelemetry funciona como destino.

570 

571<h3 id="http-tuning">

572 Ajuste HTTP

573</h3>

574 

575Quatro blocos opcionais de nível superior, `access_control`, `limits`, `timeouts` e `rate_limits`, ajustam a superfície HTTP. Os padrões se adequam à maioria das implantações.

576 

577| Bloco | Chave | Padrão | Descrição |

578| ---------------- | ---------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

579| `access_control` | `allow_cidrs` / `deny_cidrs` | vazio | Permitir/negar IP de entrada por endereço do cliente, após resolução `trusted_proxies`. `deny_cidrs` é verificado primeiro; um cliente que corresponde é rejeitado mesmo se `allow_cidrs` também corresponder. Se `allow_cidrs` não estiver vazio o gateway é padrão-negar. `/healthz` e `/readyz` estão isentos de `allow_cidrs`. |

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

581| `limits` | `max_request_header_bytes` | não definido | Quando definido, cabeçalhos de tamanho excessivo retornam `431` |

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

583| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima pelos cabeçalhos de resposta do upstream (tempo até o primeiro byte). O corpo da resposta então flui sem limite de relógio de parede. Aplica-se ao caminho upstream Anthropic direto; Bedrock, Agent Platform e Foundry são limitados pelo próprio timeout do SDK do provedor. |

584| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Limite de taxa por IP no endpoint de autorização de dispositivo não autenticado. Aumente para uma grande organização atrás de um IP de saída compartilhado ou NAT. Esses limites se aplicam apenas ao fluxo de concessão de dispositivo de login, não a `/v1/messages` inferência. Consulte [Resistência de força bruta de código de usuário](/pt/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

585| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Limite de taxa por IP em envios `user_code` em `/device` |

586 

587<h2 id="complete-example">

588 Exemplo completo

589</h2>

590 

591Esta configuração de referência completa exercita cada seção principal; os blocos [ajuste HTTP](#http-tuning) mantêm seus padrões. Copie-a, delete o que você não precisa e preencha seus valores. A configuração no [Quickstart](/pt/claude-apps-gateway#quickstart) é uma versão mínima disso.

592 

593```yaml gateway.yaml theme={null}

594# Execute com:

595# claude gateway --config gateway.yaml

596#

597# A verbosidade do log operacional é controlada pela variável de ambiente

598# CLAUDE_GATEWAY_LOG_LEVEL (info | warn | error; padrão info). Não afeta

599# eventos de auditoria, que são sempre emitidos.

600 

601listen:

602 host: 0.0.0.0

603 port: 8080

604 public_url: https://claude-gateway.internal.example.com

605 # Omita o bloco tls ao executar atrás de um ingress que termina TLS.

606 # tls:

607 # cert: /certs/gateway.crt

608 # key: /certs/gateway.key

609 # trusted_proxies:

610 # - 10.0.0.0/8

611 

612oidc:

613 issuer: https://example.okta.com

614 client_id: 0oa1example2

615 client_secret: ${OIDC_CLIENT_SECRET}

616 allowed_email_domains:

617 - example.com

618 # Obrigatório quando o emissor é o servidor org Okta, cujos id_tokens

619 # podem omitir email e grupos; o gateway os preenche de /userinfo.

620 userinfo_fallback: true

621 # allowed_groups: [claude-code-users]

622 # Okta emite grupos apenas quando o escopo `groups` é solicitado e o

623 # filtro de declaração de grupos do aplicativo os permite. A política de contratados abaixo

624 # corresponde em grupos, portanto o escopo é solicitado aqui.

625 scopes: [openid, profile, email, offline_access, groups]

626 # extra_auth_params: { access_type: offline, prompt: consent } # Google

627 # groups_claim: groups # Funções de aplicativo Entra: use `roles`

628 # email_claim: email

629 

630session:

631 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32

632 # ttl_hours: 1

633 

634store:

635 postgres_url: ${GATEWAY_POSTGRES_URL}

636 # max_connections: 5

637 

638# Habilita /v1/organizations/spend_limits (espelha a API de Administração Anthropic)

639# e aplicação de gastos por desenvolvedor em /v1/messages. Omita para desabilitar.

640# Os limites em si são definidos via API de administração, não aqui.

641# admin:

642# write_keys:

643# - { id: terraform, key: "${GATEWAY_ADMIN_WRITE_KEY_TF}" }

644# read_keys:

645# - { id: reporting, key: "${GATEWAY_ADMIN_READ_KEY}" }

646# admin_groups: [platform-finops]

647# blocked_message: request an increase at https://go.example.com/claude-limits

648# # audit_retention_days: 365

649# # spend_retention_months: 13

650# # identity_retention_days: 90

651# # group_limit_mode: min

652 

653# enforcement:

654# fail_closed_on_error: false

655 

656upstreams:

657 - provider: anthropic

658 auth:

659 api_key: ${ANTHROPIC_API_KEY}

660 

661 # - provider: bedrock

662 # region: us-east-1

663 # auth: {}

664 

665 # - provider: vertex

666 # region: us-east5

667 # project_id: example-prod

668 # auth: {}

669 

670 # - provider: foundry

671 # resource: example-foundry

672 # auth: { use_azure_ad: true }

673 

674auto_include_builtin_models: true

675models:

676 - id: claude-opus-4-8

677 label: Claude Opus 4.8

678 upstream_model:

679 anthropic: claude-opus-4-8

680 # bedrock: us.anthropic.claude-opus-4-8

681 # vertex: claude-opus-4-8

682 # foundry: <your-opus-deployment-name>

683 - id: claude-sonnet-4-6

684 label: Claude Sonnet 4.6

685 upstream_model:

686 anthropic: claude-sonnet-4-6

687 - id: claude-haiku-4-5

688 label: Claude Haiku 4.5

689 upstream_model:

690 anthropic: claude-haiku-4-5

691 

692managed:

693 policies:

694 - match: { groups: [contractors] }

695 cli:

696 availableModels: [claude-haiku-4-5]

697 # Restrinja o seletor Padrão à opção availableModels em vez de

698 # o padrão de camada, portanto contratados não obtêm um 400 no padrão.

699 enforceAvailableModels: true

700 # allow aprova automaticamente essas ferramentas; não bloqueia o resto.

701 # Adicione regras deny para restringir ferramentas.

702 permissions: { allow: [Read, Grep] }

703 - match: {}

704 cli:

705 availableModels: [claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5]

706 permissions:

707 allow: [Read, Grep, Bash, Edit]

708 deny: ["WebFetch"]

709 env: { HTTP_PROXY: http://proxy.example.com:8080 }

710 

711telemetry:

712 forward_to:

713 - url: https://otel.internal.example.com:4318

714 headers:

715 Authorization: Bearer ${OTEL_TOKEN}

716```

717 

718<h2 id="client-side-managed-settings">

719 Configurações gerenciadas do lado do cliente

720</h2>

721 

722Tudo acima configura o servidor gateway. Apontar máquinas de desenvolvedor para ele é configurado separadamente, em cada dispositivo, através das [configurações gerenciadas](/pt/settings#settings-files) do Claude Code. O gateway não pode empurrar essas chaves em si, porque são o que dizem ao cliente onde o gateway está.

723 

724Para o CLI, defina ambas as chaves no `managed-settings.json` por SO:

725 

726```json theme={null}

727{

728 "forceLoginMethod": "gateway",

729 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"

730}

731```

732 

733Implante esse arquivo em cada dispositivo, tipicamente via sua plataforma MDM. O caminho do arquivo difere por plataforma:

734 

735| Plataforma | Caminho |

736| ----------- | ------------------------------------------------------------------------------------------------------------------------------------ |

737| macOS | `/Library/Application Support/ClaudeCode/managed-settings.json`, ou o domínio de preferências gerenciadas `com.anthropic.claudecode` |

738| Linux e WSL | `/etc/claude-code/managed-settings.json` |

739| Windows | `C:\Program Files\ClaudeCode\managed-settings.json`, ou Group Policy via registro HKLM |

740 

741`forceLoginGatewayUrl` e o valor `"gateway"` de `forceLoginMethod` são honrados apenas da camada gerenciada controlada pelo administrador. Um desenvolvedor definindo-os em seu próprio `~/.claude/settings.json` não tem efeito.

742 

743<h2 id="related">

744 Relacionado

745</h2>

746 

747* [Visão geral do gateway de aplicativos Claude](/pt/claude-apps-gateway): quickstart e conexão de desenvolvedor

748* [Guia de implantação](/pt/claude-apps-gateway-deploy): configuração de IdP, imagem de contêiner, Kubernetes e Cloud Run e operações

749* [Limites de gastos](/pt/claude-apps-gateway-spend-limits): limites por desenvolvedor e a API de Administração

claude-apps-gateway-deploy.md +301 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Implantação e operação do gateway de aplicativos Claude

6 

7> Registre o gateway com seu IdP, crie o contêiner, implante no Kubernetes ou Cloud Run e o opere: verificações de integridade, rotação de segredos, atualizações e segurança.

8 

9Esta página cobre o lado operacional da execução do [gateway de aplicativos Claude](/pt/claude-apps-gateway): registrar um cliente OAuth em seu provedor de identidade (IdP), implantar o gateway como um contêiner e executá-lo no dia a dia. Para cada opção no arquivo `gateway.yaml` que o gateway lê na inicialização, consulte a [Referência de configuração](/pt/claude-apps-gateway-config).

10 

11Uma implantação em produção segue quatro etapas em ordem, e as seções abaixo as correspondem. As duas primeiras são onde você faz escolhas; as duas últimas são material de referência para consultar quando estiver em execução.

12 

131. [Configure seu provedor de identidade](#identity-provider-setup): registre o cliente OAuth e verifique as notas específicas do IdP para Okta, Entra e Google

142. [Implante o gateway](#deployment): crie uma imagem de contêiner fixada e execute-a no Kubernetes, Cloud Run ou sua própria plataforma. Esta seção também cobre decisões de custo, bypass, múltiplos gateways e serverless

153. [Configure operações](#operations): logs, sondas de integridade, comportamento de interrupção, rotação de segredos e atualizações. Referência para quando você estiver conectando monitoramento e runbooks

164. [Revise a postura de segurança](#security): para onde os dados fluem, o modelo de ameaça e respostas de conformidade. Referência para uma revisão de segurança

17 

18Se uma entrada ou inicialização falhar no caminho, vá direto para [Solução de problemas](#troubleshooting), que é indexada no erro que você vê.

19 

20<Note>

21 **Implante em sua rede privada.** Claude Code apenas se conecta a um gateway cujo endereço é privado. Esta é uma proteção de segurança, porque um gateway confiável pode enviar configurações que executam comandos em máquinas de desenvolvedor. Coloque o gateway atrás de um balanceador de carga interno ou VPN e dê a ele um nome de host que seja resolvido apenas para IPs privados.

22</Note>

23 

24<h2 id="identity-provider-setup">

25 Configuração do provedor de identidade

26</h2>

27 

28Registre um aplicativo web OAuth/OpenID Connect (OIDC) confidencial com um único URI de redirecionamento, `https://<gateway>/oauth/callback`, e atribua-o aos usuários ou grupos que devem ter acesso ao gateway.

29 

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

31 

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

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

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

35 

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

37 

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

39 

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

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

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

43 

44Para suporte com um provedor de identidade não abordado acima, consulte [Troubleshooting](#troubleshooting).

45 

46<Warning>

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

48 

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

50</Warning>

51 

52<h2 id="deployment">

53 Implantação

54</h2>

55 

56O gateway é um único binário Linux. Ele escala horizontalmente porque as réplicas são sem estado e o Postgres é a camada de coordenação compartilhada. Execute-o como você executa serviços sem estado em seu ambiente. O resto desta seção descreve o que a imagem precisa, com notas breves para Kubernetes e Cloud Run.

57 

58O gateway foi projetado para ser executado dentro de sua rede, porque mantém sua credencial upstream e atua como o único ponto de saída para inferência. Pode ser executado em qualquer lugar que seus desenvolvedores e seu IdP possam alcançar via HTTPS; trate-o como qualquer outro serviço que mantém uma credencial de produção.

59 

60Algumas decisões moldam a implantação além de onde ela é executada:

61 

62* **Custo**: não há licença separada ou taxa por assento para o gateway; é parte do binário `claude`. Você paga pela inferência através de seu compromisso de nuvem ou Anthropic existente, mais a computação para o contêiner e seu coletor de telemetria.

63* **Bypass**: o gateway não impõe que a única rota para um modelo passe por ele. Um desenvolvedor com sua própria credencial ainda pode chamar o provedor diretamente, então fechar esse caminho é uma decisão de política de rede, por exemplo, bloqueando a saída para `api.anthropic.com` exceto do gateway. Bloquear essa saída também quebra a [verificação de segurança de domínio WebFetch](/pt/data-usage#webfetch-domain-safety-check), que chama `api.anthropic.com` de cada máquina do desenvolvedor; defina `skipWebFetchPreflight: true` na política gerenciada para desativá-lo.

64* **Múltiplos gateways**: cada gateway é uma implantação separada com sua própria configuração. O CLI armazena sua impressão digital de confiança e credenciais por nome de host do gateway, então diferentes equipes podem se conectar a diferentes gateways sem conflito. Para servir múltiplos emissores OIDC, execute instâncias separadas.

65* **Serverless**: Cloud Run funciona; defina `min-instances: 1` para evitar descoberta OIDC fria. Lambda e Cloud Functions não funcionam, porque o gateway é um servidor HTTP de longa duração.

66 

67Cada topologia de produção aqui coloca um proxy L7, como um Ingress, o front-end do Cloud Run ou um ALB, na frente de réplicas HTTP simples. Defina [`listen.trusted_proxies`](/pt/claude-apps-gateway-config#listen) para os intervalos de origem do proxy para que o gateway leia IPs de cliente de `X-Forwarded-For`. O gateway honra o cabeçalho apenas quando o par TCP é confiável; o [exemplo trabalhado do Google Cloud](/pt/claude-apps-gateway-on-gcp) tem valores concretos por topologia. Sem proxies confiáveis, cada solicitação parece vir do IP do proxy, o que colapsa limites de taxa por IP em um balde compartilhado e registra o IP do proxy em eventos de auditoria.

68 

69<h3 id="container-image">

70 Imagem de contêiner

71</h3>

72 

73Construa sua própria imagem em torno do binário nativo `claude` da versão padrão do Claude Code:

74 

751. Baixe a compilação Linux para a arquitetura de sua imagem de uma versão fixada; consulte [Instalar uma versão específica](/pt/setup#install-a-specific-version) para a URL de download.

762. Verifique-a contra o `manifest.json` assinado por GPG da versão conforme descrito em [Integridade binária e assinatura de código](/pt/setup#binary-integrity-and-code-signing).

773. Copie-a para o contexto de compilação.

78 

79Espelhe a versão em seu registro interno se suas compilações não conseguirem alcançar o host de versão, e fixe a versão que sua frota executa.

80 

81Além do binário, a imagem precisa:

82 

83* **Uma imagem baseada em glibc**: a compilação glibc tem apenas dependências dinâmicas de bibliotecas glibc. Imagens baseadas em Musl precisam da compilação `linux-x64-musl` ou `linux-arm64-musl` mais pacotes adicionais; consulte [Configuração do Alpine Linux](/pt/setup#alpine-linux-and-musl-based-distributions).

84* **Um diretório de estado gravável**: o gateway é executado como qualquer usuário, mas imagens mínimas não têm home gravável. Defina `CLAUDE_CONFIG_DIR` para um caminho gravável como `/tmp/.claude`.

85* **O comando do contêiner**: `claude gateway --config /etc/claude/gateway.yaml`, com o arquivo de configuração montado como somente leitura e segredos fornecidos como variáveis de ambiente; o gateway escuta em `listen.port`, padrão `8080`.

86 

87<h3 id="kubernetes">

88 Kubernetes

89</h3>

90 

91Execute o gateway como uma Deployment, como qualquer serviço sem estado:

92 

93* Monte a configuração de um ConfigMap e segredos de um Secret; referencie segredos no YAML via `${file:/path/to/secret}` ou como variáveis de ambiente

94* Termine TLS no Ingress e defina `listen.public_url` para o nome de host do Ingress

95* Aponte a sonda de prontidão para `GET /readyz` e a sonda de vivacidade para `GET /healthz`

96 

97<Note>

98 **Identidade de carga de trabalho**

99 

100 Prefira a identidade de carga de trabalho da plataforma em relação a chaves estáticas: IRSA no EKS para Bedrock, Workload Identity no GKE para Agent Platform e identidade de carga de trabalho no AKS para Foundry. Defina `auth: {}` no bloco upstream, ou `use_azure_ad: true` para Foundry, e o gateway pega a identidade do pod através da cadeia de credencial padrão desse provedor. Para um emparelhamento entre nuvens, como um upstream Bedrock no GKE, defina credenciais explícitas no bloco `auth` do upstream. A [referência `upstreams`](/pt/claude-apps-gateway-config#upstreams) tem detalhes de configuração por plataforma.

101</Note>

102 

103<h3 id="cloud-run">

104 Cloud Run

105</h3>

106 

107Configure o serviço da seguinte forma:

108 

109* Deixe `listen.port` em seu padrão de `8080`, que corresponde ao `PORT` padrão do Cloud Run, ou defina `port: ${PORT}`

110* Defina `public_url` para a origem externamente alcançável. Para produção, isso normalmente é o nome de host de um balanceador de carga interno, porque `/login` [rejeita endereços públicos](/pt/claude-apps-gateway#prerequisites) e a URL `*.run.app` se resolve para um, então a URL do Cloud Run sozinha funciona apenas para um teste de fumaça `curl` ou navegador. A exceção é uma rede onde `*.run.app` se resolve privadamente através do Private Service Connect e uma zona privada do Cloud DNS; nessa topologia a URL do Cloud Run é um `public_url` válido. O [exemplo trabalhado do Google Cloud](/pt/claude-apps-gateway-on-gcp#deploy-the-gateway) cobre ambos.

111* Monte a configuração como um volume secreto

112* Defina `min-instances: 1` para evitar descoberta OIDC fria na primeira solicitação

113 

114<Note>

115 Para um exemplo trabalhado completo no Google Cloud, cobrindo Cloud Run ou GKE, Cloud SQL e Secret Manager, consulte [Implantar no Google Cloud](/pt/claude-apps-gateway-on-gcp).

116</Note>

117 

118<h3 id="push-the-gateway-url-to-developer-machines">

119 Envie a URL do gateway para máquinas de desenvolvedores

120</h3>

121 

122Assim que o gateway estiver servindo, envie `forceLoginMethod` e `forceLoginGatewayUrl` para a máquina de cada desenvolvedor através de configurações gerenciadas, via MDM ou escrevendo o `managed-settings.json` por SO diretamente. Sem isso, `/login` mostra o seletor de conta padrão sem opção de gateway. Consulte [Configurações gerenciadas do lado do cliente](/pt/claude-apps-gateway-config#client-side-managed-settings) para os caminhos de arquivo.

123 

124<h2 id="operations">

125 Operações

126</h2>

127 

128Assim que o gateway estiver servindo tráfego, a operação do dia a dia é ler seus logs, sondar sua saúde e girar seus segredos em seu cronograma. As subseções cobrem cada uma, mais o que o Postgres mantém e como atualizações e reversões se comportam.

129 

130<h3 id="logs">

131 Logs

132</h3>

133 

134O gateway escreve dois fluxos para stderr, ambos amigáveis a JSON:

135 

136* **Eventos de auditoria**: JSON de linha única por evento relevante para segurança. Canalize stderr para seu agregador de logs. Os eventos emitidos incluem `config.load`, `session.mint`, `session.refresh`, `device.authorize`, `device.verify`, `auth.denied`, `access.denied`, `inference`, `managed.serve`, `spend.blocked` e `admin.denied`. Os campos variam por evento:

137 * Eventos de mint e refresh bem-sucedidos carregam `sub`, `email`, `client_ip` e o resultado

138 * Eventos de negação carregam o motivo, caminho e IP do cliente, já que nenhuma identidade existe na negação

139 * `inference` registra qual upstream serviu a solicitação e o status da resposta

140 * `admin.denied` registra uma tentativa de autenticação de API de administrador rejeitada com o motivo (`invalid_key` ou `no_credentials`), IP do cliente, método e caminho, sem o material de chave apresentado

141* **Logs operacionais**: linhas legíveis por humanos com prefixo `[gateway]` para inicialização, avisos e erros upstream. A variável de ambiente `CLAUDE_GATEWAY_LOG_LEVEL` controla a verbosidade e aceita `info`, `warn` ou `error`, com `info` como padrão. Não afeta eventos de auditoria, que são sempre emitidos.

142 

143<h3 id="health">

144 Saúde

145</h3>

146 

147O gateway serve `GET /healthz` como uma sonda de vivacidade e `GET /readyz` como uma sonda de prontidão; `/readyz` verifica se o armazenamento é alcançável. Ambos estão isentos de `access_control.allow_cidrs`, então as sondas continuam funcionando em um listener bloqueado.

148 

149O documento de descoberta OAuth em `/.well-known/oauth-authorization-server` também retorna `200` apenas após carregamento de configuração, descoberta OIDC, construção de cliente upstream e migração do Postgres, então funciona como uma verificação de inicialização de ponta a ponta.

150 

151Um gateway em execução também serve uma descrição dos caminhos e formas de solicitação que aceita em `<public_url>/protocol`, correspondida à versão que você está executando. O conteúdo não é estável entre versões.

152 

153<h3 id="outage-behavior">

154 Comportamento de interrupção

155</h3>

156 

157Se o Postgres cair, o gateway em si continua servindo desenvolvedores conectados e novas entradas falham. Se os desenvolvedores realmente continuam funcionando depende de como seu orquestrador lida com prontidão:

158 

159* **Sessões existentes**: tokens portadores validam localmente com o segredo JWT, atualizações de sessão não tocam o armazenamento e o processo do gateway ainda pode servir inferência

160* **Novas entradas**: falham até que o Postgres se recupere, porque o fluxo de dispositivo e seus contadores de limite de taxa vivem no Postgres

161* **[Aplicação de limite de gastos](/pt/claude-apps-gateway-spend-limits#postgres-availability)**: falha aberta por padrão durante a interrupção, então a inferência ainda flui; inverta para falha fechada se preferir bloquear do que executar sem medição

162* **Prontidão**: `/readyz` relata não-pronto durante a interrupção, então orquestradores que controlam tráfego na prontidão removem cada réplica da rotação de uma vez. Nessa topologia todo tráfego, incluindo inferência que o gateway ainda poderia servir, falha no balanceador de carga até que o Postgres se recupere. A sonda de vivacidade em `/healthz` continua passando, então as réplicas não são reiniciadas. Aponte a sonda de prontidão para `/healthz` em vez disso se preferir que desenvolvedores conectados continuem funcionando através de uma interrupção de armazenamento; o custo é que novas entradas falham contra uma réplica que ainda relata pronto.

163 

164Se seu IdP cair, as sessões existentes funcionam até `ttl_hours`, e novas entradas e atualizações falham. Defina um `ttl_hours` mais longo se seu IdP tiver janelas de manutenção frequentes.

165 

166<h3 id="jwt-secret-rotation">

167 Rotação de segredo JWT

168</h3>

169 

170Gire o segredo de assinatura em três etapas para que as sessões existentes permaneçam válidas:

171 

1721. Gere um novo segredo. Coloque-o no início da matriz `session.jwt_secret`.

1732. Implante a implantação. Novos tokens assinam com o novo segredo; tokens antigos ainda verificam.

1743. Após `ttl_hours` mais uma margem, remova o segredo antigo e implante novamente.

175 

176A rotação também é a única maneira de forçar sessões para fora antes de expirarem: tokens portadores validam localmente contra o segredo JWT, então não há revogação por sessão. Substituir o segredo completamente, sem manter o antigo na matriz, invalida cada sessão pendente de uma vez. Para offboarding individual, desprovision o usuário em seu IdP; sua sessão termina dentro de `ttl_hours`.

177 

178<h3 id="postgres">

179 Postgres

180</h3>

181 

182O gateway mantém cinco tabelas, todas criadas por suas migrações de tempo de inicialização:

183 

184| Tabela | Conteúdo | Retenção |

185| ------------------ | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |

186| `kv` | Concessões de dispositivo (TTL de 10 minutos) e contadores de limite de taxa | TTL por linha |

187| `spend` | Contadores de gastos período-até-data por principal, em centavos | `admin.spend_retention_months`, padrão 13 |

188| `spend_limits` | Limites de gastos configurados | Até deletado via API |

189| `admin_audit` | Trilha de mutação de API de administrador | `admin.audit_retention_days`, padrão 365 |

190| `principal_emails` | Email, nome de exibição e grupos de IdP de cada principal vistos pela última vez. Contém PII. | `admin.identity_retention_days` desde última atividade, padrão 90 |

191 

192Um loop de 30 segundos expira linhas `kv` após seu TTL, e uma varredura horária impõe as janelas de retenção nas tabelas de gastos, então nada cresce sem limite. Sem [limites de gastos](/pt/claude-apps-gateway-spend-limits) configurados, apenas `kv` é escrito. Se sua política de segurança proíbe DDL da função de aplicativo, pré-crie essas tabelas e `_migrations` com uma função de administrador e conceda à função de aplicativo `SELECT, INSERT, UPDATE, DELETE` em cada uma.

193 

194Com limites de gastos em uso, um banco de dados perdido significa rastreamento de gastos e limites perdidos, não apenas re-entradas de desenvolvedores, então execute backups regulares. Para apagar um desenvolvedor que partiu imediatamente em vez de esperar pela retenção, execute `DELETE FROM principal_emails WHERE principal = '<sub>'` diretamente; isso remove a única tabela que mantém seu email, nome e grupos. Linhas `spend` e `admin_audit` referenciam apenas o `sub` OIDC pseudônimo.

195 

196<h3 id="upgrades">

197 Atualizações

198</h3>

199 

200As réplicas são sem estado, então uma reinicialização contínua é segura a qualquer momento. O gateway executa migrações de esquema na inicialização, o que significa que implantar o novo binário auto-migra o banco de dados. Se a função de banco de dados não conseguir executar DDL, pré-crie o esquema, incluindo a tabela `_migrations` semeada para a versão atual; caso contrário, a inicialização falha ao tentar `CREATE TABLE`.

201 

202As migrações são apenas anexadas, então reverter para um binário anterior que conhece menos migrações é seguro; ele ignora as linhas extras. A reversão também re-valida o YAML contra o esquema do binário mais antigo, então uma configuração que adotou uma chave introduzida pela versão mais nova falha na inicialização no mais antigo. Remova a nova chave antes de reverter.

203 

204Como você fixa a versão do gateway em sua própria imagem, correções em novas versões do Claude Code, incluindo correções de segurança, chegam à sua implantação apenas quando você atualiza o pino e reimplanta. Inclua o gateway no mesmo ciclo de patch que você usa para outros serviços que mantêm credenciais de produção.

205 

206<h2 id="security">

207 Segurança

208</h2>

209 

210Esta seção responde às perguntas que uma revisão de segurança faz: quais dados fluem através do gateway e para onde vão, quais ataques o design se defende e quais respostas pertencem a um questionário de conformidade.

211 

212<h3 id="data-flow">

213 Fluxo de dados

214</h3>

215 

216| Dados | Caminho | Enviado para Anthropic pelo gateway |

217| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | ----------------------------------------------------- |

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

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

220| Identidade (email, grupos, sub) | IdP → gateway → JWT → CLI; o CLI o carimba em exportações OTLP | Nunca |

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

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

223 

224<h3 id="threat-model-summary">

225 Resumo do modelo de ameaça

226</h3>

227 

228O gateway fica dentro do perímetro de rede, mas laptops de desenvolvedores individuais não são tratados como confiáveis. O design leva isso em conta de três maneiras:

229 

230* Os desenvolvedores mantêm JWTs de curta duração em vez de chaves upstream brutas. A perna CLI-para-gateway usa a concessão de dispositivo RFC 8628, e a troca de código de autorização do gateway com o IdP executa PKCE na configuração padrão, então um código de autorização IdP interceptado é inútil.

231* A página de verificação de dispositivo impõe POST de mesma origem e um limite de taxa por IP por RFC 8628 §5.1. Consulte [Resistência de força bruta de código de usuário](#user-code-brute-force-resistance).

232* Solicitações de saída passam por uma proteção de falsificação de solicitação do lado do servidor (SSRF) que resolve DNS, bloqueia endereços link-local e metadados de nuvem mais loopback por padrão e fixa a conexão ao IP resolvido, então URLs influenciadas pelo operador como o IdP e destinos OTLP não podem ser redirecionados para endpoints de metadados de nuvem. Intervalos privados RFC 1918 são deliberadamente permitidos, porque IdPs e coletores OTLP comumente vivem em IPs privados. Para desenvolvimento local contra um IdP de loopback ou coletor, defina `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` no ambiente do gateway; deixe desconfigurado em produção.

233 

234Se você adicionar seus próprios controles de saída, o gateway deve alcançar o servidor de metadados sempre que usar credenciais de metadados de instância como identidade de carga de trabalho.

235 

236Duas ameaças estão fora do escopo porque são sua infraestrutura para proteger:

237 

238* **Um host de gateway comprometido**: o host mantém a credencial upstream e distribui [configurações gerenciadas](/pt/claude-apps-gateway-config#managed) para cada desenvolvedor conectado, então o controle sobre a configuração do gateway é comparável ao controle sobre seu MDM. O diálogo de aprovação única do CLI para configurações capazes de shell limita mudanças silenciosas, mas não substitui a segurança do host.

239* **Um provedor OIDC malicioso**: o provedor assina os id\_tokens que o gateway confia, então pode afirmar qualquer identidade. Verificar e proteger seu IdP é sua responsabilidade.

240 

241<h3 id="user-code-brute-force-resistance">

242 Resistência de força bruta de código de usuário

243</h3>

244 

245O `user_code` que um desenvolvedor digita na página de verificação `/device` tem 8 caracteres extraídos de um alfabeto de 20 caracteres, o que produz 20⁸ ou cerca de 2,56×10¹⁰ combinações, e expira após 10 minutos.

246 

247O gateway aplica limites de taxa por IP nos endpoints de concessão de dispositivo, configuráveis via [`rate_limits`](/pt/claude-apps-gateway-config#http-tuning). Aumente os limites se muitos desenvolvedores entrarem de um único endereço NAT corporativo compartilhado. Os limites se aplicam apenas ao fluxo de entrada, não à inferência.

248 

249<h3 id="compliance-posture">

250 Postura de conformidade

251</h3>

252 

253* **Residência de dados**: o plano de dados do próprio gateway não envia nada para Anthropic a menos que a API Anthropic seja um upstream configurado; quando é, seu acordo de tratamento de dados existente se aplica ao caminho de inferência. Telemetria, auditoria, identidade e configurações vão apenas para os destinos que você configura.

254* **Tráfego de processo de host**: o processo de host é o CLI do Claude Code, que pode enviar análises de inicialização e verificações de atualização para Anthropic. Para implantações de saída estrita, defina `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` no ambiente do contêiner do gateway.

255* **Análises do cliente**: o CLI desativa sua própria análise de uso enquanto conectado a um gateway, e o relatório de erros está desativado por padrão em superfícies de API de terceiros.

256* **Máquinas do cliente**: CLIs de desenvolvedores ainda enviam verificações de nome de host WebFetch e verificações de versão para Anthropic a menos que `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` e `skipWebFetchPreflight: true` sejam definidos. Consulte [uso de dados](/pt/data-usage).

257* **Classificações de pesquisa**: a credencial do gateway desativa o coletor vinculado a Anthropic, então as classificações não são enviadas para Anthropic.

258* **Compartilhamento de transcrição**: escolher Sim em um prompt de compartilhamento de transcrição de pesquisa escreve um arquivo local em `~/.claude/feedback-bundles/` em vez de fazer upload para Anthropic.

259* **Atualizações do cliente**: verificações de atualização são separadas do tráfego do gateway. Fixe versões através de sua própria distribuição e defina `DISABLE_UPDATES` se laptops não devem buscar versões. `DISABLE_AUTOUPDATER` para apenas atualizações de fundo enquanto `claude update` ainda funciona.

260* **TLS**: sirva `public_url` sobre HTTPS em produção, seja do próprio listener do gateway via `listen.tls` ou de um ingress que termina TLS na frente de réplicas HTTP simples com `listen.public_url` definido. O gateway não recusa HTTP simples. O IdP deve servir HTTPS em produção, e o Postgres suporta `?sslmode=require`. Defina `Strict-Transport-Security` em seu ingress.

261* **Divulgação de vulnerabilidade**: siga [Relatando problemas de segurança](/pt/security#reporting-security-issues)

262 

263<h2 id="troubleshooting">

264 Troubleshooting

265</h2>

266 

267Para perguntas e feedback, use [Suporte do Claude Code](https://support.claude.com/en/collections/14445694-claude-code), ou abra um problema no [repositório GitHub do Claude Code](https://github.com/anthropics/claude-code/issues). Ao relatar um problema, inclua:

268 

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

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

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

272 

273| Sintoma | Causa | Correção |

274| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

277| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome de host do gateway se resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que cada um seja privado. Uma causa comum é um nome de pilha dupla onde uma família se resolve para um endereço público, incluindo balanceadores de carga de pilha dupla internos da AWS, que retornam endereços AAAA de intervalo público | Faça o nome do gateway se resolver apenas para endereços privados em máquinas de desenvolvedores. Para um nome de pilha dupla, solte o registro de intervalo público ou sirva um nome DNS apenas interno separado. Consulte o [pré-requisito de rede privada](/pt/claude-apps-gateway#prerequisites). |

278| CLI `/login`: `Gateway login requires a direct connection and does not support connecting through an HTTP proxy` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome de host do proxy se resolve para um endereço público. Um proxy cujo host se resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome de host se resolve para endereços privados |

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

280| A inicialização sai com um erro de validação de configuração nomeando `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um contêiner descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

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

282| A inicialização sai com um erro de descoberta OIDC após `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é alcançável do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. |

283| A inicialização sai com um erro de permissão do Postgres | A função de aplicativo carece de `CREATE TABLE` | Pré-crie o esquema com uma função de administrador e conceda DML à função de aplicativo, ou conceda DDL temporariamente para inicializações que aplicam novas migrações |

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

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

286| Cada solicitação do Bedrock retorna 502; o log mostra `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a solicitação de metadados de instância de dentro do contêiner. A inicialização e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira solicitação, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada contêiner na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do contêiner ECS e evitam a mudança completamente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |

287| Erro do IdP: escopo desconhecido ou não suportado | O IdP rejeita escopos que não reconhece | Defina `oidc.scopes` para exatamente a lista que seu IdP aceita; deve incluir `openid`. O padrão é `openid profile email offline_access`. |

288| As sessões não se renovam silenciosamente após definir `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suportar. Sem um token de atualização, os desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |

289| O navegador mostra "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou proxied | Abra o link de verificação diretamente |

290| Chrome bloqueia o botão Approve com "Refused to send form data … violates … Content Security Policy directive: form-action", mas a mesma página funciona no Safari ou Firefox | Chrome impõe `form-action` contra toda a cadeia de redirecionamento. Seu IdP redireciona para um segundo host que não está na lista de permissões. | Adicione cada origem adicional na cadeia de redirecionamento a `oidc.form_action_origins`. Abra Chrome DevTools → Console na página Approve para ver qual origem foi bloqueada. |

291| A entrada é concluída no IdP, mas o callback falha, com um erro de CSP no Chrome ou "this sign-in link has expired" no Safari | O IdP retornou o código via `response_mode=form_post`, que o auto-envia entre origens via POST para `/oauth/callback`. Chrome bloqueia isso sob um CSP estrito; Safari permite o envio, mas o callback lê apenas a string de consulta. | Certifique-se de que seu IdP honra `response_mode=query`, que o gateway solicita explicitamente para que o callback seja um redirecionamento simples |

292| O login funciona localmente, mas falha atrás de um ALB | `public_url` não definido, então o IdP obtém a origem interna `http://` como `redirect_uri` | Defina `listen.public_url` para a origem externa `https://` |

293| O desenvolvedor vê o prompt de confiança repetidamente | O certificado TLS está girando por réplica ou por solicitação | Use um certificado estável no ingress, ou termine TLS uma vez e execute réplicas sobre HTTP simples internamente |

294| CLI `/login`: "Could not verify the gateway's TLS certificate" ou `SELF_SIGNED_CERT_IN_CHAIN` | A cadeia TLS do gateway é assinada por uma CA privada não no armazenamento de confiança do host CLI | Claude Code lê o armazenamento de confiança do SO por padrão no binário nativo e no Node 22.15 ou posterior; [`CLAUDE_CODE_CERT_STORE`](/pt/network-config#ca-certificate-store) controla esse comportamento. Se a CA está instalada no armazenamento de confiança do SO, certifique-se de que os desenvolvedores estão em um tempo de execução atual. Caso contrário, defina `NODE_EXTRA_CA_CERTS` para o PEM do certificado CA antes de iniciar. O prompt de impressão digital de primeira conexão ainda se aplica. |

295 

296<h2 id="related">

297 Relacionado

298</h2>

299 

300* [Visão geral do gateway de aplicativos Claude](/pt/claude-apps-gateway): início rápido e conexão de desenvolvedor

301* [Referência de configuração](/pt/claude-apps-gateway-config): cada opção `gateway.yaml`

claude-apps-gateway-on-gcp.md +330 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Implantar gateway de aplicativos Claude no Google Cloud

6 

7> Um exemplo prático de execução do gateway de aplicativos Claude no Google Cloud: Cloud Run ou GKE, Cloud SQL para PostgreSQL, Secret Manager e autenticação de conta de serviço para Agent Platform.

8 

9<Note>

10 Esta página apresenta uma forma de executar o gateway de aplicativos Claude no Google Cloud. A configuração é um exemplo funcional para infraestrutura gerenciada pelo cliente em vez de uma implantação de produção suportada; use-a para ver como as peças se encaixam antes de adaptá-la ao seu próprio ambiente. Para os requisitos independentes de plataforma, consulte o [guia de implantação](/pt/claude-apps-gateway-deploy).

11</Note>

12 

13Este exemplo provisiona o gateway de aplicativos Claude no Google Cloud com o Agent Platform do Google Cloud como upstream de modelo, usando Cloud Run ou GKE para computação. Google Workspace é o exemplo de provedor de identidade (IdP), mas qualquer IdP compatível com OpenID Connect (OIDC) funciona; apenas o bloco `oidc` muda. Consulte [Configuração do provedor de identidade](/pt/claude-apps-gateway-deploy#identity-provider-setup) para detalhes específicos por IdP.

14 

15<h2 id="what-you’ll-build">

16 O que você construirá

17</h2>

18 

19<Frame>

20 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/claude-gateway-gcp-architecture.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=cb705151c69128ac0da235852d5600ab" alt="Diagrama do gateway de aplicativos Claude no Google Cloud: clientes Claude Code se conectam via HTTPS ao gateway (Cloud Run ou GKE), que é executado dentro de um VPC ao lado de um banco de dados Cloud SQL com IP privado para estado de sessão. O gateway faz login dos usuários via OIDC contra Google Workspace, lê configuração e segredos do Secret Manager, encaminha solicitações de modelo para Agent Platform e extrai sua imagem do Artifact Registry na implantação." width="760" height="400" data-path="images/claude-gateway-gcp-architecture.svg" />

21</Frame>

22 

23A configuração de referência provisiona:

24 

25* Serviço **Cloud Run** ou **GKE** Deployment executando o contêiner do gateway

26* Repositório **Artifact Registry** para a imagem do gateway

27* Instância **Cloud SQL para PostgreSQL**, apenas IP privado, para o [store](/pt/claude-apps-gateway-config#store) do gateway

28* Segredos **Secret Manager** para `gateway.yaml`, a chave de assinatura JWT, o segredo do cliente OIDC e a URL do Postgres

29* **Conta de serviço** com `roles/aiplatform.user`, anexada diretamente no Cloud Run ou vinculada via Workload Identity no GKE

30* **Internal Application Load Balancer** no Cloud Run, ou um **GKE Ingress** interno de classe `gce-internal` no GKE, para HTTPS

31 

32<h2 id="prerequisites">

33 Pré-requisitos

34</h2>

35 

36* Um projeto GCP com faturamento habilitado e permissão para criar os recursos acima

37* A CLI `gcloud`, autenticada com `gcloud auth login`, e Docker instalado localmente

38* Para o caminho GKE: `kubectl` e um cluster GKE no VPC criado no passo a passo abaixo

39* Acesso aos modelos Claude que você precisa no Model Garden, em uma região que os publica

40* Um cliente de aplicação web OAuth 2.0 do Google Workspace com URI de redirecionamento `https://<gateway-host>/oauth/callback`; consulte [Configuração do provedor de identidade](/pt/claude-apps-gateway-deploy#identity-provider-setup)

41* Um nome de host TLS para o gateway, normalmente um nome DNS interno apontando para o balanceador de carga

42 

43Defina o projeto e a região uma vez:

44 

45```bash theme={null}

46export PROJECT_ID=<your-project>

47export REGION=us-east5 # a region where the Claude models you need are published in Model Garden

48gcloud config set project "$PROJECT_ID"

49```

50 

51<h2 id="deploy-the-gateway">

52 Implantar o gateway

53</h2>

54 

55Os passos abaixo provisionam a implantação completa com comandos `gcloud`.

56 

57<Steps>

58 <Step title="Habilitar APIs">

59 Habilite as APIs de serviço que o passo a passo usa:

60 

61 ```bash theme={null}

62 gcloud services enable \

63 aiplatform.googleapis.com \

64 artifactregistry.googleapis.com \

65 sqladmin.googleapis.com \

66 secretmanager.googleapis.com \

67 iamcredentials.googleapis.com \

68 iam.googleapis.com \

69 compute.googleapis.com \

70 servicenetworking.googleapis.com \

71 run.googleapis.com \

72 container.googleapis.com

73 ```

74 

75 As APIs que você precisa dependem do caminho de implantação:

76 

77 * `compute` e `servicenetworking`: necessárias para o caminho Cloud SQL com IP privado

78 * `run`: apenas Cloud Run

79 * `container`: apenas GKE

80 </Step>

81 

82 <Step title="Criar a conta de serviço e conceder IAM">

83 O gateway é executado como uma conta de serviço dedicada com permissão para chamar Agent Platform. Ele alcança Cloud SQL sobre o VPC com um usuário de senha, portanto nenhuma função IAM do Cloud SQL é necessária:

84 

85 ```bash theme={null}

86 gcloud iam service-accounts create claude-gateway --display-name="Claude apps gateway"

87 SA="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

88 

89 gcloud projects add-iam-policy-binding "$PROJECT_ID" \

90 --member="serviceAccount:${SA}" --role="roles/aiplatform.user" --condition=None

91 ```

92 

93 Em seguida, habilite os modelos Claude para o projeto no Model Garden; os modelos são publicados em regiões específicas, portanto verifique cada cartão de modelo.

94 </Step>

95 

96 <Step title="Construir e enviar a imagem para Artifact Registry">

97 Construa a imagem de acordo com os [requisitos de imagem de contêiner](/pt/claude-apps-gateway-deploy#container-image), usando o binário glibc `linux-x64`, e envie-a:

98 

99 ```bash theme={null}

100 gcloud artifacts repositories create claude-gateway \

101 --repository-format=docker --location="$REGION"

102 gcloud auth configure-docker "${REGION}-docker.pkg.dev" --quiet

103 

104 # Cloud Run requires linux/amd64. --provenance=false avoids a buildx OCI

105 # image index that Cloud Run rejects.

106 docker build --platform=linux/amd64 --provenance=false \

107 -t "${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" .

108 docker push "${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>"

109 ```

110 </Step>

111 

112 <Step title="Provisionar Cloud SQL para PostgreSQL">

113 Crie a instância em um VPC via Private Services Access para que ela não tenha IP público; isso também satisfaz projetos onde `constraints/sql.restrictPublicIp` é aplicado:

114 

115 ```bash theme={null}

116 VPC=cc-gateway-vpc

117 gcloud compute networks create "$VPC" --subnet-mode=custom

118 gcloud compute networks subnets create cc-gateway-subnet \

119 --network="$VPC" --region="$REGION" --range=10.0.0.0/24

120 

121 # Private Services Access: one-time per VPC

122 gcloud compute addresses create "google-managed-services-${VPC}" \

123 --global --purpose=VPC_PEERING --prefix-length=16 --network="$VPC"

124 gcloud services vpc-peerings connect \

125 --service=servicenetworking.googleapis.com \

126 --ranges="google-managed-services-${VPC}" --network="$VPC"

127 

128 gcloud sql instances create claude-gateway-db \

129 --database-version=POSTGRES_16 --tier=db-g1-small --region="$REGION" \

130 --network="projects/${PROJECT_ID}/global/networks/${VPC}" --no-assign-ip

131 gcloud sql databases create claude_gateway --instance=claude-gateway-db

132 PGPASS="$(openssl rand -hex 24)"

133 gcloud sql users create gateway --instance=claude-gateway-db --password="$PGPASS"

134 

135 PRIVATE_IP="$(gcloud sql instances describe claude-gateway-db \

136 --format='value(ipAddresses[0].ipAddress)')"

137 GATEWAY_POSTGRES_URL="postgres://gateway:${PGPASS}@${PRIVATE_IP}:5432/claude_gateway?sslmode=require"

138 ```

139 

140 O runtime Cloud Run ou GKE deve estar neste VPC ou roteado para ele.

141 </Step>

142 

143 <Step title="Escrever gateway.yaml">

144 O bloco `upstreams` aponta para Agent Platform com `auth: {}`, portanto o gateway autentica via Application Default Credentials da conta de serviço do runtime. Consulte a [referência de configuração](/pt/claude-apps-gateway-config) para cada campo.

145 

146 Dois campos `listen` dependem do que está na frente do gateway:

147 

148 * `public_url`: necessário atrás de Cloud Run ou um GKE Ingress. O gateway constrói o `redirect_uri` do IdP e seu documento de descoberta apenas a partir deste valor, nunca a partir de cabeçalhos `X-Forwarded-*`.

149 * `trusted_proxies`: os intervalos de origem do front-end. O gateway honra `X-Forwarded-For` apenas quando o par TCP está nesta lista, depois percorre a cadeia passando hops confiáveis, portanto os limites de taxa de login por IP e eventos de auditoria registram IPs de desenvolvedores em vez do balanceador de carga.

150 

151 Defina `trusted_proxies` para corresponder ao seu front-end. Um GKE Ingress externo de classe `gce` não está listado: ele provisiona um endereço de regra de encaminhamento público, que a verificação [rede privada](/pt/claude-apps-gateway#prerequisites) do `/login` rejeita.

152 

153 | Front-end | `trusted_proxies` |

154 | --------------------------------------------------------- | -------------------------------------------------------- |

155 | Cloud Run alcançado diretamente, sem balanceador de carga | `[169.254.0.0/16]` |

156 | Internal Application Load Balancer na frente do Cloud Run | `169.254.0.0/16` mais CIDR da sua sub-rede somente proxy |

157 | GKE internal Ingress, classe `gce-internal` | CIDR da sua sub-rede somente proxy |

158 

159 O exemplo abaixo usa os valores do balanceador de carga interno na frente do Cloud Run.

160 

161 ```yaml gateway.yaml theme={null}

162 listen:

163 host: 0.0.0.0

164 port: 8080

165 public_url: https://claude-gateway.internal.example.com

166 trusted_proxies: [169.254.0.0/16, <your-proxy-only-subnet-cidr>]

167 

168 oidc:

169 issuer: https://accounts.google.com

170 client_id: <your-oauth-client-id>

171 client_secret: ${OIDC_CLIENT_SECRET} # GKE: ${file:/secrets/oidc-client-secret}

172 allowed_email_domains: [example.com]

173 # Google ignores offline_access; these yield refresh tokens:

174 scopes: [openid, profile, email]

175 extra_auth_params: { access_type: offline, prompt: consent }

176 

177 session:

178 jwt_secret: ${GATEWAY_JWT_SECRET} # GKE: ${file:/secrets/jwt-secret}

179 

180 store:

181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}

182 

183 upstreams:

184 - provider: vertex

185 region: <your-region> # must match $REGION

186 project_id: <your-project>

187 auth: {} # ADC via the runtime service account

188 ```

189 

190 <Note>

191 Os id\_tokens do Google não carregam nenhuma reivindicação `groups`. Para usar políticas baseadas em grupos em [`managed.policies`](/pt/claude-apps-gateway-config#managed) com Google Workspace como IdP, configure [`oidc.google_groups`](/pt/claude-apps-gateway-config#oidc), que procura os grupos de cada usuário através da API Admin SDK Directory usando uma conta de serviço com delegação em todo o domínio. Sem isso, corresponda em `email_domain` em vez disso.

192 </Note>

193 </Step>

194 

195 <Step title="Armazenar segredos no Secret Manager">

196 Crie quatro segredos e conceda `roles/secretmanager.secretAccessor` à conta de serviço `claude-gateway`:

197 

198 | Segredo | Fonte |

199 | ---------------------------- | ------------------------------------------- |

200 | `gateway-jwt-secret` | `openssl rand -base64 32` |

201 | `gateway-oidc-client-secret` | Google Cloud Console → cliente OAuth |

202 | `gateway-postgres-url` | `$GATEWAY_POSTGRES_URL` do passo Cloud SQL |

203 | `gateway-config` | o `gateway.yaml` completo do passo anterior |

204 

205 Como os segredos chegam ao contêiner difere por caminho:

206 

207 * No GKE eles são montados como arquivos via o driver CSI do Secret Manager, e `gateway.yaml` referencia `${file:/secrets/...}`.

208 * No Cloud Run, que não pode montar múltiplos segredos em um diretório, `gateway.yaml` é montado como arquivo e os outros três são injetados como variáveis de ambiente, portanto `gateway.yaml` referencia `${GATEWAY_JWT_SECRET}`, `${OIDC_CLIENT_SECRET}` e `${GATEWAY_POSTGRES_URL}` em vez disso.

209 </Step>

210 

211 <Step title="Implantar">

212 <Tabs>

213 <Tab title="Cloud Run">

214 O comando abaixo implanta para produção atrás de um balanceador de carga interno.

215 

216 ```bash theme={null}

217 gcloud run deploy claude-gateway \

218 --image="${REGION}-docker.pkg.dev/${PROJECT_ID}/claude-gateway/gateway:<version>" \

219 --region="$REGION" \

220 --service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

221 --min-instances=1 \

222 --timeout=3600 \

223 --ingress=internal-and-cloud-load-balancing \

224 --network="$VPC" --subnet=cc-gateway-subnet --vpc-egress=private-ranges-only \

225 --set-secrets=/etc/claude/gateway.yaml=gateway-config:latest,GATEWAY_JWT_SECRET=gateway-jwt-secret:latest,OIDC_CLIENT_SECRET=gateway-oidc-client-secret:latest,GATEWAY_POSTGRES_URL=gateway-postgres-url:latest \

226 --no-invoker-iam-check

227 ```

228 

229 Egresso VPC direto, via `--network`, `--subnet` e `--vpc-egress=private-ranges-only`, permite que o serviço alcance o IP privado do Cloud SQL diretamente. Egresso público para os endpoints do Agent Platform e `accounts.google.com` vai diretamente para a internet em vez de através do VPC, portanto nenhum Cloud NAT é necessário.

230 

231 A verificação de IAM do invoker deve estar aberta ou desabilitada. O gateway executa seu próprio OIDC e seus clientes não carregam nenhum token GCP, portanto a verificação de invoker do Cloud Run tem que admitir solicitações não autenticadas. A autenticação OIDC do gateway autentica a solicitação uma vez que ela alcança o contêiner, com `allowed_email_domains` controlando quais domínios podem fazer login.

232 

233 Dois sinalizadores admitem solicitações não autenticadas:

234 

235 * `--no-invoker-iam-check`: desabilita a verificação sem nenhuma vinculação `allUsers` para gerenciar, e funciona sob Domain Restricted Sharing

236 * `--allow-unauthenticated`: concede ao `allUsers` a função `run.invoker`; use-o se sua organização não permitir `--no-invoker-iam-check`

237 

238 Restrição de ingresso via `--ingress` é uma camada separada e independente da verificação de invoker; mantenha-a definida para limitar o serviço à sua rede corporativa.

239 

240 Por padrão, a URL `*.run.app` do Cloud Run resolve para um endereço público, que a verificação [rede privada](/pt/claude-apps-gateway#prerequisites) do `/login` rejeita. Duas topologias fornecem aos desenvolvedores um nome de host resolvível privadamente, e o Cloud Run não provisiona nenhuma para você:

241 

242 * **Internal Application Load Balancer**, a topologia que o comando de implantação acima assume: implante com `--ingress=internal-and-cloud-load-balancing`, provisione um Internal Application Load Balancer na frente do serviço com um nome DNS interno e certificado, e defina `listen.public_url` para esse nome de host.

243 * **Ingresso somente interno sem balanceador de carga**: implante com `--ingress=internal` e deixe `listen.public_url` como a URL `*.run.app`, o padrão nos [ativos de referência](#terraform-reference) abaixo. Para `*.run.app` resolver privadamente, sua equipe de rede deve já operar um endpoint Private Service Connect para APIs do Google, uma zona privada Cloud DNS resolvendo `*.run.app` para ele, e roteamento no local para esse endpoint.

244 

245 O [guia de rede privada do Google para Cloud Run](https://cloud.google.com/run/docs/securing/private-networking) cobre a infraestrutura que ambas as opções precisam. Verifique o login uma vez que o gateway esteja servindo em um nome de host privado; até então, confirme que o contêiner inicializou a partir de seus logs no Cloud Run.

246 

247 Atualize o URI de redirecionamento autorizado do cliente OAuth para `<public_url>/oauth/callback` antes do primeiro login. Reimplante após alterar `public_url`, porque o gateway constrói sua origem pública apenas a partir dessa configuração e ignora `X-Forwarded-Host` e `X-Forwarded-Proto`. `X-Forwarded-For` é honrado para IPs de cliente apenas quando `listen.trusted_proxies` está definido.

248 </Tab>

249 

250 <Tab title="GKE">

251 O cluster deve estar no `$VPC` criado no passo Cloud SQL para que os pods possam alcançar o IP privado do banco de dados; peering de VPC sozinho não funciona, porque o IP privado do Cloud SQL é em si uma rede peered e peering é não-transitivo. Para criar um novo cluster nesse VPC, passe `--network="$VPC" --subnetwork=cc-gateway-subnet` para `gcloud container clusters create`.

252 

253 Habilite Workload Identity no cluster e seus node pools, depois vincule a conta de serviço do Google à conta de serviço do Kubernetes para que os pods herdem suas credenciais:

254 

255 ```bash theme={null}

256 gcloud container clusters update <cluster> --region="$REGION" \

257 --workload-pool="${PROJECT_ID}.svc.id.goog"

258 # On a Standard cluster, existing node pools also need GKE_METADATA;

259 # Autopilot enables this by default.

260 gcloud container node-pools update <pool> --cluster=<cluster> \

261 --region="$REGION" --workload-metadata=GKE_METADATA

262 

263 kubectl create namespace claude-gateway

264 kubectl create serviceaccount gateway -n claude-gateway

265 

266 gcloud iam service-accounts add-iam-policy-binding \

267 "claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com" \

268 --role roles/iam.workloadIdentityUser \

269 --member "serviceAccount:${PROJECT_ID}.svc.id.goog[claude-gateway/gateway]"

270 

271 kubectl annotate serviceaccount gateway -n claude-gateway \

272 iam.gke.io/gcp-service-account="claude-gateway@${PROJECT_ID}.iam.gserviceaccount.com"

273 ```

274 

275 Implante o gateway como um Deployment padrão mais um Service e um Ingress interno, classe `gce-internal`, conforme descrito em [Implantação Kubernetes](/pt/claude-apps-gateway-deploy#kubernetes), com:

276 

277 * `serviceAccountName: gateway`

278 * o driver CSI do Secret Manager montando segredos em `/secrets`

279 * a sonda de prontidão apontada para `GET /readyz`

280 

281 Anexe um BackendConfig com um `timeoutSec` elevado ao Service do gateway: o serviço backend do balanceador de carga atrás do GKE Ingress padrão para um tempo limite de 30 segundos, que corta respostas de streaming longas.

282 

283 Não aplique uma NetworkPolicy de egresso que bloqueie `169.254.169.254` em um cluster Workload Identity; o pod deve alcançar o servidor de metadados para credenciais. A [proteção SSRF](/pt/claude-apps-gateway-deploy#threat-model-summary) integrada do gateway é a defesa lá.

284 

285 O gateway registra um aviso de inicialização que o endpoint de metadados é alcançável e sugere aplicar uma NetworkPolicy de egresso. Sob Workload Identity esse aviso é esperado, porque o pod precisa do endpoint.

286 </Tab>

287 </Tabs>

288 </Step>

289 

290 <Step title="Enviar a URL do gateway para máquinas de desenvolvedores">

291 O gateway agora está em execução, mas os desenvolvedores não podem alcançá-lo a partir de `/login` até que a URL do gateway esteja em suas máquinas. Defina `forceLoginMethod` e `forceLoginGatewayUrl` no [arquivo de configurações gerenciadas](/pt/claude-apps-gateway#set-the-gateway-url) que você implanta em cada dispositivo via MDM. Não há opção de gateway no seletor de login para um desenvolvedor selecionar manualmente.

292 </Step>

293</Steps>

294 

295<h2 id="terraform-reference">

296 Referência Terraform

297</h2>

298 

299Os [ativos de implantação de referência](https://github.com/anthropics/claude-code/tree/main/examples/gateway/gcp) automatizam o caminho Cloud Run nesta página; os ativos de configuração e imagem se aplicam a ambos os caminhos:

300 

301* `setup.sh`: um provisionador `gcloud` idempotente que percorre o caminho completo do Cloud Run, desde a habilitação de APIs até a primeira implantação

302* `terraform/`: a mesma implantação como infraestrutura como código, para uma implantação greenfield: uma aplicação direcionada para criar o repositório Artifact Registry, depois construir e enviar a imagem, depois uma aplicação completa

303* `gateway.yaml.example` e um `Dockerfile` para a imagem de runtime distroless

304 

305Os artefatos padrão do ingresso Cloud Run para `internal`, portanto nenhum balanceador de carga é necessário. Para corresponder à implantação de produção atrás de um ALB desta página, execute `setup.sh` com `INGRESS=internal-and-cloud-load-balancing`, ou defina a variável Terraform `ingress` para `INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER`. Os artefatos também padrão da camada de invoker para uma concessão `allUsers` `run.invoker` em vez de `--no-invoker-iam-check`, o inverso do passo a passo desta página; ambos funcionam, e a escolha depende das restrições de política da sua organização.

306 

307Os ativos são fornecidos como exemplos funcionais, não como um artefato de produção suportado; revise e adapte-os ao seu ambiente.

308 

309<h2 id="troubleshooting">

310 Troubleshooting

311</h2>

312 

313Para erros de inicialização e login do gateway, consulte a [tabela de troubleshooting](/pt/claude-apps-gateway-deploy#troubleshooting) independente de plataforma. As entradas abaixo são específicas do Google Cloud.

314 

315| Sintoma | Causa | Correção |

316| ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

317| Cloud Run retorna `403 Forbidden` antes de alcançar o contêiner | A verificação de IAM do invoker ainda está habilitada | Implante com `--no-invoker-iam-check`, ou conceda ao `allUsers` a função `run.invoker` com `--allow-unauthenticated` |

318| `--no-invoker-iam-check` rejeitado com `invoker_iam_disabled is not currently available` | Bloqueado por `constraints/run.managed.requireInvokerIam` | Use `--allow-unauthenticated`. Se Domain Restricted Sharing via `constraints/iam.allowedPolicyMemberDomains` também bloquear isso, use o caminho GKE, que expõe o gateway na camada de rede sem nenhuma vinculação `allUsers`. |

319| `Container manifest type … must support amd64/linux` na implantação | A imagem foi construída em um host não-amd64, ou buildx emitiu um índice de imagem OCI | Construa com `--platform=linux/amd64 --provenance=false` |

320| A inicialização do gateway sai com um erro de tempo limite de conexão Postgres no Cloud Run | O serviço não está anexado ao VPC, ou Cloud SQL não tem IP privado nesse VPC; o store para de esperar após 5 segundos | Implante com `--network` e `--subnet` para egresso VPC direto, e crie a instância Cloud SQL com `--no-assign-ip` e `--network` apontando para o mesmo VPC |

321| Solicitações do Agent Platform retornam `403 PERMISSION_DENIED` | O runtime não está usando a conta de serviço `claude-gateway`, ou o modelo não está habilitado no Model Garden para o projeto | Defina `--service-account` no Cloud Run ou vincule Workload Identity no GKE, e habilite cada modelo Claude no Model Garden para a região de destino |

322| Respostas de streaming são cortadas após uma duração fixa | Tempo limite de solicitação do front-end: o serviço backend do balanceador de carga atrás do GKE Ingress padrão para 30 segundos e Cloud Run para 300 segundos | Anexe um BackendConfig com um `timeoutSec` elevado no GKE, ou implante com `--timeout=3600` no Cloud Run |

323 

324<h2 id="next-steps">

325 Próximos passos

326</h2>

327 

328* [Referência de configuração](/pt/claude-apps-gateway-config): cada opção `gateway.yaml`, incluindo `managed.policies` e `telemetry`

329* [Implantação e operações](/pt/claude-apps-gateway-deploy): configuração de IdP, verificações de saúde, rotação de segredo JWT, upgrades e o modelo de segurança

330* [Visão geral do gateway de aplicativos Claude](/pt/claude-apps-gateway): quickstart e conectando desenvolvedores

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Limites de gastos do gateway de aplicativos Claude

6 

7> Limite o gasto de cada desenvolvedor através do gateway de aplicativos Claude por dia, semana ou mês. Defina limites com uma API de administrador e o gateway os aplica em tempo real em cada solicitação.

8 

9Limites de gastos limitam quanto cada desenvolvedor pode gastar através do seu [gateway de aplicativos Claude](/pt/claude-apps-gateway) em um determinado dia, semana ou mês. Quando um desenvolvedor ultrapassa seu limite, o gateway retorna `429` na próxima solicitação e os bloqueia até que o período seja redefinido ou um administrador aumente o limite. Use limites de gastos para dar a cada desenvolvedor, grupo ou toda a organização um teto de gastos em uma credencial que todos compartilham.

10 

11Um gateway de aplicativos Claude encaminha toda a inferência através de uma credencial upstream compartilhada, portanto a fatura do seu provedor atribui tudo a essa credencial, não a desenvolvedores individuais. Sem limites por desenvolvedor, uma frota de agentes descontrolada pode gastar todo o compromisso da organização. Limites de gastos são a visão por desenvolvedor do gateway e o disjuntor em cima dessa fatura compartilhada.

12 

13<h2 id="set-a-cap">

14 Defina um limite

15</h2>

16 

17Com o bloco [`admin:`](/pt/claude-apps-gateway-config#admin) configurado em `gateway.yaml`, o gateway fornece uma API de administrador em `/v1/organizations/spend_limits` e aplica limites em tempo real em cada solicitação de inferência. Os limites em si são definidos através dessa API, não em `gateway.yaml`; cada solicitação `POST /v1/organizations/spend_limits` cria ou substitui um limite de `{scope, amount, period}`. A API espelha as formas de transmissão dos endpoints de limites de gastos da [API de Administrador](https://platform.claude.com/docs/en/manage-claude/admin-api) pública da Anthropic, portanto um cliente HTTP escrito contra esse contrato pode direcionar o gateway alterando sua URL base.

18 

19Esta solicitação define um padrão em toda a organização de \$500 por mês para cada desenvolvedor:

20 

21```bash theme={null}

22curl -sS https://claude-gateway.internal.example.com/v1/organizations/spend_limits \

23 -H "x-api-key: $GATEWAY_ADMIN_WRITE_KEY" \

24 -H "Content-Type: application/json" \

25 -d '{"scope": {"type": "organization"}, "amount": "50000", "period": "monthly"}'

26```

27 

28Esta solicitação adiciona um limite mais restritivo de \$100 por dia para cada membro do grupo `contractors`:

29 

30```bash theme={null}

31curl -sS https://claude-gateway.internal.example.com/v1/organizations/spend_limits \

32 -H "x-api-key: $GATEWAY_ADMIN_WRITE_KEY" \

33 -H "Content-Type: application/json" \

34 -d '{"scope": {"type": "rbac_group", "rbac_group_id": "contractors"}, "amount": "10000", "period": "daily"}'

35```

36 

37| Campo | Valores | Descrição |

38| ------------ | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

39| `scope.type` | `user`, `rbac_group`, `organization` | `user` direciona um desenvolvedor pelo seu OpenID Connect (OIDC) `sub`, o ID de usuário estável que seu provedor de identidade atribui; passe-o como `scope.user_id`. `rbac_group` direciona um [grupo IdP](/pt/claude-apps-gateway-config#managed) por nome; passe-o como `scope.rbac_group_id`. `organization` é o padrão em toda a organização. O gateway aceita todos os três; o `POST` público da Anthropic é apenas para usuários hoje. |

40| `amount` | String de número inteiro de centavos USD, ou `null` | `null` é ilimitado. `"0"` é um limite zero, que bloqueia todas as solicitações. |

41| `period` | `daily`, `weekly`, `monthly` | Um escopo pode conter um limite por período, e cada um é aplicado independentemente: um desenvolvedor é bloqueado se ultrapassar qualquer um deles. |

42 

43Um limite de grupo ou organização é um padrão por assento que cada membro herda, não um pool compartilhado. Por período, o limite efetivo de um desenvolvedor é resolvido nesta ordem: uma substituição por usuário, depois a mais restritiva de seus limites de grupo, depois o padrão da organização, depois ilimitado. [`admin.group_limit_mode: max`](/pt/claude-apps-gateway-config#admin) inverte o desempate de múltiplos grupos para menos restritivo em vez disso.

44 

45<h3 id="authenticate-to-the-admin-api">

46 Autentique-se na API de administrador

47</h3>

48 

49Envie um dos seguintes:

50 

51* Um cabeçalho `x-api-key` correspondendo a uma chave em [`admin.write_keys`](/pt/claude-apps-gateway-config#admin) para acesso total, ou `admin.read_keys` para acesso somente `GET`. Cada chave carrega um `id` que aparece no log de auditoria como `admin-key:<id>`, portanto dê ao Terraform, CI e cada automação a sua própria.

52* Um token de portador do gateway cujo `groups` claim inclui um dos [`admin.admin_groups`](/pt/claude-apps-gateway-config#admin). Este é acesso total e é auditado como `oidc:<sub>`, portanto prefira-o para administradores humanos.

53 

54<h2 id="how-enforcement-works">

55 Como a aplicação funciona

56</h2>

57 

58Em cada solicitação `/v1/messages`, o gateway resolve os limites do desenvolvedor e o gasto até a data do período em uma consulta Postgres. Se estiverem acima de qualquer limite, a solicitação retorna `429` com `error.type: billing_error` e o cabeçalho `x-should-retry: false`. A mensagem é `spend limit reached`, seguida pelo seu [`admin.blocked_message`](/pt/claude-apps-gateway-config#admin) se definido.

59 

60`/v1/messages/count_tokens` é isento. A contagem de tokens é gratuita, portanto é executada independentemente do estado do limite.

61 

62Após cada resposta, um medidor de uso lê contagens de tokens da resposta conforme ela é transmitida para o cliente, precifica-os ao preço de lista USD e incrementa contadores Postgres para todos os três buckets de período. O medidor é um único leitor no fluxo, portanto os bytes do cliente não são tocados e uma falha de medição não quebra a resposta.

63 

64Limites de gastos estimam gastos a partir de contagens de tokens ao preço de lista USD; eles são um disjuntor, não uma fatura. Para faturamento autoritário, reconcilie contra o relatório de uso do seu próprio provedor, como a API de Administrador de Uso e Custo da Anthropic, logs de invocação no Bedrock ou Cloud Monitoring no Google Cloud.

65 

66A precificação usa a mesma tabela que o Claude Code CLI usa para sua própria exibição de custo, com a mesma canonicalização de ID de modelo em formulários Anthropic, Bedrock (`us.anthropic.…-v1:0`), Agent Platform (`claude-…@date`) e Foundry ID. Um ID de modelo que a tabela não consegue colocar, como um nome de implantação Foundry ou um ARN de perfil de inferência, é precificado no nível padrão de modelo desconhecido de \$5/\$25 por milhão de tokens de entrada/saída em vez de zero, portanto um ID não reconhecido não pode contornar um limite indo sem medição. O gateway avisa na inicialização e uma vez por ID em tempo de execução quando um modelo é precificado através do fallback.

67 

68Aborts de cliente também são faturados. O upstream relata tokens de saída apenas no quadro terminal do fluxo, portanto um fluxo abortado não os carrega. O medidor mantém uma estimativa de piso conservadora do tamanho do conteúdo transmitido, cerca de quatro caracteres por token, e a fatura quando e apenas quando o quadro de uso terminal está faltando. Um fluxo completo sempre fatura a contagem relatada pelo upstream. Sem isso, um desenvolvedor limitado poderia transmitir saída e abortar cada solicitação imediatamente antes do final, gastando sem nunca ser contado.

69 

70<h3 id="postgres-availability">

71 Disponibilidade do Postgres

72</h3>

73 

74A pré-verificação consulta o Postgres com um tempo limite de dois segundos. Se o armazenamento estiver inacessível ou expirar o tempo limite, a aplicação falha aberta por padrão: a solicitação prossegue e o gateway registra um aviso. Defina [`enforcement.fail_closed_on_error: true`](/pt/claude-apps-gateway-config#enforcement) para falhar fechado em vez disso, que retorna o mesmo `429 billing_error` com a mensagem `spend limit unavailable`. Falha aberta mantém uma interrupção de armazenamento de se tornar uma interrupção de inferência; falha fechada garante nenhum gasto sem medição.

75 

76<h2 id="admin-api-reference">

77 Referência da API de administrador

78</h2>

79 

80Os endpoints abaixo são servidos em `/v1/organizations/spend_limits`.

81 

82| Método e caminho | Descrição |

83| ---------------------------------------------- | -------------------------------------------------------------------------------- |

84| `GET /v1/organizations/spend_limits` | Listar limites configurados. Consulta: `?limit=&after_id=&before_id=`. |

85| `POST /v1/organizations/spend_limits` | Criar ou substituir um limite para `{scope, period}`. |

86| `GET /v1/organizations/spend_limits/{id}` | Buscar um limite por seu ID com prefixo `spl_`. |

87| `DELETE /v1/organizations/spend_limits/{id}` | Deletar um limite. Retorna `{type: "spend_limit_deleted", id}`. |

88| `GET /v1/organizations/spend_limits/effective` | Limite resolvido e gasto até a data por principal por período. |

89| `GET /v1/organizations/spend_limits/audit` | Trilha de mutação de administrador, mais recente primeiro. Consultas: `?limit=`. |

90 

91As convenções espelham a API de Administrador da Anthropic:

92 

93* Um `type` em cada objeto

94* IDs com prefixo `spl_`

95* Quantidades como strings de número inteiro de centavos USD; `POST` rejeita qualquer outro `currency` com `400`

96* O envelope de erro `{type: "error", error: {type, message}, request_id}`

97* Um cabeçalho de resposta `request-id` em cada resposta de administrador, sucesso ou erro, correspondendo ao `request_id` do corpo

98 

99Cada mutação escreve uma linha antes/depois para `admin_audit` na mesma transação, atribuída a `admin-key:<id>` ou `oidc:<sub>`.

100 

101O gateway serve os endpoints de limites de gasto apenas. Outras superfícies da API de Administrador, como a fila `spend_limit_increase_requests`, não fazem parte da API de administrador do gateway.

102 

103<h3 id="/effective">

104 `/effective`

105</h3>

106 

107`GET /v1/organizations/spend_limits/effective` retorna o schema `SpendSummary` da Anthropic: cada linha é um principal para um período, com o limite resolvido, gasto até a data do período e um objeto `actor`. Diferenças específicas do gateway:

108 

109* `user_id` é o OIDC `sub`.

110* `actor.name` e `actor.email_address` são `null` até a primeira solicitação de inferência do principal através do gateway. O gateway não tem diretório de usuários; ele registra valores vistos pela última vez do JWT de sessão de cada usuário.

111* Cada linha também carrega um array `groups`, os últimos grupos IdP vistos do principal. Esta é uma extensão do gateway para que uma UI de administrador possa mostrar cada nível de limite que se aplica; clientes em forma de Anthropic a ignoram.

112* Sem um filtro `user_ids[]`, ele lista principais com gasto registrado, porque o gateway não consegue enumerar todos os membros da organização.

113 

114Limites originários de grupo são resolvidos contra esses últimos grupos vistos com o mesmo desempate `group_limit_mode` que a aplicação usa, portanto o visualizador mostra o limite que realmente se aplica.

115 

116| Parâmetro de consulta | Descrição |

117| --------------------- | ------------------------------------------------------------------------------------------------------------------------------ |

118| `user_ids[]` | Repetível. Filtrar para principais específicos por OIDC `sub`. |

119| `period[]` | Repetível. Filtrar para linhas `daily`, `weekly` ou `monthly`. |

120| `sort` | `spend_desc` lista os maiores gastadores primeiro. Requer exatamente um `period[]`. |

121| `q` | Filtro de substring insensível a maiúsculas/minúsculas sobre o OIDC `sub`, último email visto e último nome de exibição visto. |

122| `limit` / `page` | Tamanho da página, 1–1000 com padrão de 20, e o cursor opaco da resposta anterior `next_page`. |

123 

124<Warning>

125 `q=` e `user_ids[]=` usam strings de consulta GET, portanto qualquer proxy frontal ou balanceador de carga captura-os em seus logs de acesso. Se sua política de log de PII for rigorosa, limpe esses parâmetros lá.

126</Warning>

127 

128<h3 id="/audit">

129 `/audit`

130</h3>

131 

132Retorna a trilha de mutação de limite de gasto: quem mudou qual limite, snapshots antes/depois e a razão opcional, mais recente primeiro. `has_more` é exato. Este endpoint segue as convenções da API de Administrador local em vez de uma forma de transmissão de primeira parte.

133 

134<h3 id="pagination">

135 Paginação

136</h3>

137 

138A lista bruta pagina por `after_id` e `before_id`, que são IDs `spl_…` mutuamente exclusivos; os resultados são ordenados por criação e `has_more` reflete a direção da travessia. `/effective` pagina pelo token opaco `next_page` passado de volta como `?page=`, com principais ordenados em ordem crescente para que as páginas permaneçam estáveis enquanto o gasto está sendo registrado. `limit` é 1–1000, padrão 20, em ambos.

139 

140<h2 id="data-lifecycle">

141 Ciclo de vida dos dados

142</h2>

143 

144O gateway mantém quatro tabelas relacionadas a gastos; uma varredura horária aplica as janelas de retenção:

145 

146| Tabela | Conteúdo | Retenção |

147| ------------------ | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |

148| `spend` | Contadores até a data do período por principal em centavos | [`admin.spend_retention_months`](/pt/claude-apps-gateway-config#admin), padrão 13 |

149| `spend_limits` | Os limites configurados | Até deletado via API |

150| `admin_audit` | A trilha de mutação | [`admin.audit_retention_days`](/pt/claude-apps-gateway-config#admin), padrão 365 |

151| `principal_emails` | Último email visto de cada principal, nome de exibição e grupos IdP. Contém PII. | [`admin.identity_retention_days`](/pt/claude-apps-gateway-config#admin) desde última atividade, padrão 90 |

152 

153`identity_retention_days` é deliberadamente mais curto que `spend_retention_months`: uma identidade desprovisionada para de se atualizar e envelhece, enquanto seus contadores de gasto anônimos permanecem para relatórios ano a ano.

154 

155Quando um desenvolvedor sai, delete qualquer limite por usuário via `DELETE /v1/organizations/spend_limits/{id}`; seu gasto e linhas de identidade envelhecem nas janelas de retenção acima. Para apagar uma pessoa imediatamente, para offboarding ou uma solicitação de acesso de assunto de dados (DSAR), execute `DELETE FROM principal_emails WHERE principal = '<sub>'` diretamente contra o banco de dados do gateway. Isso remove a única tabela contendo seu email, nome e grupos. As linhas `spend` e `admin_audit` referenciam apenas o pseudônimo OIDC `sub` e envelhecem em suas próprias janelas.

156 

157<h2 id="related">

158 Relacionado

159</h2>

160 

161* [Configuração de `admin` e `enforcement`](/pt/claude-apps-gateway-config#admin): habilitando a API de administrador e ajustando a retenção

162* [Guia de implantação](/pt/claude-apps-gateway-deploy#postgres): schema do Postgres e orientação de backup

Details

63 O que está disponível em sessões em nuvem63 O que está disponível em sessões em nuvem

64</h3>64</h3>

65 65 

66As sessões em nuvem começam a partir de um clone fresco do seu repositório. Qualquer coisa confirmada no repositório está disponível. Qualquer coisa que você tenha instalado ou configurado apenas em sua própria máquina não está; a política da sua organização chega separadamente através de [configurações gerenciadas pelo servidor](/pt/server-managed-settings).66As sessões em nuvem começam a partir de um clone fresco do seu repositório. Qualquer coisa confirmada no repositório está disponível. Qualquer coisa que você tenha instalado ou configurado apenas em sua própria máquina não está disponível na sessão. A política da sua organização chega separadamente através de [configurações gerenciadas pelo servidor](/pt/server-managed-settings).

67 67 

68| | Disponível em sessões em nuvem | Por quê |68| | Disponível em sessões em nuvem | Por quê |

69| :---------------------------------------------------------------------------------------- | :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |69| :---------------------------------------------------------------------------------------- | :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


81| Tokens de API estáticos e credenciais | Não | Nenhum armazenamento de segredos dedicado existe ainda. Veja abaixo |81| Tokens de API estáticos e credenciais | Não | Nenhum armazenamento de segredos dedicado existe ainda. Veja abaixo |

82| Autenticação interativa como AWS SSO | Não | Não suportado. SSO requer login baseado em navegador que não pode ser executado em uma sessão em nuvem |82| Autenticação interativa como AWS SSO | Não | Não suportado. SSO requer login baseado em navegador que não pode ser executado em uma sessão em nuvem |

83 83 

84Para disponibilizar sua própria configuração em sessões em nuvem, confirme-a no repositório; a política da organização chega separadamente através de [configurações gerenciadas pelo servidor](/pt/server-managed-settings). Um armazenamento de segredos dedicado ainda não está disponível. Tanto variáveis de ambiente quanto scripts de configuração são armazenados na configuração de ambiente, visíveis para qualquer pessoa que possa editar esse ambiente. Se você precisar de segredos em uma sessão em nuvem, adicione-os como variáveis de ambiente com essa visibilidade em mente.84Para disponibilizar sua própria configuração em sessões em nuvem, confirme-a no repositório; a política da organização chega separadamente através de [configurações gerenciadas pelo servidor](/pt/server-managed-settings).

85 

86Um armazenamento de segredos dedicado ainda não está disponível. Tanto variáveis de ambiente quanto scripts de configuração são armazenados na configuração de ambiente, visíveis para qualquer pessoa que possa editar esse ambiente. Se você precisar de segredos em uma sessão em nuvem, adicione-os como variáveis de ambiente com essa visibilidade em mente.

85 87 

86<h3 id="installed-tools">88<h3 id="installed-tools">

87 Ferramentas instaladas89 Ferramentas instaladas


143 Execute testes, inicie serviços e adicione pacotes145 Execute testes, inicie serviços e adicione pacotes

144</h3>146</h3>

145 147 

146Claude executa testes como parte do trabalho em uma tarefa. Peça no seu prompt, como "fix the failing tests in `tests/`" ou "run pytest after each change." Executores de teste como pytest, jest e cargo test funcionam imediatamente já que estão pré-instalados.148Claude executa testes como parte do trabalho em uma tarefa. Peça no seu prompt, como "fix the failing tests in `tests/`" ou "run pytest after each change." Executores de teste como pytest, jest e cargo test estão pré-instalados e funcionam sem configuração adicional.

147 149 

148PostgreSQL e Redis estão pré-instalados mas não estão em execução por padrão. Peça a Claude para iniciar cada um durante a sessão:150PostgreSQL e Redis estão pré-instalados mas não estão em execução por padrão. Peça a Claude para iniciar cada um durante a sessão:

149 151 


186| Arquive um ambiente | Abra o ambiente para edição e selecione **Archive**. Ambientes arquivados ficam ocultos do seletor mas as sessões existentes continuam em execução. |188| Arquive um ambiente | Abra o ambiente para edição e selecione **Archive**. Ambientes arquivados ficam ocultos do seletor mas as sessões existentes continuam em execução. |

187| Defina o padrão para `--remote` | Execute `/remote-env` em seu terminal. Se você tiver um único ambiente, este comando mostra sua configuração atual. `/remote-env` apenas seleciona o padrão; adicione, edite e arquive ambientes a partir da interface web. |189| Defina o padrão para `--remote` | Execute `/remote-env` em seu terminal. Se você tiver um único ambiente, este comando mostra sua configuração atual. `/remote-env` apenas seleciona o padrão; adicione, edite e arquive ambientes a partir da interface web. |

188 190 

189As variáveis de ambiente usam formato `.env` com um par `KEY=value` por linha. Não envolva valores em aspas, já que as aspas são armazenadas como parte do valor.191As variáveis de ambiente usam formato `.env` com um par `KEY=value` por linha. Não envolva valores em aspas, já que as aspas são armazenadas como parte do valor. Este exemplo define três variáveis:

190 192 

191```text theme={null}193```text theme={null}

192NODE_ENV=development194NODE_ENV=development


593 * \*.sentry.io595 * \*.sentry.io

594 * downloads.sentry-cdn.com596 * downloads.sentry-cdn.com

595 * http-intake.logs.datadoghq.com597 * http-intake.logs.datadoghq.com

598 * browser-intake-us5-datadoghq.com

596 * \*.datadoghq.com599 * \*.datadoghq.com

597 * \*.datadoghq.eu600 * \*.datadoghq.eu

598 * api.honeycomb.io601 * api.honeycomb.io


641 644 

642Isso cria uma nova sessão em nuvem em claude.ai. A sessão clona o remoto GitHub do seu diretório atual na sua branch atual, então envie primeiro se você tiver commits locais, já que a VM clona do GitHub em vez de sua máquina. `--remote` funciona com um repositório por vez. A tarefa é executada na nuvem enquanto você continua trabalhando localmente.645Isso cria uma nova sessão em nuvem em claude.ai. A sessão clona o remoto GitHub do seu diretório atual na sua branch atual, então envie primeiro se você tiver commits locais, já que a VM clona do GitHub em vez de sua máquina. `--remote` funciona com um repositório por vez. A tarefa é executada na nuvem enquanto você continua trabalhando localmente.

643 646 

647{/* min-version: 2.1.195 */}A partir da v2.1.195, o CLI mostra uma lista de verificação ao vivo das etapas de configuração, como clonar o repositório e executar seu [script de configuração](#setup-scripts), enquanto o contêiner em nuvem é iniciado. As mensagens que você digita enquanto o contêiner está sendo provisionado são enfileiradas e enviadas assim que a sessão estiver pronta.

648 

644<Note>649<Note>

645 `--remote` cria sessões em nuvem. `--remote-control` não está relacionado: expõe uma sessão CLI local para monitoramento a partir da web. Veja [Remote Control](/pt/remote-control).650 `--remote` cria sessões em nuvem. `--remote-control` não está relacionado: expõe uma sessão CLI local para monitoramento a partir da web. Veja [Remote Control](/pt/remote-control).

646</Note>651</Note>


703Puxe uma sessão em nuvem para seu terminal usando qualquer um destes:708Puxe uma sessão em nuvem para seu terminal usando qualquer um destes:

704 709 

705* **Usando `--teleport`**: a partir da linha de comando, execute `claude --teleport` para um seletor de sessão interativo, ou `claude --teleport <session-id>` para retomar uma sessão específica diretamente. Se você tiver alterações não confirmadas, será solicitado que você as guarde primeiro.710* **Usando `--teleport`**: a partir da linha de comando, execute `claude --teleport` para um seletor de sessão interativo, ou `claude --teleport <session-id>` para retomar uma sessão específica diretamente. Se você tiver alterações não confirmadas, será solicitado que você as guarde primeiro.

706* **Usando `/teleport`**: dentro de uma sessão CLI existente, execute `/teleport` (ou `/tp`) para abrir o mesmo seletor de sessão sem reiniciar Claude Code.711* **Usando `/teleport`**: dentro de uma sessão CLI existente, execute `/teleport` ou `/tp` para abrir o mesmo seletor de sessão sem reiniciar Claude Code.

707* **De `/tasks`**: execute `/tasks` para ver suas sessões em segundo plano, depois pressione `t` para teleportar para uma712* **De `/tasks`**: execute `/tasks` para ver suas sessões em segundo plano, depois pressione `t` para teleportar para uma.

708* **Da interface web**: selecione **Open in CLI** para copiar um comando que você pode colar em seu terminal713* **Da interface web**: selecione **Open in CLI** para copiar um comando que você pode colar em seu terminal.

709 714 

710Quando você teleporta uma sessão, Claude verifica se você está no repositório correto, busca e faz checkout da branch da sessão em nuvem e carrega o histórico completo da conversa em seu terminal.715Quando você teleporta uma sessão, Claude verifica se você está no repositório correto, busca e faz checkout da branch da sessão em nuvem e carrega o histórico completo da conversa em seu terminal.

711 716 


752 757 

753A auto-compactação é executada automaticamente quando a janela de contexto se aproxima da capacidade. Para acioná-la mais cedo, defina [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/pt/env-vars) em suas [variáveis de ambiente](#configure-your-environment). Por exemplo, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compacta em 70% de capacidade em vez de esperar até que a janela esteja quase cheia. Para alterar o tamanho efetivo da janela para cálculos de compactação, use [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/pt/env-vars).758A auto-compactação é executada automaticamente quando a janela de contexto se aproxima da capacidade. Para acioná-la mais cedo, defina [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/pt/env-vars) em suas [variáveis de ambiente](#configure-your-environment). Por exemplo, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=70` compacta em 70% de capacidade em vez de esperar até que a janela esteja quase cheia. Para alterar o tamanho efetivo da janela para cálculos de compactação, use [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/pt/env-vars).

754 759 

755[Subagentes](/pt/sub-agents) funcionam da mesma forma que localmente. Claude pode gerá-los com a ferramenta Task para descarregar pesquisa ou trabalho paralelo em uma janela de contexto separada, mantendo a conversa principal mais leve. Subagentes definidos em seu `.claude/agents/` do repositório são coletados automaticamente. [Equipes de agentes](/pt/agent-teams) estão desabilitadas por padrão mas podem ser habilitadas adicionando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` às suas [variáveis de ambiente](#configure-your-environment).760[Subagentes](/pt/sub-agents) funcionam da mesma forma que localmente. Claude pode gerá-los com a ferramenta Task para descarregar pesquisa ou trabalho paralelo em uma janela de contexto separada, mantendo a conversa principal mais leve. Subagentes definidos em seu `.claude/agents/` do repositório são coletados automaticamente.

761 

762[Equipes de agentes](/pt/agent-teams) estão desabilitadas por padrão mas podem ser habilitadas adicionando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` às suas [variáveis de ambiente](#configure-your-environment).

756 763 

757<h3 id="review-changes">764<h3 id="review-changes">

758 Revise alterações765 Revise alterações


770 Compartilhe de uma conta Enterprise ou Team777 Compartilhe de uma conta Enterprise ou Team

771</h4>778</h4>

772 779 

773Para contas Enterprise e Team, as duas opções de visibilidade são **Private** e **Team**. A visibilidade Team torna a sessão visível para outros membros de sua organização claude.ai. A verificação de acesso ao repositório é habilitada por padrão, com base na conta GitHub conectada à conta do destinatário. O nome de exibição de sua conta é visível para todos os destinatários com acesso. As sessões [Claude in Slack](/pt/slack) são automaticamente compartilhadas com visibilidade Team.780Para contas Enterprise e Team, as duas opções de visibilidade são **Private** e **Team**. A visibilidade Team torna a sessão visível para outros membros de sua organização claude.ai. [Claude in Slack](/pt/slack) as sessões são automaticamente compartilhadas com visibilidade Team.

781 

782A verificação de acesso ao repositório é habilitada por padrão, com base na conta GitHub conectada à conta do destinatário. O nome de exibição de sua conta é visível para todos os destinatários com acesso.

774 783 

775<h4 id="share-from-a-max-or-pro-account">784<h4 id="share-from-a-max-or-pro-account">

776 Compartilhe de uma conta Max ou Pro785 Compartilhe de uma conta Max ou Pro


863 872 

864* Verifique [status.claude.com](https://status.claude.com) para incidentes de sessão em nuvem873* Verifique [status.claude.com](https://status.claude.com) para incidentes de sessão em nuvem

865* Tente novamente após um minuto, já que a capacidade é provisionada sob demanda874* Tente novamente após um minuto, já que a capacidade é provisionada sob demanda

866* Confirme que seu repositório é acessível. A conta GitHub conectada deve ter acesso ao repositório no GitHub, seja através da autorização do Claude GitHub App ou um token `gh` sincronizado via `/web-setup` instalar o App no repositório não é necessário. Veja [Opções de autenticação do GitHub](#github-authentication-options).875* Confirme que seu repositório é acessível. A conta GitHub conectada deve ter acesso ao repositório no GitHub, seja através da autorização do Claude GitHub App ou um token `gh` sincronizado via `/web-setup`. Instalar o App no repositório não é necessário. Veja [Opções de autenticação do GitHub](#github-authentication-options).

867 876 

868<h3 id="remote-control-session-expired-or-access-denied">877<h3 id="remote-control-session-expired-or-access-denied">

869 Remote Control session expired or access denied878 Remote Control session expired or access denied

Details

283```bash theme={null}283```bash theme={null}

284export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5284export ANTHROPIC_DEFAULT_FABLE_MODEL=claude-fable-5

285export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7285export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-4-7

286export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-6286export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5

287export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5287export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5

288```288```

289 289 

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](/pt/claude-apps-gateway) auto-hospedado, para administradores implantando SSO e política na frente do Claude Code no Bedrock, Vertex AI ou Foundry. Requer `--config` apontando para um [`gateway.yaml`](/pt/claude-apps-gateway-config). Disponível no Claude Code v2.1.195 e posterior. | `claude gateway --config gateway.yaml` |

25| `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](/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](/pt/setup#install-a-specific-version) | `claude install stable` |

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

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


93| `--max-budget-usd` | Valor máximo em dólares a gastar em chamadas de API antes de parar (apenas modo print) | `claude -p --max-budget-usd 5.00 "query"` |94| `--max-budget-usd` | Valor máximo em dólares a gastar em chamadas de API antes de parar (apenas modo print) | `claude -p --max-budget-usd 5.00 "query"` |

94| `--max-turns` | Limitar o número de turnos de agente (apenas modo print). Sai com um erro quando o limite é atingido. Sem limite por padrão | `claude -p --max-turns 3 "query"` |95| `--max-turns` | Limitar o número de turnos de agente (apenas modo print). Sai com um erro quando o limite é atingido. Sem limite por padrão | `claude -p --max-turns 3 "query"` |

95| `--mcp-config` | Carregar servidores MCP de arquivos JSON ou strings (separados por espaço) | `claude --mcp-config ./mcp.json` |96| `--mcp-config` | Carregar servidores MCP de arquivos JSON ou strings (separados por espaço) | `claude --mcp-config ./mcp.json` |

96| `--model` | Define o modelo para a sessão atual com um alias para o modelo mais recente (`sonnet`, `opus`, `haiku` ou `fable`) ou o nome completo de um modelo. Substitui a configuração [`model`](/pt/settings#available-settings) e [`ANTHROPIC_MODEL`](/pt/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |97| `--model` | Define o modelo para a sessão atual com um alias para o modelo mais recente (`sonnet`, `opus`, `haiku` ou `fable`) ou o nome completo de um modelo. Substitui a configuração [`model`](/pt/settings#available-settings) e [`ANTHROPIC_MODEL`](/pt/model-config#environment-variables) | `claude --model claude-sonnet-5` |

97| `--name`, `-n` | Definir um nome de exibição para a sessão, mostrado em `/resume` e no título do terminal. Você pode retomar uma sessão nomeada com `claude --resume <name>`. <br /><br />[`/rename`](/pt/commands) altera o nome durante a sessão e também o mostra na barra de prompt | `claude -n "my-feature-work"` |98| `--name`, `-n` | Definir um nome de exibição para a sessão, mostrado em `/resume` e no título do terminal. Você pode retomar uma sessão nomeada com `claude --resume <name>`. <br /><br />[`/rename`](/pt/commands) altera o nome durante a sessão e também o mostra na barra de prompt | `claude -n "my-feature-work"` |

98| `--no-chrome` | Desativar [integração do navegador Chrome](/pt/chrome) para esta sessão | `claude --no-chrome` |99| `--no-chrome` | Desativar [integração do navegador Chrome](/pt/chrome) para esta sessão | `claude --no-chrome` |

99| `--no-session-persistence` | Desativar persistência de sessão para que as sessões não sejam salvas em disco e não possam ser retomadas. Apenas modo print. A variável de ambiente [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/pt/env-vars) faz o mesmo em qualquer modo | `claude -p --no-session-persistence "query"` |100| `--no-session-persistence` | Desativar persistência de sessão para que as sessões não sejam salvas em disco e não possam ser retomadas. Apenas modo print. A variável de ambiente [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/pt/env-vars) faz o mesmo em qualquer modo | `claude -p --no-session-persistence "query"` |

commands.md +2 −0

Details

70| `/cost` | Alias para `/usage` |70| `/cost` | Alias para `/usage` |

71| `/debug [description]` | **[Skill](/pt/skills#bundled-skills).** Ativar registro de depuração para a sessão atual e solucionar problemas lendo o log de depuração da sessão. O registro de depuração está desativado por padrão, a menos que você tenha iniciado com `claude --debug`, então executar `/debug` no meio da sessão começa a capturar logs a partir desse ponto. Opcionalmente, descreva o problema para focar a análise |71| `/debug [description]` | **[Skill](/pt/skills#bundled-skills).** Ativar registro de depuração para a sessão atual e solucionar problemas lendo o log de depuração da sessão. O registro de depuração está desativado por padrão, a menos que você tenha iniciado com `claude --debug`, então executar `/debug` no meio da sessão começa a capturar logs a partir desse ponto. Opcionalmente, descreva o problema para focar a análise |

72| `/deep-research <question>` | **[Workflow](/pt/workflows#bundled-workflows).** Expandir buscas na web em uma pergunta, buscar e verificar fontes e sintetizar um relatório citado |72| `/deep-research <question>` | **[Workflow](/pt/workflows#bundled-workflows).** Expandir buscas na web em uma pergunta, buscar e verificar fontes e sintetizar um relatório citado |

73| `/design-login` | Autorizar acesso ao sistema de design para `/design-sync` com sua conta claude.ai |

74| `/design-sync [hint]` | **[Skill](/pt/skills#bundled-skills).** Converter o sistema de design React do seu repositório e carregá-lo em [Claude Design](https://claude.ai/design), para que os designs que ele 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; no Amazon Bedrock, na plataforma de agentes do Google Cloud e no Microsoft Foundry, a ferramenta subjacente não consegue acessar claude.ai, então o comando não está disponível |

73| `/desktop` | Continuar a sessão atual no aplicativo Claude Code Desktop. Requer macOS ou Windows e uma assinatura Claude. Alias: `/app` |75| `/desktop` | Continuar a sessão atual no aplicativo Claude Code Desktop. Requer macOS ou Windows e uma assinatura Claude. Alias: `/app` |

74| `/diff` | Abrir um visualizador de diff interativo mostrando alterações não confirmadas e diffs por turno. Use as setas esquerda/direita para alternar entre o diff git atual e turnos individuais do Claude, e cima/baixo para navegar pelos arquivos |76| `/diff` | Abrir um visualizador de diff interativo mostrando alterações não confirmadas e diffs por turno. Use as setas esquerda/direita para alternar entre o diff git atual e turnos individuais do Claude, e cima/baixo para navegar pelos arquivos |

75| `/doctor` | Diagnosticar e verificar sua instalação e configurações do Claude Code. Os resultados aparecem com ícones de status. Pressione `f` para que Claude corrija qualquer problema relatado |77| `/doctor` | Diagnosticar e verificar sua instalação e configurações do Claude Code. Os resultados aparecem com ícones de status. Pressione `f` para que Claude corrija qualquer problema relatado |

computer-use.md +3 −3

Details

112 Uma sessão por vez112 Uma sessão por vez

113</h3>113</h3>

114 114 

115Computer use mantém um bloqueio em toda a máquina enquanto ativo. Se outra sessão do Claude Code já estiver usando seu computador, novas tentativas falharão com uma mensagem informando qual sessão mantém o bloqueio. Termine ou saia dessa sessão primeiro.115Computer use mantém um bloqueio em toda a máquina a partir da primeira ação de computer use até que a sessão que o adquiriu saia. {/* min-version: 2.1.195 */}A partir da v2.1.195, terminar a tarefa não libera o bloqueio; apenas sair da sessão faz isso. Se outra sessão do Claude Code já estiver usando seu computador, novas tentativas falharão com uma mensagem informando qual sessão mantém o bloqueio. Saia dessa sessão primeiro.

116 116 

117<h3 id="apps-are-hidden-while-claude-works">117<h3 id="apps-are-hidden-while-claude-works">

118 Os aplicativos são ocultados enquanto Claude trabalha118 Os aplicativos são ocultados enquanto Claude trabalha


134 Parar a qualquer momento134 Parar a qualquer momento

135</h3>135</h3>

136 136 

137Quando Claude adquire o bloqueio, uma notificação do macOS aparece: "Claude is using your computer · press Esc to stop". Pressione `Esc` em qualquer lugar para abortar a ação atual imediatamente, ou pressione `Ctrl+C` no terminal. De qualquer forma, Claude libera o bloqueio, mostra seus aplicativos e retorna o controle a você.137Quando Claude adquire o bloqueio, uma notificação do macOS aparece: "Claude is using your computer · press Esc to stop." Pressione `Esc` em qualquer lugar para abortar a ação atual imediatamente, ou pressione `Ctrl+C` no terminal. De qualquer forma, Claude para, mostra seus aplicativos novamente e retorna o controle a você. A sessão mantém o [bloqueio de computer use](#one-session-at-a-time) até que saia.

138 138 

139Uma segunda notificação aparece quando Claude termina.139Uma segunda notificação aparece quando Claude termina.

140 140 


223 "Computer use is in use by another Claude session"223 "Computer use is in use by another Claude session"

224</h3>224</h3>

225 225 

226Outra sessão do Claude Code mantém o bloqueio. Termine a tarefa nessa sessão ou saia dela. Se a outra sessão travou, o bloqueio é liberado automaticamente quando Claude detecta que o processo não está mais em execução.226Outra sessão do Claude Code mantém o bloqueio, que ela mantém até sair. Saia dessa sessão. Se a outra sessão travou, o bloqueio é liberado automaticamente quando Claude detecta que o processo não está mais em execução.

227 227 

228<h3 id="macos-permissions-prompt-keeps-reappearing">228<h3 id="macos-permissions-prompt-keeps-reappearing">

229 macOS permissions prompt keeps reappearing229 macOS permissions prompt keeps reappearing

Details

1615* **Limpe entre tarefas**: execute `/clear` ao mudar para trabalho não relacionado. Conversa antiga ocupa espaço dos arquivos que você precisa em seguida e custa tokens em cada mensagem.1615* **Limpe entre tarefas**: execute `/clear` ao mudar para trabalho não relacionado. Conversa antiga ocupa espaço dos arquivos que você precisa em seguida e custa tokens em cada mensagem.

1616* **Delegue leituras grandes**: envie pesquisa para um [subagent](/pt/sub-agents) para que o conteúdo do arquivo fique em sua janela de contexto, não na sua.1616* **Delegue leituras grandes**: envie pesquisa para um [subagent](/pt/sub-agents) para que o conteúdo do arquivo fique em sua janela de contexto, não na sua.

1617 1617 

1618Se você precisar de uma janela maior em vez de uma conversa menor, Fable 5, Opus 4.6 e posteriores, e Sonnet 4.6 suportam uma janela de contexto de 1 milhão de tokens. Veja [Extended context](/pt/model-config#extended-context) para disponibilidade por plano e como selecionar uma variante de modelo `[1m]`. A compactação funciona da mesma forma no limite maior.1618Se você precisar de uma janela maior em vez de uma conversa menor, Fable 5, Sonnet 5, Opus 4.6 e posteriores, e Sonnet 4.6 suportam uma janela de contexto de 1 milhão de tokens. Veja [Extended context](/pt/model-config#extended-context) para disponibilidade por plano e como selecionar uma variante de modelo `[1m]`. Sonnet 5 é executado em 1M sem variante `[1m]` para selecionar; veja [Sonnet 5 context window](/pt/model-config#sonnet-5-context-window) para seus limites de auto-compactação e a exceção do gateway LLM. A compactação funciona da mesma forma no limite maior.

1619 1619 

1620<h2 id="check-your-own-session">1620<h2 id="check-your-own-session">

1621 Verifique sua própria sessão1621 Verifique sua própria sessão

costs.md +1 −1

Details

51 Para organizações com limites de taxa personalizados, o tráfego do Claude Code neste workspace conta para os limites de taxa geral da API da sua organização. Você pode definir um [limite de taxa do workspace](https://platform.claude.com/docs/pt/api/rate-limits#setting-lower-limits-for-workspaces) na página Limits deste workspace no Claude Console para limitar a cota do Claude Code e proteger outras cargas de trabalho de produção.51 Para organizações com limites de taxa personalizados, o tráfego do Claude Code neste workspace conta para os limites de taxa geral da API da sua organização. Você pode definir um [limite de taxa do workspace](https://platform.claude.com/docs/pt/api/rate-limits#setting-lower-limits-for-workspaces) na página Limits deste workspace no Claude Console para limitar a cota do Claude Code e proteger outras cargas de trabalho de produção.

52</Note>52</Note>

53 53 

54No Bedrock, Vertex e Foundry, Claude Code não envia métricas da sua nuvem. Organizações que roteiam Claude Code através de um [gateway LLM](/pt/llm-gateway) podem rastrear gastos , já que o gateway vê cada requisição.54No Bedrock, Vertex e Foundry, Claude Code não envia métricas da sua nuvem. Um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado fornece atribuição de uso por usuário, métricas OTLP com contagens de tokens e [limites de gastos por usuário](/pt/claude-apps-gateway-spend-limits) nesses provedores. Organizações que roteiam Claude Code através de um [gateway LLM](/pt/llm-gateway) diferente podem rastrear gastos no gateway, já que ele vê cada requisição.

55 55 

56<h3 id="rate-limit-recommendations">56<h3 id="rate-limit-recommendations">

57 Recomendações de limite de taxa57 Recomendações de limite de taxa

data-usage.md +2 −2

Details

39 39 

40Após a pesquisa de classificação, você pode ver uma pergunta de acompanhamento separada perguntando "Can Anthropic look at your session transcript to help us improve Claude Code?" (Pode a Anthropic examinar sua transcrição de sessão para nos ajudar a melhorar Claude Code?). Esta é uma segunda etapa opcional distinta da classificação:40Após a pesquisa de classificação, você pode ver uma pergunta de acompanhamento separada perguntando "Can Anthropic look at your session transcript to help us improve Claude Code?" (Pode a Anthropic examinar sua transcrição de sessão para nos ajudar a melhorar Claude Code?). Esta é uma segunda etapa opcional distinta da classificação:

41 41 

42* **Yes** (Sim): carrega sua transcrição de conversa, qualquer transcrição de subagentos e o arquivo de log de sessão bruto do disco para a Anthropic. Padrões conhecidos de chave de API e token são redatados antes do carregamento. Código-fonte, conteúdo de arquivo e outro conteúdo de conversa são carregados como estão. As transcrições compartilhadas são retidas por até 6 meses.42* **Yes**: carrega sua transcrição de conversa, qualquer transcrição de subagentos e o arquivo de log de sessão bruto do disco para a Anthropic. Padrões conhecidos de chave de API e token são redatados antes do carregamento. Código-fonte, conteúdo de arquivo e outro conteúdo de conversa são carregados como estão. As transcrições compartilhadas são retidas por até 6 meses. No Bedrock, Vertex AI, Foundry e sessões do [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectadas, Yes escreve o mesmo payload em um arquivo local em `~/.claude/feedback-bundles/` em vez de fazer upload; nada sai de sua máquina até que você encaminhe esse arquivo.

43* **No** (Não): recusa sem enviar nada43* **No** (Não): recusa sem enviar nada

44* **Don't ask again** (Não perguntar novamente): recusa e impede que este acompanhamento apareça em futuras sessões44* **Don't ask again** (Não perguntar novamente): recusa e impede que este acompanhamento apareça em futuras sessões

45 45 


127 Comportamentos padrão por provedor de API127 Comportamentos padrão por provedor de API

128</h2>128</h2>

129 129 

130Por padrão, relatório de erros, telemetria e relatório de bugs são desabilitados ao usar Bedrock, Vertex, Foundry ou Claude Platform on AWS. Pesquisas de qualidade de sessão e a verificação de segurança de domínio WebFetch são exceções e são executadas independentemente do provedor. Você pode desabilitar todo o tráfego não essencial, incluindo pesquisas, de uma vez definindo `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Esta variável não afeta a verificação WebFetch, que tem seu próprio opt-out. Aqui estão os comportamentos padrão completos:130Por padrão, relatório de erros, telemetria e relatório de bugs são desabilitados ao usar Bedrock, Vertex, Foundry ou Claude Platform on AWS. Pesquisas de qualidade de sessão e a verificação de segurança de domínio WebFetch são exceções e são executadas independentemente do provedor. Em uma sessão de [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectada, análise de uso, relatório de erros e classificações de pesquisa para Anthropic são desabilitados pela credencial do gateway em si, sem configuração para reabilitá-los. Você pode desabilitar todo o tráfego não essencial, incluindo pesquisas, de uma vez definindo `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Esta variável não afeta a verificação WebFetch, que tem seu próprio opt-out. Aqui estão os comportamentos padrão completos:

131 131 

132| Serviço | Claude API | Vertex API | Bedrock API | Foundry API | Claude Platform on AWS |132| Serviço | Claude API | Vertex API | Bedrock API | Foundry API | Claude Platform on AWS |

133| ------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |133| ------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |

Details

19Para detalhes sobre uma categoria específica, acompanhe com o comando dedicado:19Para detalhes sobre uma categoria específica, acompanhe com o comando dedicado:

20 20 

21| Comando | Mostra |21| Comando | Mostra |

22| :--------------- | :-------------------------------------------------------------------------------------------------------------------------- |22| :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

23| `/memory` | Quais arquivos `CLAUDE.md` e rules foram carregados, além de entradas de auto-memória |23| `/memory` | Quais arquivos `CLAUDE.md` e rules foram carregados, além de entradas de auto-memória |

24| `/skills` | Skills disponíveis de fontes de projeto, usuário e plugin |24| `/skills` | Skills disponíveis de fontes de projeto, usuário e plugin |

25| `/agents` | Subagentes configurados e suas configurações |25| `/agents` | Subagentes configurados e suas configurações |

26| `/hooks` | Configurações de hook ativas |26| `/hooks` | Configurações de hook ativas |

27| `/mcp` | Servidores MCP conectados e seu status |27| `/mcp` | Servidores MCP conectados e seu status |

28| `/permissions` | Regras de permissão e negação resolvidas atualmente em vigor |28| `/permissions` | Regras de permissão e negação resolvidas atualmente em vigor |

29| `/doctor` | Diagnósticos de configuração: chaves inválidas, erros de schema, saúde da instalação |29| `/doctor` | Diagnósticos de configuração: chaves inválidas, erros de schema, saúde da instalação. A partir da v2.1.196, também relata nomes de [subagente](/pt/sub-agents) duplicados definidos no mesmo escopo e marca qual está ativo |

30| `/debug [issue]` | Ativa o log de depuração para a sessão e solicita que Claude diagnostique usando a saída do log e caminhos de configurações |30| `/debug [issue]` | Ativa o log de depuração para a sessão e solicita que Claude diagnostique usando a saída do log e caminhos de configurações |

31| `/status` | Fontes de configurações ativas, incluindo se as configurações gerenciadas estão em vigor |31| `/status` | Fontes de configurações ativas, incluindo se as configurações gerenciadas estão em vigor |

32 32 

desktop.md +12 −8

Details

8 8 

9O aplicativo Claude Desktop tem três abas: **Chat** para conversas, **Cowork** para [Dispatch e trabalho agentic mais longo](https://claude.com/product/cowork), e **Code** para desenvolvimento de software. Esta página é a referência para a aba Code.9O aplicativo Claude Desktop tem três abas: **Chat** para conversas, **Cowork** para [Dispatch e trabalho agentic mais longo](https://claude.com/product/cowork), e **Code** para desenvolvimento de software. Esta página é a referência para a aba Code.

10 10 

11<CardGroup cols={2}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universal build for Intel and Apple Silicon

14 </Card>14 </Card>


16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian

22 </Card>

19</CardGroup>23</CardGroup>

20 24 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).

22 26 

23Após instalar, inicie Claude, faça login e clique na aba **Code**. A primeira vez que você a abrir no Windows, você precisa ter o [Git for Windows](https://git-scm.com/downloads/win) instalado; reinicie o aplicativo após instalá-lo. Para um passo a passo de sua primeira sessão, consulte o [guia de primeiros passos](/pt/desktop-quickstart).27Após instalar, inicie Claude, faça login e clique na aba **Code**. A primeira vez que você a abrir no Windows, você precisa ter o [Git for Windows](https://git-scm.com/downloads/win) instalado; reinicie o aplicativo após instalá-lo. Para um passo a passo de sua primeira sessão, consulte o [guia de primeiros passos](/pt/desktop-quickstart).

24 28 


67 71 

68A caixa de prompt suporta duas maneiras de trazer contexto externo:72A caixa de prompt suporta duas maneiras de trazer contexto externo:

69 73 

70* **@mention de arquivos**: digite `@` seguido de um nome de arquivo para adicionar um arquivo ao contexto da conversa. Claude pode então ler e referenciar esse arquivo. @mention não está disponível em sessões remotas.74* **@mention de arquivos**: digite `@` seguido de um nome de arquivo para adicionar um arquivo ao contexto da conversa. Claude pode então ler e referenciar esse arquivo. @mention não está disponível em sessões na nuvem.

71* **Anexar arquivos**: anexe imagens, PDFs e outros arquivos ao seu prompt usando o botão de anexo, ou arraste e solte arquivos diretamente no prompt. Isso é útil para compartilhar capturas de tela de bugs, mockups de design ou documentos de referência.75* **Anexar arquivos**: anexe imagens, PDFs e outros arquivos ao seu prompt usando o botão de anexo, ou arraste e solte arquivos diretamente no prompt. Isso é útil para compartilhar capturas de tela de bugs, mockups de design ou documentos de referência.

72 76 

73<h3 id="choose-a-permission-mode">77<h3 id="choose-a-permission-mode">


88 92 

89<span id="auto-mode-availability" />93<span id="auto-mode-availability" />

90 94 

91Auto mode é uma visualização de pesquisa disponível para todos os usuários na API Anthropic e requer Claude Opus 4.6 ou posterior, ou Sonnet 4.6. Em implantações Enterprise que roteiam Desktop para Google Cloud Vertex AI, auto mode está desativado até você [definir `CLAUDE_CODE_ENABLE_AUTO_MODE`](/pt/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry), e apenas Claude Opus 4.7 e Opus 4.8 são suportados lá.95Auto mode é uma visualização de pesquisa disponível para todos os usuários na API Anthropic e requer Claude Opus 4.6 ou posterior, ou Sonnet 4.6 ou posterior. Em implantações Enterprise que roteiam Desktop para Google Cloud Vertex AI, auto mode está desativado até você [definir `CLAUDE_CODE_ENABLE_AUTO_MODE`](/pt/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry), e apenas Claude Sonnet 5, Opus 4.7 e Opus 4.8 são suportados lá.

92 96 

93<Tip title="Melhor prática">97<Tip title="Melhor prática">

94 Comece tarefas complexas em Plan mode para que Claude mapeie uma abordagem antes de fazer alterações. Depois de aprovar o plano, mude para Auto accept edits ou Ask permissions para executá-lo. Veja [explorar primeiro, depois planejar, depois codificar](/pt/best-practices#explore-first-then-plan-then-code) para mais sobre esse fluxo de trabalho.98 Comece tarefas complexas em Plan mode para que Claude mapeie uma abordagem antes de fazer alterações. Depois de aprovar o plano, mude para Auto accept edits ou Ask permissions para executá-lo. Veja [explorar primeiro, depois planejar, depois codificar](/pt/best-practices#explore-first-then-plan-then-code) para mais sobre esse fluxo de trabalho.

95</Tip>99</Tip>

96 100 

97Sessões remotas suportam Accept edits, Plan mode e Auto mode. Accept edits corresponde ao modo `default`: sessões remotas pré-aprovam edições de arquivo, então o seletor mostra Accept edits em vez de Ask permissions. Bypass permissions não está disponível porque o ambiente remoto já é sandboxed.101Sessões na nuvem suportam Accept edits, Plan mode e Auto mode. Accept edits corresponde ao modo `default`: sessões na nuvem pré-aprovam edições de arquivo, então o seletor mostra Accept edits em vez de Ask permissions. Bypass permissions não está disponível porque o ambiente na nuvem já é sandboxed.

98 102 

99Administradores corporativos podem restringir quais modos de permissão estão disponíveis. Veja [configuração corporativa](#enterprise-configuration) para detalhes.103Administradores corporativos podem restringir quais modos de permissão estão disponíveis. Veja [configuração corporativa](#enterprise-configuration) para detalhes.

100 104 


600 604 

601Para definir variáveis de ambiente para sessões locais e servidores de desenvolvimento em qualquer plataforma, abra o menu suspenso de ambiente na caixa de prompt, passe o mouse sobre **Local** e clique no ícone de engrenagem para abrir o editor de ambiente local. Variáveis que você salva aqui são armazenadas criptografadas em sua máquina e se aplicam a cada sessão local e servidor de visualização que você inicia. Você também pode adicionar variáveis à chave `env` em seu arquivo `~/.claude/settings.json`, embora essas alcancem apenas sessões Claude e não servidores de desenvolvimento. Veja [variáveis de ambiente](/pt/env-vars) para a lista completa de variáveis suportadas.605Para definir variáveis de ambiente para sessões locais e servidores de desenvolvimento em qualquer plataforma, abra o menu suspenso de ambiente na caixa de prompt, passe o mouse sobre **Local** e clique no ícone de engrenagem para abrir o editor de ambiente local. Variáveis que você salva aqui são armazenadas criptografadas em sua máquina e se aplicam a cada sessão local e servidor de visualização que você inicia. Você também pode adicionar variáveis à chave `env` em seu arquivo `~/.claude/settings.json`, embora essas alcancem apenas sessões Claude e não servidores de desenvolvimento. Veja [variáveis de ambiente](/pt/env-vars) para a lista completa de variáveis suportadas.

602 606 

603[Extended thinking](/pt/model-config#extended-thinking) está ativado por padrão, o que melhora o desempenho em tarefas de raciocínio complexo mas usa tokens adicionais. Para desabilitar o thinking, defina `MAX_THINKING_TOKENS` para `0` no editor de ambiente local; isso não tem efeito no Fable 5, que sempre usa extended thinking. Em [provedores de terceiros](/pt/third-party-integrations), `0` omite o parâmetro `thinking` em vez disso, e modelos de adaptive-reasoning ainda podem pensar. Em modelos com [adaptive reasoning](/pt/model-config#adjust-effort-level), qualquer outro valor de `MAX_THINKING_TOKENS` é ignorado porque adaptive reasoning controla a profundidade do thinking. Em Opus 4.6 e Sonnet 4.6, defina `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` para `1` para usar um orçamento de thinking fixo; Opus 4.7 e posterior sempre usam adaptive reasoning e não têm modo de orçamento fixo.607[Extended thinking](/pt/model-config#extended-thinking) está ativado por padrão, o que melhora o desempenho em tarefas de raciocínio complexo mas usa tokens adicionais. Para desabilitar o thinking, defina `MAX_THINKING_TOKENS` para `0` no editor de ambiente local; isso não tem efeito no Fable 5, que sempre usa extended thinking. Em [provedores de terceiros](/pt/third-party-integrations), `0` omite o parâmetro `thinking` em vez disso, e modelos de adaptive-reasoning ainda podem pensar. Em modelos com [adaptive reasoning](/pt/model-config#adjust-effort-level), qualquer outro valor de `MAX_THINKING_TOKENS` é ignorado porque adaptive reasoning controla a profundidade do thinking. Em Opus 4.6 e Sonnet 4.6, defina `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` para `1` para usar um orçamento de thinking fixo; Fable 5, Sonnet 5 e Opus 4.7 e posterior sempre usam adaptive reasoning e não têm modo de orçamento fixo.

604 608 

605<h3 id="cloud-sessions">609<h3 id="cloud-sessions">

606 Cloud sessions610 Cloud sessions


822Os seguintes recursos estão disponíveis apenas no CLI ou extensão VS Code, exceto onde observado:826Os seguintes recursos estão disponíveis apenas no CLI ou extensão VS Code, exceto onde observado:

823 827 

824* **Provedores de terceiros**: Desktop se conecta à API da Anthropic por padrão. Implantações corporativas podem configurar Vertex AI e provedores de gateway via [configurações gerenciadas](https://support.claude.com/en/articles/12622667-enterprise-configuration). Para Bedrock ou Foundry no CLI, veja o [quickstart](/pt/quickstart). Como uma exceção à seção acima, a [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview) executa a aba Code em Bedrock, Vertex AI, Foundry ou um gateway LLM auto-hospedado.828* **Provedores de terceiros**: Desktop se conecta à API da Anthropic por padrão. Implantações corporativas podem configurar Vertex AI e provedores de gateway via [configurações gerenciadas](https://support.claude.com/en/articles/12622667-enterprise-configuration). Para Bedrock ou Foundry no CLI, veja o [quickstart](/pt/quickstart). Como uma exceção à seção acima, a [Cowork on 3P research preview](https://claude.com/docs/cowork/3p/overview) executa a aba Code em Bedrock, Vertex AI, Foundry ou um gateway LLM auto-hospedado.

825* **Linux**: o aplicativo desktop está disponível apenas em macOS e Windows. No Linux, use o [CLI](/pt/quickstart).829* **Linux (beta)**: Computer Use ainda não está disponível no aplicativo desktop Linux. Veja [Claude Desktop no Linux](/pt/desktop-linux).

826* **Sugestões de código inline**: Desktop não fornece sugestões no estilo autocompletar. Funciona através de prompts conversacionais e alterações de código explícitas.830* **Sugestões de código inline**: Desktop não fornece sugestões no estilo autocompletar. Funciona através de prompts conversacionais e alterações de código explícitas.

827* **Equipes de agentes**: sessões paralelas de Claude Code que se comunicam entre si estão disponíveis no [CLI](/pt/agent-teams), não em Desktop. Para trabalho multi-agente dentro de uma sessão, use [dynamic workflows](/pt/workflows), que são executados em Desktop.831* **Equipes de agentes**: sessões paralelas de Claude Code que se comunicam entre si estão disponíveis no [CLI](/pt/agent-teams), não em Desktop. Para trabalho multi-agente dentro de uma sessão, use [dynamic workflows](/pt/workflows), que são executados em Desktop.

828* **Comandos terminal-dialog**: comandos integrados que abrem um painel interativo no terminal, como `/permissions`, `/config`, `/agents` e `/doctor`, não estão disponíveis na aba Code e respondem com `isn't available in this environment`. Edite [arquivos de configuração](/pt/settings) diretamente para gerenciar regras de permissão e configuração, ou execute o comando a partir do CLI autônomo.832* **Comandos terminal-dialog**: comandos integrados que abrem um painel interativo no terminal, como `/permissions`, `/config`, `/agents` e `/doctor`, não estão disponíveis na aba Code e respondem com `isn't available in this environment`. Edite [arquivos de configuração](/pt/settings) diretamente para gerenciar regras de permissão e configuração, ou execute o comando a partir do CLI autônomo.


862Se o aplicativo abre mas mostra uma tela em branco ou não responsiva:866Se o aplicativo abre mas mostra uma tela em branco ou não responsiva:

863 867 

8641. Reinicie o aplicativo.8681. Reinicie o aplicativo.

8652. Verifique se há atualizações pendentes. O aplicativo se atualiza automaticamente ao iniciar.8692. Verifique se há atualizações pendentes. Em macOS e Windows, o aplicativo se atualiza automaticamente ao iniciar; em Linux, atualize através do apt conforme descrito em [Claude Desktop no Linux](/pt/desktop-linux).

8663. No Windows, verifique o Event Viewer para logs de crash em **Windows Logs → Application**.8703. No Windows, verifique o Event Viewer para logs de crash em **Windows Logs → Application**.

867 871 

868<h3 id="failed-to-load-session">872<h3 id="failed-to-load-session">

desktop-linux.md +113 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Claude Desktop no Linux (beta)

6 

7> Instale e atualize o aplicativo desktop Claude no Ubuntu e Debian

8 

9<Note>

10 O suporte ao Linux para o aplicativo desktop Claude está em beta. As abas Chat, Cowork e Code estão todas disponíveis.

11</Note>

12 

13O aplicativo desktop no Linux oferece a mesma experiência de Chat, Cowork e Claude Code que macOS e Windows: sessões paralelas, revisão de diff visual, um terminal e editor integrados e visualização ao vivo do aplicativo. Consulte [Usar Claude Code Desktop](/pt/desktop) para a referência completa de recursos.

14 

15<h2 id="requirements">

16 Requisitos

17</h2>

18 

19* Ubuntu 22.04 ou posterior, ou Debian 12 ou posterior

20* x86\_64 ou arm64

21 

22Outras distribuições baseadas em Debian que atendem a esses requisitos podem funcionar, mas não são oficialmente testadas.

23 

24<h2 id="install">

25 Instalar

26</h2>

27 

28Instale a partir do repositório apt da Anthropic para que as atualizações cheguem através das atualizações regulares de pacotes do seu sistema.

29 

30<Steps>

31 <Step title="Adicionar o repositório apt da Anthropic">

32 Baixe a chave de assinatura da Anthropic:

33 

34 ```bash theme={null}

35 sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc

36 ```

37 

38 Registre o repositório:

39 

40 ```bash theme={null}

41 echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/claude-desktop-archive-keyring.asc] https://downloads.claude.ai/claude-desktop/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/claude-desktop.list

42 ```

43 </Step>

44 

45 <Step title="Instalar o pacote">

46 ```bash theme={null}

47 sudo apt update && sudo apt install claude-desktop

48 ```

49 </Step>

50 

51 <Step title="Iniciar e fazer login">

52 Inicie **Claude** a partir do seu inicializador de aplicativos, ou execute `claude-desktop` a partir de um terminal, e faça login com sua conta Anthropic.

53 </Step>

54</Steps>

55 

56<Accordion title="Verificar a chave de assinatura">

57 Você pode confirmar que a chave de assinatura baixada pertence à Anthropic:

58 

59 ```bash theme={null}

60 gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

61 ```

62 

63 A impressão digital deve ser `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.

64</Accordion>

65 

66<h3 id="install-from-a-downloaded-file">

67 Instalar a partir de um arquivo baixado

68</h3>

69 

70Se você não conseguir usar o repositório apt, baixe o pacote `.deb` para sua arquitetura (x64 ou arm64) em [claude.com/download](https://claude.com/download), depois abra-o com seu instalador de software ou execute a partir do seu diretório de downloads:

71 

72```bash theme={null}

73sudo apt install ./claude-desktop_*.deb

74```

75 

76Um `.deb` instalado desta forma não recebe atualizações. Para obter atualizações através do apt, adicione o repositório conforme mostrado acima, ou descomente a linha `deb` na entrada de espaço reservado que o pacote escreve em `/etc/apt/sources.list.d/claude-desktop.list`.

77 

78<h2 id="update">

79 Atualizar

80</h2>

81 

82O aplicativo desktop não se atualiza automaticamente no Linux. As atualizações chegam com as atualizações regulares de pacotes do seu sistema:

83 

84```bash theme={null}

85sudo apt update && sudo apt upgrade

86```

87 

88O atualizador de software gráfico da sua distribuição também detectará novas versões.

89 

90<h2 id="uninstall">

91 Desinstalar

92</h2>

93 

94```bash theme={null}

95sudo apt remove claude-desktop

96```

97 

98Isso remove a chave de assinatura junto com o aplicativo, portanto, se você adicionou a entrada do repositório durante a instalação, remova-a também:

99 

100```bash theme={null}

101sudo rm /etc/apt/sources.list.d/claude-desktop.list

102```

103 

104<h2 id="what’s-not-in-the-linux-beta-yet">

105 O que ainda não está no beta do Linux

106</h2>

107 

108* **Computer Use**: [controle de aplicativo e tela](/pt/desktop#let-claude-use-your-computer) não está disponível no Linux.

109* **Dictation**: entrada de voz não está disponível no aplicativo desktop Linux. Use [ditado por voz](/pt/voice-dictation) na CLI em vez disso.

110* **Quick Entry global hotkey**: funciona no X11. No Wayland nativo, requer o portal GlobalShortcuts do seu ambiente de desktop.

111* **Fedora e RHEL**: apenas distribuições baseadas em Debian são suportadas atualmente. O suporte para distribuições adicionais virá no futuro.

112 

113Para qualquer coisa ainda não disponível no aplicativo desktop, a [CLI](/pt/quickstart) executa o mesmo mecanismo Claude Code e suporta uma gama mais ampla de distribuições Linux; consulte os [requisitos do sistema](/pt/setup#system-requirements).

Details

8 8 

9O aplicativo de desktop oferece Claude Code com uma interface gráfica construída para executar múltiplas sessões lado a lado: uma barra lateral para gerenciar trabalho paralelo, um layout com arrastar e soltar com terminal integrado e editor de arquivos, revisão visual de diff, visualização ao vivo do aplicativo, monitoramento de PR do GitHub com mesclagem automática e tarefas agendadas. Nenhum terminal necessário.9O aplicativo de desktop oferece Claude Code com uma interface gráfica construída para executar múltiplas sessões lado a lado: uma barra lateral para gerenciar trabalho paralelo, um layout com arrastar e soltar com terminal integrado e editor de arquivos, revisão visual de diff, visualização ao vivo do aplicativo, monitoramento de PR do GitHub com mesclagem automática e tarefas agendadas. Nenhum terminal necessário.

10 10 

11<CardGroup cols={2}>11<CardGroup cols={3}>

12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Download for macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">

13 Universal build for Intel and Apple Silicon13 Universal build for Intel and Apple Silicon

14 </Card>14 </Card>


16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">16 <Card title="Download for Windows" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">

17 For x64 processors17 For x64 processors

18 </Card>18 </Card>

19 

20 <Card title="Get Claude for Linux (beta)" icon="linux" href="/en/desktop-linux">

21 apt or .deb for Ubuntu and Debian

22 </Card>

19</CardGroup>23</CardGroup>

20 24 

21For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). The desktop app is not available on Linux; use the [CLI](/en/quickstart) instead.25For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/en/desktop-linux).

22 26 

23<Note>27<Note>

24 Claude Code requer uma [assinatura Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).28 Claude Code requer uma [assinatura Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).


40 44 

41<Steps>45<Steps>

42 <Step title="Instale e faça login">46 <Step title="Instale e faça login">

43 Baixe o instalador para sua plataforma nos links acima e execute-o. Inicie Claude na sua pasta Applications no macOS ou no menu Iniciar no Windows e faça login com sua conta Anthropic.47 No macOS e Windows, baixe o instalador dos links acima e execute-o. No Linux, siga as etapas de instalação em [Claude Desktop no Linux](/pt/desktop-linux). Inicie Claude na sua pasta Applications no macOS, no menu Iniciar no Windows ou no seu inicializador de aplicativos no Linux e faça login com sua conta Anthropic.

44 </Step>48 </Step>

45 49 

46 <Step title="Abra a aba Code">50 <Step title="Abra a aba Code">

Details

162 </Step>162 </Step>

163 163 

164 <Step title="Navegue pelos plugins disponíveis">164 <Step title="Navegue pelos plugins disponíveis">

165 Execute `/plugin` para abrir o gerenciador de plugins. Isso abre uma interface com abas com quatro abas que você pode percorrer usando **Tab** (ou **Shift+Tab** para ir para trás):165 Execute `/plugin` para abrir o gerenciador de plugins. Isso abre uma interface com abas com quatro abas que você pode percorrer usando **Tab**, ou **Shift+Tab** para ir para trás:

166 166 

167 * **Discover**: navegue pelos plugins disponíveis de todos os seus marketplaces167 * **Discover**: navegue pelos plugins disponíveis de todos os seus marketplaces

168 * **Installed**: visualize e gerencie seus plugins instalados168 * **Installed**: visualize e gerencie seus plugins instalados


185 * **Project scope**: instale para todos os colaboradores neste repositório185 * **Project scope**: instale para todos os colaboradores neste repositório

186 * **Local scope**: instale para você neste repositório apenas186 * **Local scope**: instale para você neste repositório apenas

187 187 

188 Por exemplo, selecione **commit-commands** (um plugin que adiciona skills de fluxo de trabalho git) e instale-o no seu escopo de usuário.188 Por exemplo, selecione **commit-commands**, um plugin que adiciona skills de fluxo de trabalho git, e instale-o no seu escopo de usuário.

189 189 

190 Você também pode instalar diretamente da linha de comando:190 Você também pode instalar diretamente da linha de comando:

191 191 


223 **Atalhos**: Você pode usar `/plugin market` em vez de `/plugin marketplace` e `rm` em vez de `remove`.223 **Atalhos**: Você pode usar `/plugin market` em vez de `/plugin marketplace` e `rm` em vez de `remove`.

224</Tip>224</Tip>

225 225 

226* **Repositórios GitHub**: formato `owner/repo` (por exemplo, `anthropics/claude-code`)226* **Repositórios GitHub**: formato `owner/repo`, por exemplo `anthropics/claude-code`

227* **URLs Git**: qualquer URL de repositório git (GitLab, Bitbucket, auto-hospedado)227* **URLs Git**: qualquer URL de repositório git, incluindo GitLab, Bitbucket e servidores auto-hospedados

228* **Caminhos locais**: diretórios ou caminhos diretos para arquivos `marketplace.json`228* **Caminhos locais**: diretórios ou caminhos diretos para arquivos `marketplace.json`

229* **URLs remotas**: URLs diretas para arquivos `marketplace.json` hospedados229* **URLs remotas**: URLs diretas para arquivos `marketplace.json` hospedados

230 230 


232 Adicione do GitHub232 Adicione do GitHub

233</h3>233</h3>

234 234 

235Adicione um repositório GitHub que contém um arquivo `.claude-plugin/marketplace.json` usando o formato `owner/repo`onde `owner` é o nome de usuário ou organização do GitHub e `repo` é o nome do repositório.235Adicione um repositório GitHub que contém um arquivo `.claude-plugin/marketplace.json` usando o formato `owner/repo`, onde `owner` é o nome de usuário ou organização do GitHub e `repo` é o nome do repositório.

236 236 

237Por exemplo, `anthropics/claude-code` refere-se ao repositório `claude-code` de propriedade de `anthropics`:237Por exemplo, `anthropics/claude-code` refere-se ao repositório `claude-code` de propriedade de `anthropics`:

238 238 


246 246 

247Adicione qualquer repositório git fornecendo a URL completa. Isso funciona com qualquer host Git, incluindo GitLab, Bitbucket e servidores auto-hospedados. Inclua o sufixo `.git` para que Claude Code clone o repositório em vez de tratar a URL como um link direto para um arquivo `marketplace.json` hospedado.247Adicione qualquer repositório git fornecendo a URL completa. Isso funciona com qualquer host Git, incluindo GitLab, Bitbucket e servidores auto-hospedados. Inclua o sufixo `.git` para que Claude Code clone o repositório em vez de tratar a URL como um link direto para um arquivo `marketplace.json` hospedado.

248 248 

249Inclua o prefixo `https://` também. Claude Code v2.1.196 e posterior rejeitam um host digitado sem ele, como `gitlab.com/company/plugins.git`, como um atalho `owner/repo` do GitHub inválido, e a mensagem de erro informa para adicionar o prefixo. Versões anteriores o interpretam incorretamente como um caminho de repositório do GitHub e falham no momento do clone.

250 

249Usando HTTPS:251Usando HTTPS:

250 252 

251```shell theme={null}253```shell theme={null}


298 Instale plugins300 Instale plugins

299</h2>301</h2>

300 302 

301Uma vez que você adicionou marketplaces, você pode instalar plugins diretamente (instala no escopo de usuário por padrão):303Uma vez que você adicionou marketplaces, você pode instalar plugins diretamente:

302 304 

303```shell theme={null}305```shell theme={null}

304/plugin install plugin-name@marketplace-name306/plugin install plugin-name@marketplace-name

305```307```

306 308 

307Para escolher um [escopo de instalação](/pt/settings#configuration-scopes) diferente, use a UI interativa: execute `/plugin`, para a aba **Discover** e pressione **Enter** em um plugin. Você verá opções para:309O comando abre os detalhes desse plugin, onde você escolhe um [escopo de instalação](/pt/settings#configuration-scopes). Você as mesmas opções quando executa `/plugin`, vai para a aba **Discover** e pressiona **Enter** em um plugin:

308 310 

309* **User scope** (padrão): instale para você em todos os projetos311* **User scope** (padrão): instale para você em todos os projetos

310* **Project scope**: instale para todos os colaboradores neste repositório (adiciona a `.claude/settings.json`)312* **Project scope**: instale para todos os colaboradores neste repositório, o que adiciona o plugin a `.claude/settings.json`

311* **Local scope**: instale para você neste repositório apenas (não compartilhado com colaboradores)313* **Local scope**: instale para você neste repositório apenas, não compartilhado com colaboradores

314 

315Para instalar sem uma etapa interativa, use o comando shell [`claude plugin install`](/pt/plugins-reference#plugin-install), que instala no escopo de usuário a menos que você passe `--scope`.

312 316 

313Você também pode ver plugins com escopo **managed**—esses são instalados por administradores via [managed settings](/pt/settings#settings-files) e não podem ser modificados.317Você também pode ver plugins com escopo **managed**. Esses são instalados por administradores via [managed settings](/pt/settings#settings-files) e não podem ser modificados.

314 318 

315<Warning>319<Warning>

316 Certifique-se de confiar em um plugin antes de instalá-lo. Anthropic não controla quais MCP servers, arquivos ou outro software estão incluídos em plugins e não pode verificar que funcionam conforme pretendido. Verifique a página inicial de cada plugin para mais informações.320 Certifique-se de confiar em um plugin antes de instalá-lo. Anthropic não controla quais MCP servers, arquivos ou outro software estão incluídos em plugins e não pode verificar que funcionam conforme pretendido. Verifique a página inicial de cada plugin para mais informações.


330 334 

331A visualização de detalhes mostra os componentes que o plugin contribui: comandos, skills, agentes, hooks, servidores MCP e servidores LSP. O mesmo inventário está disponível na linha de comando com `claude plugin details`.335A visualização de detalhes mostra os componentes que o plugin contribui: comandos, skills, agentes, hooks, servidores MCP e servidores LSP. O mesmo inventário está disponível na linha de comando com `claude plugin details`.

332 336 

333No Claude Code v2.1.187 e posterior, a aba Installed adiciona um grupo **Not used recently** para plugins do marketplace que você instalou por conta própria, mas não invocou em pelo menos duas semanas e em pelo menos 10 sessões, e a visualização de detalhes mostra uma linha **Last used** para cada plugin. Use estes para encontrar plugins que você não usa mais, mas que ainda estão adicionando custo de inicialização e contexto, depois desabilite ou desinstale-os.337No Claude Code v2.1.187 e posterior, a aba Installed adiciona um grupo **Not used recently** para plugins do marketplace que você instalou por conta própria, mas não invocou em pelo menos duas semanas, em um período de pelo menos 10 sessões, e a visualização de detalhes mostra uma linha **Last used** para cada plugin. Use estes para encontrar plugins que você não usa mais, mas que ainda estão adicionando custo de inicialização e contexto, depois desabilite ou desinstale-os.

334 338 

335Plugins que sua organização gerencia ou que você carrega com `--plugin-dir` nunca são listados como não utilizados, e plugins que contribuem um servidor LSP, tema, estilo de saída, monitor ou workflow também nunca são listados, já que entregam valor sem uma invocação para rastrear. O grupo e a linha **Last used** estão ambos ocultos quando sua organização restringe marketplaces com [`strictKnownMarketplaces`](/pt/settings#strictknownmarketplaces).339Plugins que sua organização gerencia ou que você carrega com `--plugin-dir` nunca são listados como não utilizados, e plugins que contribuem um servidor LSP, tema, estilo de saída, monitor ou workflow também nunca são listados, já que entregam valor sem uma invocação para rastrear. O grupo e a linha **Last used** estão ambos ocultos quando sua organização restringe marketplaces com [`strictKnownMarketplaces`](/pt/settings#strictknownmarketplaces).

336 340 


358/plugin enable plugin-name@marketplace-name362/plugin enable plugin-name@marketplace-name

359```363```

360 364 

365Nestes identificadores, `plugin-name` é o `name` do plugin na [entrada do marketplace](/pt/plugin-marketplaces#plugin-entries), que pode diferir do `name` no próprio `plugin.json` do plugin.

366 

367A partir do Claude Code v2.1.195, **Enable** e **Disable** na interface `/plugin` funcionam para plugins cujos dois nomes diferem, e `/plugin enable` e `/plugin disable` aceitam qualquer um dos nomes. Quando você desabilita tal plugin em uma versão anterior, Claude Code relata `already disabled` e o deixa habilitado.

368 

361Remova completamente um plugin:369Remova completamente um plugin:

362 370 

363```shell theme={null}371```shell theme={null}


464 472 

465Administradores de equipe podem configurar instalação automática de marketplace para projetos adicionando configuração de marketplace a `.claude/settings.json`. Quando membros da equipe confiam na pasta do repositório, Claude Code os solicita a instalar esses marketplaces e plugins.473Administradores de equipe podem configurar instalação automática de marketplace para projetos adicionando configuração de marketplace a `.claude/settings.json`. Quando membros da equipe confiam na pasta do repositório, Claude Code os solicita a instalar esses marketplaces e plugins.

466 474 

475A partir de Claude Code v2.1.195, esta etapa de instalação se aplica em cada caminho que carrega plugins. Um plugin que apenas o `.claude/settings.json` do projeto habilita, e que vem de uma fonte externa como um repositório GitHub ou pacote npm, não carrega até que o membro da equipe o instale. Até então, Claude Code relata o plugin como não instalado e mostra o comando `claude plugin install` para executar.

476 

467Adicione `extraKnownMarketplaces` ao `.claude/settings.json` do seu projeto:477Adicione `extraKnownMarketplaces` ao `.claude/settings.json` do seu projeto:

468 478 

469```json theme={null}479```json theme={null}


499 509 

5001. **Verifique sua versão**: Execute `claude --version` para ver o que está instalado.5101. **Verifique sua versão**: Execute `claude --version` para ver o que está instalado.

5012. **Atualize Claude Code**:5112. **Atualize Claude Code**:

502 * **Homebrew**: `brew upgrade claude-code` (ou `brew upgrade claude-code@latest` se você instalou esse cask)512 * **Homebrew**: `brew upgrade claude-code`, ou `brew upgrade claude-code@latest` se você instalou esse cask

503 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`513 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

504 * **Native installer**: Re-execute o comando de instalação de [Setup](/pt/setup)514 * **Native installer**: Re-execute o comando de instalação de [Setup](/pt/setup)

5053. **Reinicie Claude Code**: Após atualizar, reinicie seu terminal e execute `claude` novamente.5153. **Reinicie Claude Code**: Após atualizar, reinicie seu terminal e execute `claude` novamente.


509</h3>519</h3>

510 520 

511* **Marketplace não carregando**: Verifique se a URL está acessível e se `.claude-plugin/marketplace.json` existe no caminho521* **Marketplace não carregando**: Verifique se a URL está acessível e se `.claude-plugin/marketplace.json` existe no caminho

512* **Falhas de instalação de plugin**: Verifique se as URLs de fonte do plugin estão acessíveis e repositórios são públicos (ou você tem acesso)522* **Falhas de instalação de plugin**: Verifique se as URLs de fonte do plugin estão acessíveis e que repositórios são públicos, ou que você tem acesso a eles

513* **Arquivos não encontrados após instalação**: Plugins são copiados para um cache, então caminhos referenciando arquivos fora do diretório do plugin não funcionarão523* **Arquivos não encontrados após instalação**: Plugins são copiados para um cache, então caminhos referenciando arquivos fora do diretório do plugin não funcionarão

514* **Skills de plugin não aparecendo**: Limpe o cache com `rm -rf ~/.claude/plugins/cache`, reinicie Claude Code e reinstale o plugin.524* **Skills de plugin não aparecendo**: Limpe o cache com `rm -rf ~/.claude/plugins/cache`, reinicie Claude Code e reinstale o plugin.

515 525 


519 Problemas de code intelligence529 Problemas de code intelligence

520</h3>530</h3>

521 531 

522* **Language server não iniciando**: verifique se o binário está instalado e disponível em seu `$PATH`. Verifique a aba Errors do `/plugin` para detalhes.532* **Language server não iniciando**: Verifique se o binário está instalado e disponível em seu `$PATH`. Verifique a aba Errors do `/plugin` para detalhes.

523* **Alto uso de memória**: language servers como `rust-analyzer` e `pyright` podem consumir memória significativa em projetos grandes. Se você experimentar problemas de memória, desabilite o plugin com `/plugin disable <plugin-name>` e confie nas ferramentas de busca integradas do Claude.533* **Alto uso de memória**: Language servers como `rust-analyzer` e `pyright` podem consumir memória significativa em projetos grandes. Se você experimentar problemas de memória, desabilite o plugin com `/plugin disable <plugin-name>` e confie nas ferramentas de busca integradas do Claude.

524* **Diagnósticos falsos positivos em monorepos**: language servers podem relatar erros de importação não resolvida para pacotes internos se o workspace não estiver configurado corretamente. Esses não afetam a capacidade do Claude de editar código.534* **Diagnósticos falsos positivos em monorepos**: Language servers podem relatar erros de importação não resolvida para pacotes internos se o workspace não estiver configurado corretamente. Esses não afetam a capacidade do Claude de editar código.

525 535 

526<h2 id="next-steps">536<h2 id="next-steps">

527 Próximos passos537 Próximos passos

env-vars.md +21 −15

Details

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

103| `ANTHROPIC_AWS_BASE_URL` | Substitua a URL do endpoint [Claude Platform on AWS](/pt/claude-platform-on-aws). Use para regiões personalizadas ou ao rotear através de um [gateway LLM](/pt/llm-gateway). Padrão é `https://aws-external-anthropic.{AWS_REGION}.api.aws` |103| `ANTHROPIC_AWS_BASE_URL` | Substitua a URL do endpoint [Claude Platform on AWS](/pt/claude-platform-on-aws). Use para regiões personalizadas ou ao rotear através de um [gateway LLM](/pt/llm-gateway). Padrão é `https://aws-external-anthropic.{AWS_REGION}.api.aws` |

104| `ANTHROPIC_AWS_WORKSPACE_ID` | Obrigatório para [Claude Platform on AWS](/pt/claude-platform-on-aws). Enviado em cada solicitação como cabeçalho `anthropic-workspace-id` |104| `ANTHROPIC_AWS_WORKSPACE_ID` | Obrigatório para [Claude Platform on AWS](/pt/claude-platform-on-aws). Enviado em cada solicitação como cabeçalho `anthropic-workspace-id` |

105| `ANTHROPIC_BASE_URL` | Substitua o endpoint da API para rotear solicitações através de um proxy ou gateway. Quando definido para um host que não é de primeira parte, [busca de ferramentas MCP](/pt/mcp#scale-with-mcp-tool-search) é desabilitada por padrão. Defina `ENABLE_TOOL_SEARCH=true` se seu proxy encaminha blocos `tool_reference` |105| `ANTHROPIC_BASE_URL` | Substitua o endpoint da API para rotear solicitações através de um proxy ou gateway. Quando definido para um host que não é de primeira parte, [busca de ferramentas MCP](/pt/mcp#scale-with-mcp-tool-search) é desabilitada por padrão. Defina `ENABLE_TOOL_SEARCH=true` se seu proxy encaminha blocos `tool_reference`. {/* min-version: 2.1.196 */}A partir de v2.1.196, [Remote Control](/pt/remote-control#requirements) é desabilitado quando isso aponta para um host diferente de `api.anthropic.com`, correspondendo ao seu comportamento em Bedrock, Vertex AI e Foundry |

106| `ANTHROPIC_BEDROCK_BASE_URL` | Substitua a URL do endpoint Bedrock. Use para endpoints Bedrock personalizados ou ao rotear através de um [gateway LLM](/pt/llm-gateway). Veja [Amazon Bedrock](/pt/amazon-bedrock) |106| `ANTHROPIC_BEDROCK_BASE_URL` | Substitua a URL do endpoint Bedrock. Use para endpoints Bedrock personalizados ou ao rotear através de um [gateway LLM](/pt/llm-gateway). Veja [Amazon Bedrock](/pt/amazon-bedrock) |

107| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Substitua a URL do endpoint Bedrock Mantle. Veja [endpoint Mantle](/pt/amazon-bedrock#use-the-mantle-endpoint) |107| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Substitua a URL do endpoint Bedrock Mantle. Veja [endpoint Mantle](/pt/amazon-bedrock#use-the-mantle-endpoint) |

108| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Bedrock [service tier](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) (`default`, `flex` ou `priority`). Enviado como cabeçalho `X-Amzn-Bedrock-Service-Tier`. Veja [Amazon Bedrock](/pt/amazon-bedrock#service-tiers) |108| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Bedrock [service tier](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) (`default`, `flex` ou `priority`). Enviado como cabeçalho `X-Amzn-Bedrock-Service-Tier`. Veja [Amazon Bedrock](/pt/amazon-bedrock#service-tiers) |


148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Defina como `1` para desabilitar todos os tipos de [subagente](/pt/sub-agents) integrados, como Explore e Plan. Aplica-se apenas em modo não interativo (a flag `-p`). Útil para usuários do SDK que desejam uma tela em branco |148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Defina como `1` para desabilitar todos os tipos de [subagente](/pt/sub-agents) integrados, como Explore e Plan. Aplica-se apenas em modo não interativo (a flag `-p`). Útil para usuários do SDK que desejam uma tela em branco |

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

150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tempo limite de travamento em milissegundos para subagentes em segundo plano. Padrão `600000` (10 minutos). O temporizador é reiniciado em cada evento de progresso de streaming; se nenhum progresso chegar dentro da janela, o subagente é abortado e a tarefa é marcada como falha, exibindo qualquer resultado parcial para o pai |150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tempo limite de travamento em milissegundos para subagentes em segundo plano. Padrão `600000` (10 minutos). O temporizador é reiniciado em cada evento de progresso de streaming; se nenhum progresso chegar dentro da janela, o subagente é abortado e a tarefa é marcada como falha, exibindo qualquer resultado parcial para o pai |

151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Defina a porcentagem (1-100) da janela de auto-compactação na qual a auto-compactação é acionada. Use valores mais baixos como `50` para compactar mais cedo. Esta variável só causa compactação mais cedo quando Claude Code compacta proativamente: quando `CLAUDE_CODE_AUTO_COMPACT_WINDOW` está definido, em [sessões em nuvem](/pt/claude-code-on-the-web) e em Sonnet 4.6 e Opus 4.6 sem [contexto estendido](/pt/model-config#extended-context), que compactam no limite de 200K por padrão. Em outros casos, como uma sessão local em Opus 4.8 ou qualquer modelo com contexto estendido, a auto-compactação é acionada quando a conversa atinge o limite de contexto do modelo. O override só pode baixar o limite, então valores acima do padrão não têm efeito. Aplica-se a conversas principais e subagentes |151| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Defina a porcentagem (1-100) da janela de auto-compactação na qual a auto-compactação é acionada. Use valores mais baixos como `50` para compactar mais cedo. Esta variável só causa compactação mais cedo quando Claude Code compacta proativamente: quando `CLAUDE_CODE_AUTO_COMPACT_WINDOW` está definido, em [sessões em nuvem](/pt/claude-code-on-the-web) e em Sonnet 4.6 e Opus 4.6 sem [contexto estendido](/pt/model-config#extended-context), que compactam no limite de 200K por padrão. Em Sonnet 5, compactação proativa se aplica no [limite padrão](/pt/model-config#sonnet-5-context-window) do modelo. Em outros casos, como uma sessão local em Opus 4.8, auto-compactação é acionada quando a conversa atinge o limite de contexto do modelo. O override só pode baixar o limite, então valores acima do padrão não têm efeito. Aplica-se a conversas principais e subagentes |

152| `CLAUDE_AUTO_BACKGROUND_TASKS` | Defina como `1` para forçar a habilitação do envio automático para segundo plano de tarefas de agente de longa duração. Quando habilitado, subagentes são movidos para o segundo plano após executarem por aproximadamente dois minutos |152| `CLAUDE_AUTO_BACKGROUND_TASKS` | Defina como `1` para forçar a habilitação do envio automático para segundo plano de tarefas de agente de longa duração. Quando habilitado, subagentes são movidos para o segundo plano após executarem por aproximadamente dois minutos |

153| `CLAUDE_AX_SCREEN_READER` | {/* min-version: 2.1.181 */}Defina como `1` para renderizar saída amigável ao leitor de tela: texto simples sem bordas decorativas ou animações. Defina como `0` para forçar o modo leitor de tela desativado mesmo quando [`axScreenReader`](/pt/settings#available-settings) é `true`. A flag [`--ax-screen-reader`](/pt/cli-reference#cli-flags) tem precedência. Requer Claude Code v2.1.181 ou posterior |153| `CLAUDE_AX_SCREEN_READER` | {/* min-version: 2.1.181 */}Defina como `1` para renderizar saída amigável ao leitor de tela: texto simples sem bordas decorativas ou animações. Defina como `0` para forçar o modo leitor de tela desativado mesmo quando [`axScreenReader`](/pt/settings#available-settings) é `true`. A flag [`--ax-screen-reader`](/pt/cli-reference#cli-flags) tem precedência. Requer Claude Code v2.1.181 ou posterior |

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


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

161| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para parar Claude Code de abrir o navegador automaticamente quando um novo [artefato](/pt/artifacts) é publicado. Republicar um artefato existente não abre o navegador independentemente dessa configuração |161| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Defina como `0` para parar Claude Code de abrir o navegador automaticamente quando um novo [artefato](/pt/artifacts) é publicado. Republicar um artefato existente não abre o navegador independentemente dessa configuração |

162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir o bloco de atribuição (versão do cliente e impressão digital do prompt) do início do prompt do sistema. Desabilitá-lo melhora as taxas de acerto do cache de prompt ao rotear através de um [gateway LLM](/pt/llm-gateway). O cache da API Anthropic não é afetado |162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Defina como `0` para omitir o bloco de atribuição (versão do cliente e impressão digital do prompt) do início do prompt do sistema. Desabilitá-lo melhora as taxas de acerto do cache de prompt ao rotear através de um [gateway LLM](/pt/llm-gateway). O cache da API Anthropic não é afetado |

163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Defina a capacidade de contexto em tokens usada para cálculos de auto-compactação. Padrão é a janela de contexto do modelo: 200K para modelos padrão ou 1M para modelos de [contexto estendido](/pt/model-config#extended-context). Use um valor mais baixo como `500000` em um modelo de 1M para tratar a janela como 500K para fins de compactação. O valor é limitado à janela de contexto real do modelo. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` é aplicado como uma porcentagem deste valor. Definir esta variável desacopla o limite de compactação do `used_percentage` da linha de status, que sempre usa a janela de contexto completa do modelo |163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Defina a capacidade de contexto em tokens usada para cálculos de auto-compactação. Padrão é a janela de contexto do modelo: 200K para modelos padrão ou 1M para modelos de [contexto estendido](/pt/model-config#extended-context), exceto em Sonnet 5, que tem seu próprio [limite padrão](/pt/model-config#sonnet-5-context-window). Use um valor mais baixo como `500000` em um modelo de 1M para tratar a janela como 500K para fins de compactação. O valor é limitado à janela de contexto real do modelo. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` é aplicado como uma porcentagem deste valor. Definir esta variável desacopla o limite de compactação do `used_percentage` da linha de status, que sempre usa a janela de contexto completa do modelo |

164| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Substitua a [conexão IDE](/pt/vs-code) automática. Por padrão, Claude Code se conecta automaticamente quando iniciado dentro do terminal integrado de uma IDE suportada. Defina como `false` para evitar isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falha, como quando tmux obscurece o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/pt/settings#global-config-settings) |164| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Substitua a [conexão IDE](/pt/vs-code) automática. Por padrão, Claude Code se conecta automaticamente quando iniciado dentro do terminal integrado de uma IDE suportada. Defina como `false` para evitar isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falha, como quando tmux obscurece o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/pt/settings#global-config-settings) |

165| `CLAUDE_CODE_CERT_STORE` | Lista separada por vírgula de fontes de certificado CA para conexões TLS. `bundled` é o conjunto de CA Mozilla fornecido com Claude Code. `system` é o armazenamento de confiança do sistema operacional. Padrão é `bundled,system` |165| `CLAUDE_CODE_CERT_STORE` | Lista separada por vírgula de fontes de certificado CA para conexões TLS. `bundled` é o conjunto de CA Mozilla fornecido com Claude Code. `system` é o armazenamento de confiança do sistema operacional, somente leitura em tempos de execução com `tls.getCACertificates`: o binário nativo, ou Node 22.15 ou posterior para instalações npm. Veja [Armazenamento de certificado CA](/pt/network-config#ca-certificate-store). Padrão é `bundled,system` |

166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Defina como `1` em subprocessos que Claude Code gera via ferramentas Bash, PowerShell e Monitor, [hook](/pt/hooks) comandos e [linha de status](/pt/statusline) comandos. Não definido para subprocessos [servidor MCP](/pt/mcp) stdio, que são de longa duração e sobrevivem à sessão que os gerou. Diferentemente de `CLAUDECODE`, isso é definido apenas pelo Claude Code quando ele inicia um subprocesso e não por extensões IDE, então distingue de forma confiável uma sessão aninhada de um `claude` de nível superior iniciado em um terminal integrado IDE. Uma `claude` TUI interativa aninhada iniciada desta forma é automaticamente excluída de `--resume`, `--continue`, histórico de seta para cima e a lista `claude agents`. Sessões `claude -p` não interativas ainda persistem. Defina `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para substituir esta exclusão. Requer Claude Code v2.1.172 ou posterior |166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Defina como `1` em subprocessos que Claude Code gera via ferramentas Bash, PowerShell e Monitor, [hook](/pt/hooks) comandos e [linha de status](/pt/statusline) comandos. Não definido para subprocessos [servidor MCP](/pt/mcp) stdio, que são de longa duração e sobrevivem à sessão que os gerou. Diferentemente de `CLAUDECODE`, isso é definido apenas pelo Claude Code quando ele inicia um subprocesso e não por extensões IDE, então distingue de forma confiável uma sessão aninhada de um `claude` de nível superior iniciado em um terminal integrado IDE. Uma `claude` TUI interativa aninhada iniciada desta forma é automaticamente excluída de `--resume`, `--continue`, histórico de seta para cima e a lista `claude agents`. Sessões `claude -p` não interativas ainda persistem. Defina `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para substituir esta exclusão. Requer Claude Code v2.1.172 ou posterior |

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

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


170| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | {/* max-version: 2.1.185 */}Removido em v2.1.186 e agora é um no-op. Anteriormente definia um tempo limite separado para a fase de conexão, TLS e cabeçalho de resposta de uma solicitação de API de streaming. Use `API_TIMEOUT_MS` para o tempo limite por solicitação |170| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | {/* max-version: 2.1.185 */}Removido em v2.1.186 e agora é um no-op. Anteriormente definia um tempo limite separado para a fase de conexão, TLS e cabeçalho de resposta de uma solicitação de API de streaming. Use `API_TIMEOUT_MS` para o tempo limite por solicitação |

171| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Substitua o caminho do arquivo de log de depuração. Apesar do nome, este é um caminho de arquivo, não um diretório. Requer que o modo de depuração seja habilitado separadamente via `--debug`, `/debug` ou a variável de ambiente `DEBUG`: definir apenas essa variável não habilita o logging. A flag [`--debug-file`](/pt/cli-reference#cli-flags) faz ambos de uma vez. Padrão é `~/.claude/debug/<session-id>.txt` |171| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Substitua o caminho do arquivo de log de depuração. Apesar do nome, este é um caminho de arquivo, não um diretório. Requer que o modo de depuração seja habilitado separadamente via `--debug`, `/debug` ou a variável de ambiente `DEBUG`: definir apenas essa variável não habilita o logging. A flag [`--debug-file`](/pt/cli-reference#cli-flags) faz ambos de uma vez. Padrão é `~/.claude/debug/<session-id>.txt` |

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

173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Defina como `1` para desabilitar suporte a [janela de contexto de 1M](/pt/model-config#extended-context). Quando definido, variantes de modelo de 1M não estão disponíveis no seletor de modelo. Útil para ambientes corporativos com requisitos de conformidade |173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Defina como `1` para desabilitar suporte a [janela de contexto de 1M](/pt/model-config#extended-context). Quando definido, variantes de modelo de 1M não estão disponíveis no seletor de modelo, e sessões [Sonnet 5](/pt/model-config#sonnet-5-context-window) são tratadas como tendo uma janela de 200K. Útil para ambientes corporativos com requisitos de conformidade |

174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Defina como `1` para desabilitar [raciocínio adaptativo](/pt/model-config#adjust-effort-level) em Opus 4.6 e Sonnet 4.6 e voltar ao orçamento de pensamento fixo controlado por `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}A partir de v2.1.111, não tem efeito em Fable 5, ou em Opus 4.7 e posterior, que sempre usam raciocínio adaptativo |174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Defina como `1` para desabilitar [raciocínio adaptativo](/pt/model-config#adjust-effort-level) em Opus 4.6 e Sonnet 4.6 e voltar ao orçamento de pensamento fixo controlado por `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}A partir de v2.1.111, não tem efeito em Fable 5, Sonnet 5 ou Opus 4.7 e posterior, que sempre usam raciocínio adaptativo |

175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Defina como `1` para desabilitar a [ferramenta advisor](/pt/advisor). O comando `/advisor` e a flag `--advisor` ficam indisponíveis e qualquer `advisorModel` configurado é ignorado. Requer Claude Code v2.1.98 ou posterior |175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Defina como `1` para desabilitar a [ferramenta advisor](/pt/advisor). O comando `/advisor` e a flag `--advisor` ficam indisponíveis e qualquer `advisorModel` configurado é ignorado. Requer Claude Code v2.1.98 ou posterior |

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

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


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

180| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Defina como `1` para desabilitar [memória automática](/pt/memory#auto-memory). Defina como `0` para forçar a memória automática mesmo quando `--bare` mode ou [`autoMemoryEnabled: false`](/pt/settings#available-settings) desabilitaria de outra forma. Quando desabilitada, Claude não cria ou carrega arquivos de memória automática |180| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Defina como `1` para desabilitar [memória automática](/pt/memory#auto-memory). Defina como `0` para forçar a memória automática mesmo quando `--bare` mode ou [`autoMemoryEnabled: false`](/pt/settings#available-settings) desabilitaria de outra forma. Quando desabilitada, Claude não cria ou carrega arquivos de memória automática |

181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para desabilitar toda a funcionalidade de tarefas em segundo plano, incluindo o parâmetro `run_in_background` em ferramentas Bash e subagent, auto-backgrounding e o atalho Ctrl+B |181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Defina como `1` para desabilitar toda a funcionalidade de tarefas em segundo plano, incluindo o parâmetro `run_in_background` em ferramentas Bash e subagent, auto-backgrounding e o atalho Ctrl+B |

182| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Defina como `1` para parar os comandos de shell em segundo plano em execução de uma [sessão em segundo plano](/pt/agent-view) e fluxos de trabalho dinâmicos quando o [supervisor](/pt/agent-view#the-supervisor-process) para, reinicia ou atualiza o processo dessa sessão, em vez de entregá-los ao próximo processo da sessão. Afeta apenas esse handoff: colocar uma sessão em segundo plano com `←` ou [`/background`](/pt/agent-view#from-inside-a-session) ainda carrega o trabalho em andamento, e `CLAUDE_DISABLE_ADOPT` desativa ambos. Requer Claude Code v2.1.196 ou posterior |

183| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Defina como `1` para parar Claude Code de encerrar [comandos de shell em segundo plano](/pt/interactive-mode#background-bash-commands) quando o sistema operacional relata pressão de memória. Por padrão, em macOS e Linux, Claude Code encerra um shell em segundo plano iniciado na sessão principal em um sinal de pressão de memória uma vez que a sessão ficou ociosa por 30 minutos e nenhuma volta ou subagente está em execução. Windows não tem sinal de pressão de memória, então essa variável não tem efeito lá. Requer Claude Code v2.1.193 ou posterior |

182| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Defina como `1` para desabilitar as [skills](/pt/skills) e workflows que vêm com Claude Code: skills agrupadas e workflows integrados são removidos inteiramente, enquanto comandos slash integrados como `/init` permanecem digitáveis mas são ocultados do modelo. Skills de plugins, `.claude/skills/` e `.claude/commands/` não são afetadas. Equivalente à configuração [`disableBundledSkills`](/pt/settings#available-settings); `0` não a substitui |184| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Defina como `1` para desabilitar as [skills](/pt/skills) e workflows que vêm com Claude Code: skills agrupadas e workflows integrados são removidos inteiramente, enquanto comandos slash integrados como `/init` permanecem digitáveis mas são ocultados do modelo. Skills de plugins, `.claude/skills/` e `.claude/commands/` não são afetadas. Equivalente à configuração [`disableBundledSkills`](/pt/settings#available-settings); `0` não a substitui |

183| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Defina como `1` para evitar carregar qualquer arquivo de memória CLAUDE.md no contexto, incluindo arquivos de usuário, projeto e memória automática |185| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Defina como `1` para evitar carregar qualquer arquivo de memória CLAUDE.md no contexto, incluindo arquivos de usuário, projeto e memória automática |

184| `CLAUDE_CODE_DISABLE_CRON` | Defina como `1` para desabilitar [tarefas agendadas](/pt/scheduled-tasks). A skill `/loop` e ferramentas cron ficam indisponíveis e qualquer tarefa já agendada para de disparar, incluindo tarefas que já estão em execução no meio da sessão |186| `CLAUDE_CODE_DISABLE_CRON` | Defina como `1` para desabilitar [tarefas agendadas](/pt/scheduled-tasks). A skill `/loop` e ferramentas cron ficam indisponíveis e qualquer tarefa já agendada para de disparar, incluindo tarefas que já estão em execução no meio da sessão |

185| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover cabeçalhos de solicitação `anthropic-beta` específicos do Anthropic e campos de esquema de ferramenta beta (como `defer_loading` e `eager_input_streaming`) de solicitações de API. Use isso quando um gateway proxy rejeita solicitações com erros como "Unexpected value(s) for the `anthropic-beta` header" ou "Extra inputs are not permitted". Campos padrão (`name`, `description`, `input_schema`, `cache_control`) são preservados. |187| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Defina como `1` para remover cabeçalhos de solicitação `anthropic-beta` específicos do Anthropic e campos de esquema de ferramenta beta (como `defer_loading` e `eager_input_streaming`) de solicitações de API. Use isso quando um gateway proxy rejeita solicitações com erros como "Unexpected value(s) for the `anthropic-beta` header" ou "Extra inputs are not permitted". Campos padrão (`name`, `description`, `input_schema`, `cache_control`) são preservados |

186| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desabilitar [modo rápido](/pt/fast-mode) |188| `CLAUDE_CODE_DISABLE_FAST_MODE` | Defina como `1` para desabilitar [modo rápido](/pt/fast-mode) |

187| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desabilitar as pesquisas de qualidade de sessão "Como Claude está se saindo?". Pesquisas também são desabilitadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por participar novamente. Para definir uma taxa de amostra em vez de desabilitar completamente, use a configuração [`feedbackSurveyRate`](/pt/settings#available-settings). Veja [Pesquisas de qualidade de sessão](/pt/data-usage#session-quality-surveys) |189| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Defina como `1` para desabilitar as pesquisas de qualidade de sessão "Como Claude está se saindo?". Pesquisas também são desabilitadas quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por participar novamente. Para definir uma taxa de amostra em vez de desabilitar completamente, use a configuração [`feedbackSurveyRate`](/pt/settings#available-settings). Veja [Pesquisas de qualidade de sessão](/pt/data-usage#session-quality-surveys) |

188| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desabilitar [checkpointing](/pt/checkpointing) de arquivo. O comando `/rewind` não será capaz de restaurar alterações de código |190| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Defina como `1` para desabilitar [checkpointing](/pt/checkpointing) de arquivo. O comando `/rewind` não será capaz de restaurar alterações de código |

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

190| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para evitar remapeamento automático de Opus 4.0 e 4.1 para a versão Opus atual na API Anthropic. Use quando você deseja intencionalmente fixar um modelo mais antigo. O remapeamento não é executado em Bedrock, Vertex ou Foundry |192| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Defina como `1` para evitar remapeamento automático de Opus 4.0 e 4.1 para a versão Opus atual na API Anthropic. Use quando você deseja intencionalmente fixar um modelo mais antigo. O remapeamento não é executado em Bedrock, Vertex ou Foundry |

191| `CLAUDE_CODE_DISABLE_MOUSE` | Defina como `1` para desabilitar rastreamento de mouse em [renderização em tela cheia](/pt/fullscreen). A rolagem por teclado com `PgUp` e `PgDn` ainda funciona. Use isso para manter o comportamento nativo de cópia ao selecionar do seu terminal |193| `CLAUDE_CODE_DISABLE_MOUSE` | Defina como `1` para desabilitar rastreamento de mouse em [renderização em tela cheia](/pt/fullscreen). A rolagem por teclado com `PgUp` e `PgDn` ainda funciona. Use isso para manter o comportamento nativo de cópia ao selecionar do seu terminal |

194| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | {/* min-version: 2.1.195 */}Defina como `1` para desabilitar clique, arrasto e manipulação de hover em [renderização em tela cheia](/pt/fullscreen) enquanto mantém a rolagem da roda do mouse. Use isso quando você quer que a rolagem da roda funcione dentro do Claude Code mas não quer que cliques posicionem o cursor, expandam saída de ferramenta ou abram links. `CLAUDE_CODE_DISABLE_MOUSE` tem precedência quando ambos estão definidos. Requer Claude Code v2.1.195 ou posterior |

192| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Equivalente a definir `DISABLE_AUTOUPDATER`, `DISABLE_FEEDBACK_COMMAND`, `DISABLE_ERROR_REPORTING` e `DISABLE_TELEMETRY` |195| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Equivalente a definir `DISABLE_AUTOUPDATER`, `DISABLE_FEEDBACK_COMMAND`, `DISABLE_ERROR_REPORTING` e `DISABLE_TELEMETRY` |

193| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Defina como `1` para desabilitar o fallback não-streaming quando uma solicitação de streaming falha no meio do stream. Erros de streaming se propagam para a camada de retry em vez disso. Útil quando um proxy ou gateway causa o fallback para produzir execução de ferramenta duplicada |196| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Defina como `1` para desabilitar o fallback não-streaming quando uma solicitação de streaming falha no meio do stream. Erros de streaming se propagam para a camada de retry em vez disso. Útil quando um proxy ou gateway causa o fallback para produzir execução de ferramenta duplicada |

197| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | {/* min-version: 2.1.193 */}Defina como `1` para enviar a notificação de desktop da ferramenta `PushNotification` mesmo enquanto você está digitando ou focado no terminal. Por padrão, a ferramenta pula tanto a notificação de desktop quanto o [push móvel](/pt/remote-control#mobile-push-notifications) quando detecta atividade de teclado recente ou foco no terminal. Esta variável desabilita apenas essa verificação local, então o servidor ainda pode suprimir o push móvel quando detecta que você está ativo. Requer Claude Code v2.1.193 ou posterior |

194| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Defina como `1` para pular a adição automática do marketplace de plugin oficial na primeira execução |198| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Defina como `1` para pular a adição automática do marketplace de plugin oficial na primeira execução |

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

196| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desabilitar atualizações automáticas de título do terminal com base no contexto da conversa. Em sessões Agent SDK e `claude -p`, isso também pula a solicitação de Haiku em segundo plano que gera o título da sessão |200| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Defina como `1` para desabilitar atualizações automáticas de título do terminal com base no contexto da conversa. Em sessões Agent SDK e `claude -p`, isso também pula a solicitação de Haiku em segundo plano que gera o título da sessão |


198| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Defina como `1` para desabilitar rolagem virtual em [renderização em tela cheia](/pt/fullscreen) e renderizar cada mensagem na transcrição. Use isso se a rolagem em modo tela cheia mostrar regiões em branco onde as mensagens deveriam aparecer |202| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Defina como `1` para desabilitar rolagem virtual em [renderização em tela cheia](/pt/fullscreen) e renderizar cada mensagem na transcrição. Use isso se a rolagem em modo tela cheia mostrar regiões em branco onde as mensagens deveriam aparecer |

199| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Defina como `1` para desabilitar [workflows](/pt/workflows#turn-workflows-off). Equivalente à configuração [`disableWorkflows`](/pt/settings#available-settings) |203| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Defina como `1` para desabilitar [workflows](/pt/workflows#turn-workflows-off). Equivalente à configuração [`disableWorkflows`](/pt/settings#available-settings) |

200| `CLAUDE_CODE_EFFORT_LEVEL` | Defina o nível de esforço para modelos suportados. Valores: `low`, `medium`, `high`, `xhigh`, `max` ou `auto` para usar o padrão do modelo. Os níveis disponíveis dependem do modelo. Tem precedência sobre `/effort` e a configuração `effortLevel`. Veja [Ajustar nível de esforço](/pt/model-config#adjust-effort-level) |204| `CLAUDE_CODE_EFFORT_LEVEL` | Defina o nível de esforço para modelos suportados. Valores: `low`, `medium`, `high`, `xhigh`, `max` ou `auto` para usar o padrão do modelo. Os níveis disponíveis dependem do modelo. Tem precedência sobre `/effort` e a configuração `effortLevel`. Veja [Ajustar nível de esforço](/pt/model-config#adjust-effort-level) |

201| `CLAUDE_CODE_ENABLE_AUTO_MODE` | {/* min-version: 2.1.158 */}Defina como `1` para disponibilizar [modo automático](/pt/permission-modes#eliminate-prompts-with-auto-mode) em Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry. Requer Claude Code v2.1.158 ou posterior. Não tem efeito na API Anthropic, onde o modo automático está disponível por padrão. Veja [Habilitar modo automático em Bedrock, Vertex AI ou Foundry](/pt/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry) |205| `CLAUDE_CODE_ENABLE_AUTO_MODE` | {/* min-version: 2.1.158 */}Defina como `1` para disponibilizar [modo automático](/pt/permission-modes#eliminate-prompts-with-auto-mode) em Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry e sessões [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectadas. Requer Claude Code v2.1.158 ou posterior. Não tem efeito na API Anthropic, onde o modo automático está disponível por padrão. Veja [Habilitar modo automático em Bedrock, Vertex AI ou Foundry](/pt/permission-modes#enable-auto-mode-on-bedrock-vertex-ai-or-foundry) |

202| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Substitua a disponibilidade de [recapitulação de sessão](/pt/interactive-mode#session-recap). Defina como `0` para forçar recapitulações desativadas independentemente do toggle `/config`. Defina como `1` para forçar recapitulações ativadas quando [`awaySummaryEnabled`](/pt/settings#available-settings) é `false`. Tem precedência sobre a configuração e toggle `/config` |206| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Substitua a disponibilidade de [recapitulação de sessão](/pt/interactive-mode#session-recap). Defina como `0` para forçar recapitulações desativadas independentemente do toggle `/config`. Defina como `1` para forçar recapitulações ativadas quando [`awaySummaryEnabled`](/pt/settings#available-settings) é `false`. Tem precedência sobre a configuração e toggle `/config` |

203| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Defina como `1` para atualizar o estado do plugin em limites de turno em [modo não interativo](/pt/headless) após a conclusão de uma instalação em segundo plano. Desativado por padrão porque a atualização altera o prompt do sistema no meio da sessão, o que invalida [prompt caching](/pt/prompt-caching) para esse turno |207| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Defina como `1` para atualizar o estado do plugin em limites de turno em [modo não interativo](/pt/headless) após a conclusão de uma instalação em segundo plano. Desativado por padrão porque a atualização altera o prompt do sistema no meio da sessão, o que invalida [prompt caching](/pt/prompt-caching) para esse turno |

204| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Defina como `1` para rotear a pesquisa de qualidade de sessão "Como Claude está se saindo?" para seu próprio [coletor OpenTelemetry](/pt/monitoring-usage) quando o tráfego não essencial vinculado ao Anthropic está bloqueado. As classificações de pesquisa são emitidas apenas como eventos OTEL para seu coletor configurado. Nenhum dado de pesquisa é enviado ao Anthropic neste modo. Aplica-se quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` está definido, e não tem efeito caso contrário. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` e a política de feedback do produto da organização têm precedência |208| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Defina como `1` para rotear a pesquisa de qualidade de sessão "Como Claude está se saindo?" para seu próprio [coletor OpenTelemetry](/pt/monitoring-usage) quando o tráfego não essencial vinculado ao Anthropic está bloqueado. As classificações de pesquisa são emitidas apenas como eventos OTEL para seu coletor configurado. Nenhum dado de pesquisa é enviado ao Anthropic neste modo. Aplica-se quando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY` ou `DO_NOT_TRACK` está definido, e não tem efeito caso contrário. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` e a política de feedback do produto da organização têm precedência |


224| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Substitua o endereço de host usado para conectar à extensão IDE. Por padrão, Claude Code detecta automaticamente o endereço correto, incluindo roteamento WSL-para-Windows |228| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Substitua o endereço de host usado para conectar à extensão IDE. Por padrão, Claude Code detecta automaticamente o endereço correto, incluindo roteamento WSL-para-Windows |

225| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Pule a auto-instalação de extensões IDE. Equivalente a definir [`autoInstallIdeExtension`](/pt/settings#global-config-settings) como `false` |229| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Pule a auto-instalação de extensões IDE. Equivalente a definir [`autoInstallIdeExtension`](/pt/settings#global-config-settings) como `false` |

226| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Defina como `1` para pular validação de entradas de arquivo de bloqueio IDE durante a conexão. Use quando a auto-conexão falha em encontrar sua IDE apesar dela estar em execução |230| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Defina como `1` para pular validação de entradas de arquivo de bloqueio IDE durante a conexão. Use quando a auto-conexão falha em encontrar sua IDE apesar dela estar em execução |

227| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Substitua o tamanho da janela de contexto que Claude Code assume para o modelo ativo. tem efeito quando `DISABLE_COMPACT` também está definido. Use isso ao rotear para um modelo através de `ANTHROPIC_BASE_URL` cuja janela de contexto não corresponde ao tamanho integrado para seu nome |231| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Substitua o tamanho da janela de contexto que Claude Code assume para o modelo ativo. {/* min-version: 2.1.193 */}A partir de v2.1.193, aplicado diretamente para nomes de modelo que Claude Code não reconhece como um modelo Claude; para modelos Claude reconhecidos, só tem efeito quando `DISABLE_COMPACT` também está definido. Use isso ao rotear para um modelo através de `ANTHROPIC_BASE_URL` cuja janela de contexto não corresponde ao tamanho integrado para seu nome |

228| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Defina o número máximo de tokens de saída para a maioria das solicitações. Padrões e limites variam por modelo; veja [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Aumentar este valor reduz a janela de contexto efetiva disponível antes que [auto-compactação](/pt/costs#reduce-token-usage) seja acionada. |232| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Defina o número máximo de tokens de saída para a maioria das solicitações. Padrões e limites variam por modelo; veja [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Aumentar este valor reduz a janela de contexto efetiva disponível antes que [auto-compactação](/pt/costs#reduce-token-usage) seja acionada |

229| `CLAUDE_CODE_MAX_RETRIES` | Substitua o número de vezes para tentar novamente solicitações de API falhadas (padrão: 10). {/* min-version: 2.1.186 */}Limitado a 15 a partir de v2.1.186. Para sessões não supervisionadas que precisam aguardar através de interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG` em vez disso |233| `CLAUDE_CODE_MAX_RETRIES` | Substitua o número de vezes para tentar novamente solicitações de API falhadas (padrão: 10). {/* min-version: 2.1.186 */}Limitado a 15 a partir de v2.1.186. Para sessões não supervisionadas que precisam aguardar através de interrupções mais longas, defina `CLAUDE_CODE_RETRY_WATCHDOG` em vez disso |

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

231| `CLAUDE_CODE_MAX_TURNS` | Limite o número de voltas agentes quando nenhum limite explícito é passado. Equivalente a passar [`--max-turns`](/pt/cli-reference#cli-flags), que tem precedência quando ambos estão definidos. Um valor que não é um inteiro positivo é rejeitado na inicialização com um erro em vez de ser tratado como sem limite |235| `CLAUDE_CODE_MAX_TURNS` | Limite o número de voltas agentes quando nenhum limite explícito é passado. Equivalente a passar [`--max-turns`](/pt/cli-reference#cli-flags), que tem precedência quando ambos estão definidos. Um valor que não é um inteiro positivo é rejeitado na inicialização com um erro em vez de ser tratado como sem limite |

232| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Defina como `1` para gerar servidores MCP stdio com apenas um ambiente de linha de base segura mais o `env` configurado do servidor, em vez de herdar seu ambiente de shell |236| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Defina como `1` para gerar servidores MCP stdio com apenas um ambiente de linha de base segura mais o `env` configurado do servidor, em vez de herdar seu ambiente de shell |

233| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | {/* min-version: 2.1.187 */}Tempo limite de inatividade em milissegundos para chamadas de ferramentas MCP remotas (padrão: 300000, ou 5 minutos). Quando um servidor MCP HTTP, SSE, WebSocket ou [conector claude.ai](/pt/mcp#use-mcp-servers-from-claude-ai) não envia resposta e nenhuma notificação de progresso por este tempo, a chamada de ferramenta aborta com um erro em vez de aguardar o `MCP_TOOL_TIMEOUT` de tempo de parede. Defina como `0` para desabilitar a verificação de inatividade. Valores abaixo de 1000 são aumentados para um segundo, e o valor é limitado ao `MCP_TOOL_TIMEOUT` efetivo. Não se aplica a servidores stdio ou IDE. Requer Claude Code v2.1.187 ou posterior |237| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | {/* min-version: 2.1.187 */}Tempo limite de inatividade em milissegundos para chamadas de ferramentas MCP remotas (padrão: 300000, ou 5 minutos). Quando um servidor MCP HTTP, SSE, WebSocket ou [conector claude.ai](/pt/mcp#use-mcp-servers-from-claude-ai) não envia resposta e nenhuma notificação de progresso por este tempo, a chamada de ferramenta aborta com um erro em vez de aguardar o `MCP_TOOL_TIMEOUT` de tempo de parede. Defina como `0` para desabilitar a verificação de inatividade. Valores abaixo de 1000 são aumentados para um segundo, e o valor é limitado ao `MCP_TOOL_TIMEOUT` efetivo. Não se aplica a servidores stdio ou IDE. Requer Claude Code v2.1.187 ou posterior |

234| `CLAUDE_CODE_NATIVE_CURSOR` | Defina como `1` para mostrar o cursor próprio do terminal no cursor de entrada em vez de um bloco desenhado. O cursor respeita as configurações de piscar, forma e foco do terminal |238| `CLAUDE_CODE_NATIVE_CURSOR` | Defina como `1` para mostrar o cursor próprio do terminal no cursor de entrada em vez de um bloco desenhado. O cursor respeita as configurações de piscar, forma e foco do terminal |

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

236| `CLAUDE_CODE_NO_FLICKER` | Defina como `1` para habilitar [renderização em tela cheia](/pt/fullscreen), uma visualização de pesquisa que reduz cintilação e mantém memória plana em conversas longas. Equivalente à configuração [`tui`](/pt/settings#available-settings); você também pode alternar com `/tui fullscreen` |240| `CLAUDE_CODE_NO_FLICKER` | Defina como `1` para habilitar [renderização em tela cheia](/pt/fullscreen), uma visualização de pesquisa que reduz cintilação e mantém memória plana em conversas longas. Equivalente à configuração [`tui`](/pt/settings#available-settings); você também pode alternar com `/tui fullscreen` |

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

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

239| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acesso OAuth para autenticação Claude.ai. Alternativa a `/login` para SDK e ambientes automatizados. Tem precedência sobre credenciais armazenadas em keychain. Gere um com [`claude setup-token`](/pt/authentication#generate-a-long-lived-token) |243| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acesso OAuth para autenticação Claude.ai. Alternativa a `/login` para SDK e ambientes automatizados. Tem precedência sobre credenciais armazenadas em keychain. Gere um com [`claude setup-token`](/pt/authentication#generate-a-long-lived-token) |

240| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | {/* max-version: 2.1.159 */}Removido em v2.1.160 e agora é um no-op. Anteriormente fixava [modo rápido](/pt/fast-mode) em Claude Opus 4.6 em vez do padrão atual |244| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | {/* max-version: 2.1.159 */}Removido em v2.1.160 e agora é um no-op. Anteriormente fixava [modo rápido](/pt/fast-mode) em Claude Opus 4.6 em vez do padrão atual. Opus 4.6 não suporta mais modo rápido |

241| `CLAUDE_CODE_OTEL_DIAG_STDERR` | {/* min-version: 2.1.179 */}Defina como `1` para escrever erros de diagnóstico do exportador OpenTelemetry para stderr. Por padrão, esses erros aparecem apenas com `--debug`, então um exportador mal configurado, como uma colisão de porta Prometheus, falha silenciosamente de outra forma. Requer Claude Code v2.1.179 ou posterior. Veja [Monitoramento](/pt/monitoring-usage) |245| `CLAUDE_CODE_OTEL_DIAG_STDERR` | {/* min-version: 2.1.179 */}Defina como `1` para escrever erros de diagnóstico do exportador OpenTelemetry para stderr. Por padrão, esses erros aparecem apenas com `--debug`, então um exportador mal configurado, como uma colisão de porta Prometheus, falha silenciosamente de outra forma. Requer Claude Code v2.1.179 ou posterior. Veja [Monitoramento](/pt/monitoring-usage) |

242| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tempo limite em milissegundos para liberar spans OpenTelemetry pendentes (padrão: 5000). Veja [Monitoramento](/pt/monitoring-usage) |246| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tempo limite em milissegundos para liberar spans OpenTelemetry pendentes (padrão: 5000). Veja [Monitoramento](/pt/monitoring-usage) |

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


275| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Defina como `1` para pular a escrita de histórico de prompt e transcrições de sessão em disco. Sessões iniciadas com essa variável definida não aparecem em `--resume`, `--continue` ou histórico de seta para cima. Útil para sessões com script efêmeras |279| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Defina como `1` para pular a escrita de histórico de prompt e transcrições de sessão em disco. Sessões iniciadas com essa variável definida não aparecem em `--resume`, `--continue` ou histórico de seta para cima. Útil para sessões com script efêmeras |

276| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Pule autenticação Google para Vertex (por exemplo, ao usar um gateway LLM) |280| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Pule autenticação Google para Vertex (por exemplo, ao usar um gateway LLM) |

277| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de vezes consecutivas que um hook [Stop](/pt/hooks#stop) ou [SubagentStop](/pt/hooks#subagentstop) pode bloquear o término da volta antes que Claude Code o substitua e termine a volta de qualquer forma (padrão: 8). Defina como `0` para desabilitar o limite. Aumente isso se seu hook legitimamente precisa de mais iterações para resolver |281| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de vezes consecutivas que um hook [Stop](/pt/hooks#stop) ou [SubagentStop](/pt/hooks#subagentstop) pode bloquear o término da volta antes que Claude Code o substitua e termine a volta de qualquer forma (padrão: 8). Defina como `0` para desabilitar o limite. Aumente isso se seu hook legitimamente precisa de mais iterações para resolver |

278| `CLAUDE_CODE_SUBAGENT_MODEL` | Veja [Configuração de modelo](/pt/model-config) |282| `CLAUDE_CODE_SUBAGENT_MODEL` | Veja [Configuração de modelo](/pt/model-config). {/* min-version: 2.1.196 */}A partir de v2.1.196, defini-lo como `inherit` é o mesmo que deixá-lo não definido; versões anteriores tratavam `inherit` como um override que forçava cada subagente para o modelo da conversa principal |

279| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais do Anthropic e do provedor de nuvem de ambientes de subprocesso (ferramenta Bash, hooks, servidores MCP stdio). O processo Claude pai mantém essas credenciais para chamadas de API, mas processos filhos não podem lê-las, reduzindo a exposição a ataques de injeção de prompt que tentam exfiltrar segredos via expansão de shell. No Linux, isso também executa subprocessos Bash em um namespace PID isolado para que não possam ler ambientes de processo do host via `/proc`; como efeito colateral, `ps`, `pgrep` e `kill` não podem ver ou sinalizar processos do host. `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |283| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Defina como `1` para remover credenciais do Anthropic e do provedor de nuvem de ambientes de subprocesso (ferramenta Bash, hooks, servidores MCP stdio). O processo Claude pai mantém essas credenciais para chamadas de API, mas processos filhos não podem lê-las, reduzindo a exposição a ataques de injeção de prompt que tentam exfiltrar segredos via expansão de shell. No Linux, isso também executa subprocessos Bash em um namespace PID isolado para que não possam ler ambientes de processo do host via `/proc`; como efeito colateral, `ps`, `pgrep` e `kill` não podem ver ou sinalizar processos do host. `claude-code-action` define isso automaticamente quando `allowed_non_write_users` está configurado |

280| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` em modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugin antes da primeira consulta. Sem isso, plugins instalam em segundo plano e podem não estar disponíveis na primeira volta. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |284| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Defina como `1` em modo não interativo (a flag `-p`) para aguardar a conclusão da instalação de plugin antes da primeira consulta. Sem isso, plugins instalam em segundo plano e podem não estar disponíveis na primeira volta. Combine com `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar a espera |

281| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tempo limite em milissegundos para instalação síncrona de plugin. Quando excedido, Claude Code prossegue sem plugins e registra um erro. Sem padrão: sem essa variável, instalação síncrona aguarda até a conclusão |285| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tempo limite em milissegundos para instalação síncrona de plugin. Quando excedido, Claude Code prossegue sem plugins e registra um erro. Sem padrão: sem essa variável, instalação síncrona aguarda até a conclusão |


295| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla a ferramenta PowerShell. No Windows sem Git Bash, a ferramenta é habilitada automaticamente; defina como `0` para desabilitá-la. No Windows com Git Bash instalado, a ferramenta está sendo lançada progressivamente: defina como `1` para optar por participar ou `0` para optar por não participar. No Linux, macOS e WSL, defina como `1` para habilitá-la, o que requer `pwsh` no seu `PATH`. Quando habilitada no Windows, Claude pode executar comandos PowerShell nativamente em vez de rotear através do Git Bash. Veja [Ferramenta PowerShell](/pt/tools-reference#powershell-tool) |299| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla a ferramenta PowerShell. No Windows sem Git Bash, a ferramenta é habilitada automaticamente; defina como `0` para desabilitá-la. No Windows com Git Bash instalado, a ferramenta está sendo lançada progressivamente: defina como `1` para optar por participar ou `0` para optar por não participar. No Linux, macOS e WSL, defina como `1` para habilitá-la, o que requer `pwsh` no seu `PATH`. Quando habilitada no Windows, Claude pode executar comandos PowerShell nativamente em vez de rotear através do Git Bash. Veja [Ferramenta PowerShell](/pt/tools-reference#powershell-tool) |

296| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/pt/google-vertex-ai) |300| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/pt/google-vertex-ai) |

297| `CLAUDE_CONFIG_DIR` | Substitua o diretório de configuração (padrão: `~/.claude`). Todas as configurações, credenciais, histórico de sessão e plugins são armazenados sob este caminho. Útil para executar múltiplas contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |301| `CLAUDE_CONFIG_DIR` | Substitua o diretório de configuração (padrão: `~/.claude`). Todas as configurações, credenciais, histórico de sessão e plugins são armazenados sob este caminho. Útil para executar múltiplas contas lado a lado: por exemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

302| `CLAUDE_DISABLE_ADOPT` | {/* min-version: 2.1.195 */}Defina como `1` para parar o trabalho em segundo plano em andamento em vez de carregá-lo quando você coloca uma sessão em segundo plano pressionando `←` ou com [`/background`](/pt/agent-view#from-inside-a-session). Claude Code pede que você confirme antes de colocar em segundo plano, então para as tarefas que de outra forma seriam carregadas. Requer Claude Code v2.1.195 ou posterior |

298| `CLAUDE_EFFORT` | Definido automaticamente em subprocessos de ferramenta Bash e comandos hook para o [nível de esforço](/pt/model-config#adjust-effort-level) ativo para a volta: `low`, `medium`, `high`, `xhigh` ou `max`. Ultracode não é um nível distinto e relata como `xhigh`. Corresponde ao campo `effort.level` passado para [hooks](/pt/hooks). Apenas definido quando o modelo atual suporta o parâmetro de esforço |303| `CLAUDE_EFFORT` | Definido automaticamente em subprocessos de ferramenta Bash e comandos hook para o [nível de esforço](/pt/model-config#adjust-effort-level) ativo para a volta: `low`, `medium`, `high`, `xhigh` ou `max`. Ultracode não é um nível distinto e relata como `xhigh`. Corresponde ao campo `effort.level` passado para [hooks](/pt/hooks). Apenas definido quando o modelo atual suporta o parâmetro de esforço |

299| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Defina como `1` para forçar a habilitação do watchdog ocioso de nível de byte, ou defina como `0` para forçar a desabilitação. Quando não definido, o watchdog é habilitado por padrão para conexões diretas da API Anthropic e [Claude Platform on AWS](/pt/claude-platform-on-aws). O watchdog de byte aborta uma conexão quando nenhum byte chega no fio por 180 segundos por padrão em conexões diretas da API Anthropic, 300 segundos em Claude Platform on AWS e quando habilitado em Bedrock, ou para o valor de `CLAUDE_STREAM_IDLE_TIMEOUT_MS` quando isso está definido, que é fixado a um mínimo de 5 minutos, independente do watchdog de nível de evento |304| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Defina como `1` para forçar a habilitação do watchdog ocioso de nível de byte, ou defina como `0` para forçar a desabilitação. Quando não definido, o watchdog é habilitado por padrão para conexões diretas da API Anthropic e [Claude Platform on AWS](/pt/claude-platform-on-aws). O watchdog de byte aborta uma conexão quando nenhum byte chega no fio por 180 segundos por padrão em conexões diretas da API Anthropic, 300 segundos em Claude Platform on AWS e quando habilitado em Bedrock, ou para o valor de `CLAUDE_STREAM_IDLE_TIMEOUT_MS` quando isso está definido, que é fixado a um mínimo de 5 minutos, independente do watchdog de nível de evento |

300| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Defina como `1` para habilitar o watchdog ocioso de streaming de nível de byte em respostas `vnd.amazon.eventstream` do Amazon Bedrock. Desativado por padrão. Configure o tempo limite com `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |305| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Defina como `1` para habilitar o watchdog ocioso de streaming de nível de byte em respostas `vnd.amazon.eventstream` do Amazon Bedrock. Desativado por padrão. Configure o tempo limite com `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

301| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Defina como `1` para forçar a habilitação do watchdog ocioso de streaming de nível de evento, ou defina como `0` para forçar a desabilitação. Quando não definido, o padrão é controlado pelo servidor na API Anthropic direta e desativado em outros provedores. {/* min-version: 2.1.169 */}A partir de v2.1.169, provedores diferentes da API Anthropic direta e Claude Platform on AWS também têm um tempo limite de inatividade de corpo padrão de 5 minutos independente desta variável; veja `API_FORCE_IDLE_TIMEOUT`. Em Bedrock, você também pode habilitar o watchdog de nível de byte independente com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; os dois funcionam juntos quando ambos estão definidos. Configure o tempo limite com `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |306| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Defina como `0` para forçar a desabilitação do watchdog ocioso de streaming de nível de evento, ou defina como `1` para forçar a habilitação. {/* min-version: 2.1.196 */}Quando não definido, o watchdog está ativado por padrão para todos os provedores. Antes de v2.1.196, o padrão não definido era controlado pelo servidor na API Anthropic direta e desativado em outros provedores. {/* min-version: 2.1.169 */}A partir de v2.1.169, provedores diferentes da API Anthropic direta e Claude Platform on AWS também têm um tempo limite de inatividade de corpo padrão de 5 minutos independente desta variável; veja `API_FORCE_IDLE_TIMEOUT`. Em Bedrock, você também pode habilitar o watchdog de nível de byte independente com `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`; os dois funcionam juntos quando ambos estão definidos. Configure o tempo limite com `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

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

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

304| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tempo limite em milissegundos antes que o watchdog ocioso de streaming feche uma conexão travada. Quando você define esta variável explicitamente, o mínimo é `300000` (5 minutos); valores mais baixos são silenciosamente fixados para absorver pausas de pensamento estendido e buffering de proxy. Quando não definido, o watchdog de nível de evento padrão é 300 segundos e o watchdog de nível de byte padrão é 180 segundos em conexões diretas da API Anthropic (300 segundos em Claude Platform on AWS e outros provedores). O padrão de 180 segundos do watchdog de byte não definido é um valor separado e não está sujeito ao clamp de 5 minutos. Para o watchdog de nível de evento em provedores de terceiros, requer `CLAUDE_ENABLE_STREAM_WATCHDOG=1`; o tempo limite de inatividade de corpo descrito em `API_FORCE_IDLE_TIMEOUT` se aplica independentemente. Em Bedrock, também se aplica quando `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |309| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tempo limite em milissegundos antes que o watchdog ocioso de streaming feche uma conexão travada. Quando você define esta variável explicitamente, o mínimo é `300000` (5 minutos); valores mais baixos são silenciosamente fixados para absorver pausas de pensamento estendido e buffering de proxy. Quando não definido, o watchdog de nível de evento padrão é 300 segundos e o watchdog de nível de byte padrão é 180 segundos em conexões diretas da API Anthropic (300 segundos em Claude Platform on AWS e outros provedores). O padrão de 180 segundos do watchdog de byte não definido é um valor separado e não está sujeito ao clamp de 5 minutos. O tempo limite de inatividade de corpo descrito em `API_FORCE_IDLE_TIMEOUT` se aplica independentemente. Em Bedrock, também se aplica quando `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` |

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

306| `DISABLE_AUTOUPDATER` | Defina como `1` para desabilitar atualizações automáticas em segundo plano. Manual `claude update` ainda funciona. Use `DISABLE_UPDATES` para bloquear ambos |311| `DISABLE_AUTOUPDATER` | Defina como `1` para desabilitar atualizações automáticas em segundo plano. Manual `claude update` ainda funciona. Use `DISABLE_UPDATES` para bloquear ambos |

307| `DISABLE_AUTO_COMPACT` | Defina como `1` para desabilitar compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` permanece disponível. Use quando você deseja controle explícito sobre quando a compactação ocorre |312| `DISABLE_AUTO_COMPACT` | Defina como `1` para desabilitar compactação automática ao se aproximar do limite de contexto. O comando manual `/compact` permanece disponível. Use quando você deseja controle explícito sobre quando a compactação ocorre |


348| `MCP_TIMEOUT` | Tempo limite em milissegundos para inicialização do servidor MCP (padrão: 30000, ou 30 segundos) |353| `MCP_TIMEOUT` | Tempo limite em milissegundos para inicialização do servidor MCP (padrão: 30000, ou 30 segundos) |

349| `MCP_TOOL_TIMEOUT` | Tempo limite em milissegundos para execução de ferramentas MCP (padrão: 100000000, aproximadamente 28 horas). Um campo `timeout` por servidor em `.mcp.json` substitui isso para esse servidor. Para a variável env, valores abaixo de 1000 são fixados em um segundo; para o campo por servidor, valores abaixo de 1000 são ignorados |354| `MCP_TOOL_TIMEOUT` | Tempo limite em milissegundos para execução de ferramentas MCP (padrão: 100000000, aproximadamente 28 horas). Um campo `timeout` por servidor em `.mcp.json` substitui isso para esse servidor. Para a variável env, valores abaixo de 1000 são fixados em um segundo; para o campo por servidor, valores abaixo de 1000 são ignorados |

350| `NO_PROXY` | Lista de domínios e IPs para os quais as solicitações serão emitidas diretamente, contornando proxy |355| `NO_PROXY` | Lista de domínios e IPs para os quais as solicitações serão emitidas diretamente, contornando proxy |

356| `OTEL_LOG_ASSISTANT_RESPONSES` | {/* min-version: 2.1.193 */}Defina como `1` para incluir o texto de resposta do modelo em eventos de log OpenTelemetry `assistant_response`. Quando não definido, o valor de `OTEL_LOG_USER_PROMPTS` é usado em vez disso. Defina como `0` para manter respostas redatadas mesmo quando `OTEL_LOG_USER_PROMPTS` está definido. Requer Claude Code v2.1.193 ou posterior. Veja [Monitoramento](/pt/monitoring-usage#assistant-response-event) |

351| `OTEL_LOG_RAW_API_BODIES` | Emita solicitação e resposta JSON da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body`. Defina como `1` para corpos inline truncados em 60 KB, ou `file:<dir>` para escrever corpos não truncados em disco e emitir um caminho `body_ref` em vez disso. Desabilitado por padrão; corpos incluem todo o histórico de conversa. Veja [Monitoramento](/pt/monitoring-usage#api-request-body-event) |357| `OTEL_LOG_RAW_API_BODIES` | Emita solicitação e resposta JSON da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body`. Defina como `1` para corpos inline truncados em 60 KB, ou `file:<dir>` para escrever corpos não truncados em disco e emitir um caminho `body_ref` em vez disso. Desabilitado por padrão; corpos incluem todo o histórico de conversa. Veja [Monitoramento](/pt/monitoring-usage#api-request-body-event) |

352| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir conteúdo de entrada e saída de ferramenta em eventos de span OpenTelemetry. Desabilitado por padrão para proteger dados sensíveis. Veja [Monitoramento](/pt/monitoring-usage) |358| `OTEL_LOG_TOOL_CONTENT` | Defina como `1` para incluir conteúdo de entrada e saída de ferramenta em eventos de span OpenTelemetry. Desabilitado por padrão para proteger dados sensíveis. Veja [Monitoramento](/pt/monitoring-usage) |

353| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada de ferramenta, nomes de servidor MCP, strings de erro bruto em falhas de ferramenta, a categoria de recusa em eventos `api_refusal` e outros detalhes de ferramenta em rastreamentos e logs OpenTelemetry. Desabilitado por padrão para proteger PII. Veja [Monitoramento](/pt/monitoring-usage) |359| `OTEL_LOG_TOOL_DETAILS` | Defina como `1` para incluir argumentos de entrada de ferramenta, nomes de servidor MCP, strings de erro bruto em falhas de ferramenta, a categoria de recusa em eventos `api_refusal` e outros detalhes de ferramenta em rastreamentos e logs OpenTelemetry. Desabilitado por padrão para proteger PII. Veja [Monitoramento](/pt/monitoring-usage) |

errors.md +22 −4

Details

40| `Your organization has disabled API key authentication` | [Autenticação](#your-organization-has-disabled-api-key-authentication) |40| `Your organization has disabled API key authentication` | [Autenticação](#your-organization-has-disabled-api-key-authentication) |

41| `Your organization has disabled Claude subscription access` | [Autenticação](#your-organization-has-disabled-claude-subscription-access) |41| `Your organization has disabled Claude subscription access` | [Autenticação](#your-organization-has-disabled-claude-subscription-access) |

42| `Routines are disabled by your organization's policy` | [Autenticação](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |42| `Routines are disabled by your organization's policy` | [Autenticação](#routines-are-disabled-by-your-organization%E2%80%99s-policy) |

43| `Remote Control is only available when using Claude via api.anthropic.com` | [Autenticação](#remote-control-requires-the-anthropic-api) |

43| `OAuth token revoked` / `OAuth token has expired` | [Autenticação](#oauth-token-revoked-or-expired) |44| `OAuth token revoked` / `OAuth token has expired` | [Autenticação](#oauth-token-revoked-or-expired) |

44| `does not meet scope requirement user:profile` | [Autenticação](#oauth-scope-requirement) |45| `does not meet scope requirement user:profile` | [Autenticação](#oauth-scope-requirement) |

45| `Unable to connect to API` | [Rede](#unable-to-connect-to-api) |46| `Unable to connect to API` | [Rede](#unable-to-connect-to-api) |


426* Peça a um Owner em sua organização para ativar o toggle **Routines** em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)427* Peça a um Owner em sua organização para ativar o toggle **Routines** em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

427* Para trabalho agendado único que não requer rotinas no nível da organização, consulte [scheduled tasks](/pt/scheduled-tasks)428* Para trabalho agendado único que não requer rotinas no nível da organização, consulte [scheduled tasks](/pt/scheduled-tasks)

428 429 

430<h3 id="remote-control-requires-the-anthropic-api">

431 Remote Control requires the Anthropic API

432</h3>

433 

434A sessão não está se comunicando com a API Anthropic diretamente, portanto não há backend claude.ai para [Remote Control](/pt/remote-control) emparelhar.

435 

436```text theme={null}

437Remote Control is only available when using Claude via api.anthropic.com.

438```

439 

440Isso aparece no Amazon Bedrock, Google Vertex AI e Microsoft Foundry. {/* min-version: 2.1.196 */}A partir da v2.1.196, também aparece quando [`ANTHROPIC_BASE_URL`](/pt/env-vars) aponta para um host diferente de `api.anthropic.com`, como um [LLM gateway](/pt/llm-gateway) ou proxy, mesmo quando você faz login com claude.ai.

441 

442**O que fazer:**

443 

444* Desdefina `ANTHROPIC_BASE_URL` e reinicie a sessão, ou inicie Remote Control a partir de uma sessão que se comunique com a API Anthropic diretamente

445* Para esta e as outras mensagens de inicialização do Remote Control, consulte [Troubleshoot Remote Control](/pt/remote-control#troubleshooting)

446 

429<h3 id="oauth-token-revoked-or-expired">447<h3 id="oauth-token-revoked-or-expired">

430 OAuth token revoked or expired448 OAuth token revoked or expired

431</h3>449</h3>


727 thinking.type.enabled is not supported for this model745 thinking.type.enabled is not supported for this model

728</h3>746</h3>

729 747 

730Sua versão do Claude Code é mais antiga que o mínimo para Opus 4.7 ou Opus 4.8. A CLI enviou uma configuração de thinking que o modelo não aceita mais.748Sua versão do Claude Code é mais antiga que o mínimo para Sonnet 5, Opus 4.8 ou Opus 4.7. A CLI enviou uma configuração de thinking que o modelo não aceita mais.

731 749 

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

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


735 753 

736**O que fazer:**754**O que fazer:**

737 755 

738* 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 posterior756* 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

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

740* Se você atingir isso no Agent SDK, consulte [SDK troubleshooting](/pt/agent-sdk/quickstart#troubleshooting)758* {/* min-version: agent-sdk@0.3.197 */}Se você atingir isso no [Agent SDK](/pt/agent-sdk/overview), atualize o pacote SDK. Opus 4.8 precisa do SDK TypeScript v0.3.154 ou posterior e do SDK Python v0.2.88 ou posterior. Sonnet 5 precisa do SDK TypeScript v0.3.197 ou posterior

741 759 

742<h3 id="thinking-budget-exceeds-output-limit">760<h3 id="thinking-budget-exceeds-output-limit">

743 Thinking budget exceeds output limit761 Thinking budget exceeds output limit

fullscreen.md +10 −2

Details

107 107 

108Um valor de `3` corresponde ao padrão em `vim` e aplicativos semelhantes. A configuração aceita valores de 1 a 20, e valores fracionários abaixo de 1, como `0.5`, para desacelerar a rolagem acelerada do trackpad e da roda em terminais que já amplificam eventos de roda.108Um valor de `3` corresponde ao padrão em `vim` e aplicativos semelhantes. A configuração aceita valores de 1 a 20, e valores fracionários abaixo de 1, como `0.5`, para desacelerar a rolagem acelerada do trackpad e da roda em terminais que já amplificam eventos de roda.

109 109 

110Para ajustar a velocidade de rolagem interativamente, execute `/scroll-speed`. O diálogo mostra uma régua que você pode rolar enquanto está aberto para que você possa sentir a mudança imediatamente. Pressione `←` e `→` para ajustar, `r` para redefinir para o padrão detectado automaticamente e `Enter` para salvar. O comando escreve o mesmo valor que a variável de ambiente `CLAUDE_CODE_SCROLL_SPEED` define, persistido em `~/.claude/settings.json`. O comando não está disponível no terminal do IDE JetBrains.110Para ajustar a velocidade de rolagem interativamente, execute `/scroll-speed`. O diálogo mostra uma régua que você pode rolar enquanto está aberto para que você possa sentir a mudança imediatamente. Pressione `←` e `→` para ajustar, `r` para redefinir para o padrão detectado automaticamente e `Enter` para salvar.

111 

112O comando escreve o mesmo valor que a variável de ambiente `CLAUDE_CODE_SCROLL_SPEED` define, persistido em `~/.claude/settings.json`. O comando não está disponível no terminal do IDE JetBrains.

111 113 

112Separadamente da velocidade base, Claude Code acelera a taxa de rolagem quando você gira a roda rapidamente, portanto uma rotação rápida cobre mais distância do que o mesmo número de entalhes lentos. {/* min-version: 2.1.174 */}Para desativar a aceleração e manter uma taxa constante por entalhe, defina `wheelScrollAccelerationEnabled` como `false` em [`settings.json`](/pt/settings#available-settings). Esta configuração requer Claude Code v2.1.174 ou posterior.114Separadamente da velocidade base, Claude Code acelera a taxa de rolagem quando você gira a roda rapidamente, portanto uma rotação rápida cobre mais distância do que o mesmo número de entalhes lentos. {/* min-version: 2.1.174 */}Para desativar a aceleração e manter uma taxa constante por entalhe, defina `wheelScrollAccelerationEnabled` como `false` em [`settings.json`](/pt/settings#available-settings). Esta configuração requer Claude Code v2.1.174 ou posterior.

113 115 


123 Buscar e revisar a conversa125 Buscar e revisar a conversa

124</h2>126</h2>

125 127 

126`Ctrl+o` alterna entre o prompt normal e o modo de transcrição. Para uma visualização mais silenciosa que mostra apenas seu último prompt, um resumo de uma linha de chamadas de ferramenta com estatísticas de diff de edição e a resposta final, execute `/focus`. A configuração persiste entre sessões. Execute `/focus` novamente para desativá-la.128`Ctrl+o` alterna entre o prompt normal e o modo de transcrição.

129 

130Para uma visualização mais silenciosa que mostra apenas seu último prompt, um resumo de uma linha de chamadas de ferramenta com estatísticas de diff de edição e a resposta final, execute `/focus`. A configuração persiste entre sessões. Execute `/focus` novamente para desativá-la.

127 131 

128O modo de transcrição ganha navegação e busca no estilo `less`:132O modo de transcrição ganha navegação e busca no estilo `less`:

129 133 


203 207 

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

205 209 

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

211 

212Com 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 pressionada para seleção nativa de clique e arraste. Clique direito e colagem com clique do meio continuam funcionando em terminais que os suportam.

213 

206<h2 id="research-preview">214<h2 id="research-preview">

207 Visualização de pesquisa215 Visualização de pesquisa

208</h2>216</h2>

gateways.md +87 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Executar Claude Code através de um gateway

6 

7> Rotear Claude Code através de um gateway auto-hospedado para credenciais centralizadas, rastreamento de uso e controles de custo. Abrange a arquitetura, o gateway de aplicativos Claude da Anthropic e o uso de outros produtos de gateway.

8 

9Um gateway é um proxy que sua organização executa entre Claude Code e um provedor de modelo. Claude Code envia tráfego de API para o gateway em vez de diretamente para o provedor, e o gateway o encaminha usando uma credencial que sua organização mantém. Os desenvolvedores se autenticam no gateway em vez de manter credenciais do provedor, portanto autenticação, rastreamento de uso, orçamentos e registro de auditoria acontecem em um único lugar que você controla.

10 

11Claude Code inclui um gateway auto-hospedado, [Claude apps gateway](/pt/claude-apps-gateway), no binário `claude`, portanto você não precisa adotar um produto de gateway separado para executar um. Se sua organização já executa um [LLM gateway](/pt/llm-gateway), Claude Code também funciona com esse.

12 

13Esta página aborda:

14 

15* [Como um gateway fica entre Claude Code e seu provedor](#how-a-gateway-works)

16* [Escolhendo entre Claude apps gateway e um gateway que você já executa](#choose-a-gateway)

17* [Como gateways interagem com assinaturas claude.ai](#subscriptions-and-gateways)

18* [O que é configurado separadamente do gateway](#configure-separately-from-the-gateway)

19 

20<h2 id="how-a-gateway-works">

21 Como um gateway funciona

22</h2>

23 

24Cada Claude Code do desenvolvedor é apontado para o endereço do gateway e se autentica com uma credencial emitida pelo gateway.

25 

26O gateway autentica o desenvolvedor, aplica quaisquer regras de acesso e orçamento que você configure e encaminha a solicitação para seu provedor com a credencial da organização. O provedor pode ser a API da Anthropic ou um [provedor de nuvem](/pt/third-party-integrations) como Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry; a configuração do gateway decide. Com Claude apps gateway ou outro gateway que expõe um único endpoint no formato Anthropic, mudar de provedor não requer tocar em máquinas de desenvolvedores.

27 

28<Frame>

29 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/llm-gateway-flow.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=1c1a8dcc0cfcc3a58652cc8e28cd3e20" alt="Diagrama mostrando Claude Code roteando através de um gateway. Em uma zona de máquinas de desenvolvedores, a CLI Claude Code e a extensão VS Code enviam solicitações para o endereço do gateway com uma credencial por desenvolvedor. Em uma zona rotulada sua infraestrutura, o gateway lida com autenticação, rastreamento de uso, orçamentos e roteamento, e encaminha solicitações com a credencial de sua organização. Em uma zona de provedores de modelo, uma seta sólida leva ao provedor que você configura, mostrado como a API Anthropic, e setas tracejadas levam a outras opções de provedor, ilustradas com Amazon Bedrock, Google Cloud e Microsoft Foundry como exemplos." width="780" height="322" data-path="images/llm-gateway-flow.svg" />

30</Frame>

31 

32Dois tipos de credencial estão envolvidos:

33 

34* **Credencial do desenvolvedor**: cada desenvolvedor mantém a sua própria, emitida pelo gateway. Ela os autentica no gateway e os identifica no rastreamento de uso

35* **Credencial do provedor**: o gateway mantém uma credencial para sua conta de provedor, compartilhada por todo o tráfego encaminhado

36 

37<h2 id="choose-a-gateway">

38 Escolha um gateway

39</h2>

40 

41Claude Code funciona com o próprio gateway da Anthropic ou com um gateway que sua organização já executa.

42 

43<h3 id="claude-apps-gateway">

44 Claude apps gateway

45</h3>

46 

47Claude apps gateway é o gateway auto-hospedado da Anthropic, incluído no binário `claude`. Ele roteia para Amazon Bedrock, Google Cloud, Microsoft Foundry ou a API Anthropic como upstream. Os desenvolvedores fazem login com seu provedor de identidade corporativa através de `/login`, o gateway impõe acesso a modelo e [configurações gerenciadas](/pt/permissions#managed-settings) por grupo IdP, e emite métricas de uso [OpenTelemetry Protocol (OTLP)](/pt/monitoring-usage) para sua própria pilha de observabilidade.

48 

49Como é construído e testado junto com cada lançamento de Claude Code, ele encaminha os cabeçalhos e campos de solicitação que Claude Code envia. Um gateway mantido separadamente precisa ter suas [regras de encaminhamento atualizadas](/pt/llm-gateway-protocol#forward-as-open-lists) conforme esses cabeçalhos e campos mudam a cada lançamento; Claude apps gateway é lançado com a CLI, portanto não há lista para manter atualizada. Veja [Disponibilidade e limitações](/pt/claude-apps-gateway#availability-and-limitations) para o pequeno conjunto de recursos que se comportam de forma diferente em uma sessão de gateway.

50 

51O login do gateway é uma etapa de SSO do navegador, e não há fluxo de token de serviço, portanto um pipeline de CI sem um desenvolvedor para aprovar o login não pode se autenticar através dele; configure-os contra seu provedor diretamente. Sessões do Agent SDK e execuções `claude -p` em uma máquina onde um desenvolvedor fez login usam a sessão de gateway dessa máquina e são governadas por suas políticas. Veja [Pipelines de CI e máquinas remotas](/pt/claude-apps-gateway#ci-pipelines-and-remote-machines).

52 

53Veja [Claude apps gateway](/pt/claude-apps-gateway) para implantá-lo.

54 

55<h3 id="other-gateways">

56 Outros gateways

57</h3>

58 

59Se sua organização já executa um LLM gateway ou API gateway, você pode usá-lo em vez disso. A Anthropic não endossa, mantém ou audita outros produtos de gateway, e não suporta roteamento de Claude Code para modelos não-Claude através de qualquer gateway. Veja [Outros LLM gateways](/pt/llm-gateway) para a lista de verificação de implementação do administrador, o que um gateway deve implementar e como apontar Claude Code para ele.

60 

61<h2 id="subscriptions-and-gateways">

62 Assinaturas e gateways

63</h2>

64 

65Quando os desenvolvedores se conectam através de um gateway com uma credencial de gateway, o uso é faturado para a conta de provedor de sua organização com taxas de API, e suas assinaturas claude.ai não são usadas ou cobradas. Definir [`ANTHROPIC_AUTH_TOKEN`](/pt/env-vars) para um gateway que você executa, ou fazer login em um Claude apps gateway com `/login`, desativa o login de assinatura para essa sessão. Cada solicitação encaminhada sob essa credencial é cobrada da conta atrás da credencial do provedor do gateway.

66 

67A exceção é definir apenas `ANTHROPIC_BASE_URL`, sem credencial de gateway. As solicitações ainda são roteadas através do gateway, mas um login claude.ai salvo permanece como a credencial ativa, portanto os limites de uso e faturamento da assinatura se aplicam. [Outros LLM gateways](/pt/llm-gateway#subscriptions-and-gateways) aborda essa configuração e o que o gateway precisa encaminhar para que funcione.

68 

69<h2 id="configure-separately-from-the-gateway">

70 Configure separadamente do gateway

71</h2>

72 

73Um gateway roteia solicitações de API de modelo. Algumas coisas que você pode esperar que ele manipule são configuradas em outro lugar:

74 

75* **Qual modelo responde**: escolha o modelo com o comando `/model` ou [variáveis de ambiente de modelo](/pt/model-config#setting-your-model). O gateway decide para onde as solicitações vão, não qual modelo o desenvolvedor seleciona. Claude apps gateway pode limitar a escolha com uma lista de permissões `availableModels` por grupo, mas o desenvolvedor ainda escolhe dentro dela.

76* **Outro tráfego de rede**: Claude Code em si envia verificações de versão e downloads diretamente para a Anthropic, separado do caminho do gateway. Se o fluxo de telemetria do cliente opcional também está ativado depende do seu provedor; a [tabela de padrões de telemetria](/pt/data-usage#telemetry-services) aborda cada caso. Em uma sessão de Claude apps gateway conectada, a credencial do gateway desativa a análise vinculada à Anthropic e, quando [encaminhamento de telemetria](/pt/claude-apps-gateway-config#telemetry) é configurado, fixa a exportação OTLP para o gateway. Sua rede ainda precisa de saída para os [domínios necessários](/pt/network-config), ou defina [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/pt/env-vars) para desativar os fluxos opcionais.

77* **Proxies HTTP corporativos**: um `HTTPS_PROXY` fica entre Claude Code e cada servidor com o qual ele se comunica, incluindo o gateway. Se sua rede exigir um, [configure o proxy](/pt/network-config) além do gateway. Para Claude apps gateway especificamente, [o login verifica se o host do proxy também está em uma rede privada](/pt/claude-apps-gateway#prerequisites); se não estiver, adicione o host do gateway a `NO_PROXY` para que a CLI se conecte a ele diretamente.

78 

79<h2 id="next-steps">

80 Próximas etapas

81</h2>

82 

83A próxima página depende de quem executa o gateway. O gateway da Anthropic é executado a partir do binário `claude` e tem seu próprio guia de configuração; um gateway que sua organização já executa tem um protocolo a implementar e uma lista de verificação de implementação do administrador.

84 

85* [Claude apps gateway](/pt/claude-apps-gateway) para implantar o gateway auto-hospedado da Anthropic com login SSO e telemetria OTLP

86* [Outros LLM gateways](/pt/llm-gateway) para o que um gateway que sua organização já executa deve implementar e como apontar Claude Code para ele

87* [Configure Claude Code para sua organização](/pt/admin-setup) para as decisões de implementação mais amplas das quais um gateway é uma parte

Details

127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}127 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

128 custom_instructions: "Follow our coding standards"128 custom_instructions: "Follow our coding standards"

129 max_turns: "10"129 max_turns: "10"

130 model: "claude-sonnet-4-6"130 model: "claude-sonnet-5"

131```131```

132 132 

133**Versão GA (v1.0):**133**Versão GA (v1.0):**


140 claude_args: |140 claude_args: |

141 --append-system-prompt "Follow our coding standards"141 --append-system-prompt "Follow our coding standards"

142 --max-turns 10142 --max-turns 10

143 --model claude-sonnet-4-6143 --model claude-sonnet-5

144```144```

145 145 

146<Tip>146<Tip>


228 228 

229Em comentários de issue ou PR:229Em comentários de issue ou PR:

230 230 

231```text theme={null}231```text wrap theme={null}

232@claude implement this feature based on the issue description232@claude implement this feature based on the issue description

233@claude how should I implement user authentication for this endpoint?233@claude how should I implement user authentication for this endpoint?

234@claude fix the TypeError in the user dashboard component234@claude fix the TypeError in the user dashboard component


709O parâmetro `claude_args` aceita qualquer argumento de CLI do Claude Code:709O parâmetro `claude_args` aceita qualquer argumento de CLI do Claude Code:

710 710 

711```yaml theme={null}711```yaml theme={null}

712claude_args: "--max-turns 5 --model claude-sonnet-4-6 --mcp-config /path/to/config.json"712claude_args: "--max-turns 5 --model claude-sonnet-5 --mcp-config /path/to/config.json"

713```713```

714 714 

715Argumentos comuns:715Argumentos comuns:

716 716 

717* `--max-turns`: Máximo de turnos de conversa (padrão: 10)717* `--max-turns`: Máximo de turnos de conversa (padrão: 10)

718* `--model`: Modelo a usar (por exemplo, `claude-sonnet-4-6`)718* `--model`: Modelo a usar (por exemplo, `claude-sonnet-5`)

719* `--mcp-config`: Caminho para configuração MCP719* `--mcp-config`: Caminho para configuração MCP

720* `--allowedTools`: Lista separada por vírgula de ferramentas permitidas. O alias `--allowed-tools` também funciona.720* `--allowedTools`: Lista separada por vírgula de ferramentas permitidas. O alias `--allowed-tools` também funciona.

721* `--debug`: Habilitar saída de debug721* `--debug`: Habilitar saída de debug

glossary.md +1 −1

Details

170 Effort level170 Effort level

171</h3>171</h3>

172 172 

173Uma configuração que controla quanto do orçamento de pensamento de raciocínio adaptativo Claude usa em cada turno. Esforço mais alto significa mais tokens de pensamento e raciocínio mais profundo; esforço mais baixo é mais rápido e barato. Effort é suportado em Fable 5, em Opus 4.6 e posterior, e em Sonnet 4.6.173Uma configuração que controla quanto do orçamento de pensamento de raciocínio adaptativo Claude usa em cada turno. Esforço mais alto significa mais tokens de pensamento e raciocínio mais profundo; esforço mais baixo é mais rápido e barato. Effort é suportado em Fable 5, em Opus 4.6 e posterior, e em Sonnet 4.6 e posterior.

174 174 

175Saiba mais: [Adjust effort level](/pt/model-config#adjust-effort-level)175Saiba mais: [Adjust effort level](/pt/model-config#adjust-effort-level)

176 176 

Details

236 236 

237```bash theme={null}237```bash theme={null}

238export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'238export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'

239export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'239export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'

240export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'240export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5@20251001'

241```241```

242 242 


290 Janela de contexto de 1M de tokens290 Janela de contexto de 1M de tokens

291</h2>291</h2>

292 292 

293Claude Opus 4.6 e posteriores, e Sonnet 4.6, suportam a [janela de contexto de 1M de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) no Vertex AI. Claude Code ativa automaticamente a janela de contexto estendida quando você seleciona uma variante de modelo 1M.293Claude 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/en/build-with-claude/context-windows#1m-token-context-window) no Vertex AI. 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.

294 294 

295O [assistente de configuração](#sign-in-with-vertex-ai) 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](/pt/model-config#pin-models-for-third-party-deployments) para detalhes.295O [assistente de configuração](#sign-in-with-vertex-ai) 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](/pt/model-config#pin-models-for-third-party-deployments) para detalhes.

296 296 

hooks.md +55 −22

Details

191O campo `matcher` filtra quando hooks disparam. Como um matcher é avaliado depende dos caracteres que contém:191O campo `matcher` filtra quando hooks disparam. Como um matcher é avaliado depende dos caracteres que contém:

192 192 

193| Valor do matcher | Avaliado como | Exemplo |193| Valor do matcher | Avaliado como | Exemplo |

194| :----------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |194| :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

195| `"*"`, `""` ou omitido | Corresponder a todos | dispara em cada ocorrência do evento |195| `"*"`, `""` ou omitido | Corresponder a todos | dispara em cada ocorrência do evento |

196| Apenas letras, dígitos, `_`, espaços, `,` e `\|` | String exata ou lista de strings exatas separadas por `\|` ou `,` com espaço em branco opcional ao redor | `Bash` corresponde apenas à ferramenta Bash; `Edit\|Write` e `Edit, Write` cada um corresponde a qualquer ferramenta exatamente |196| Apenas letras, dígitos, `_`, `-`, espaços, `,` e `\|` | String exata ou lista de strings exatas separadas por `\|` ou `,` com espaço em branco opcional ao redor | `Bash` corresponde apenas à ferramenta Bash; `Edit\|Write` e `Edit, Write` cada um corresponde a qualquer ferramenta exatamente; `code-reviewer` corresponde apenas a esse tipo de agente |

197| Contém qualquer outro caractere | Expressão regular JavaScript | `^Notebook` corresponde a qualquer ferramenta começando com Notebook; `mcp__memory__.*` corresponde a cada ferramenta do servidor `memory` |197| Contém qualquer outro caractere | Expressão regular JavaScript, não ancorada | `^Notebook` corresponde a qualquer ferramenta cujo nome começa com `Notebook`; `mcp__memory__.*` corresponde a cada ferramenta do servidor `memory` |

198 198 

199Separadores de vírgula e a tolerância de espaço em branco ao redor requerem Claude Code v2.1.191 ou posterior. Os eventos `FileChanged` e `StopFailure` aceitam apenas `|` como separador de lista e tratam `,` como um caractere literal; todos os outros eventos listados na tabela a seguir aceitam `|` ou `,`.199Um 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.

200 

201Separadores de vírgula e a tolerância de espaço em branco ao redor requerem Claude Code v2.1.191 ou posterior.

202 

203Hí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.

204 

205`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 `,`.

200 206 

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

202 208 


209| `Setup` | qual sinalizador CLI acionou a configuração | `init`, `maintenance` |215| `Setup` | qual sinalizador CLI acionou a configuração | `init`, `maintenance` |

210| `SessionEnd` | por que a sessão terminou | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |216| `SessionEnd` | por que a sessão terminou | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

211| `Notification` | tipo de notificação | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |217| `Notification` | tipo de notificação | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |

212| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan` ou nomes de agentes personalizados |218| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nomes de agentes personalizados ou nomes com escopo de plugin como `^my-plugin:reviewer$` |

213| `PreCompact`, `PostCompact` | o que acionou a compactação | `manual`, `auto` |219| `PreCompact`, `PostCompact` | o que acionou a compactação | `manual`, `auto` |

214| `SubagentStop` | tipo de agente | mesmos valores que `SubagentStart` |220| `SubagentStop` | tipo de agente | mesmos valores que `SubagentStart` |

215| `ConfigChange` | fonte de configuração | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |221| `ConfigChange` | fonte de configuração | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |


244}250}

245```251```

246 252 

247`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove` e `CwdChanged` não suportam matchers e sempre disparam em cada ocorrência. Se você adicionar um campo `matcher` a esses eventos, ele é silenciosamente ignorado.253`UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `MessageDisplay` e `CwdChanged` não suportam matchers e sempre disparam em cada ocorrência. Se você adicionar um campo `matcher` a esses eventos, ele é silenciosamente ignorado.

248 254 

249Para eventos de ferramenta, você pode filtrar mais estreitamente definindo o campo [`if`](#common-fields) em manipuladores de hook individuais. `if` usa [sintaxe de regra de permissão](/pt/permissions) para corresponder contra o nome da ferramenta e argumentos juntos, então `"Bash(git *)"` executa quando qualquer subcomando da entrada Bash corresponde a `git *` e `"Edit(*.ts)"` executa apenas para arquivos TypeScript.255Para eventos de ferramenta, você pode filtrar mais estreitamente definindo o campo [`if`](#common-fields) em manipuladores de hook individuais. `if` usa [sintaxe de regra de permissão](/pt/permissions) para corresponder contra o nome da ferramenta e argumentos juntos, então `"Bash(git *)"` executa quando qualquer subcomando da entrada Bash corresponde a `git *` e `"Edit(*.ts)"` executa apenas para arquivos TypeScript.

250 256 


260* `mcp__filesystem__read_file`: ferramenta read file do servidor Filesystem266* `mcp__filesystem__read_file`: ferramenta read file do servidor Filesystem

261* `mcp__github__search_repositories`: ferramenta search do servidor GitHub267* `mcp__github__search_repositories`: ferramenta search do servidor GitHub

262 268 

263Para corresponder a cada ferramenta de um servidor, anexe `.*` ao prefixo do servidor. O `.*` é obrigatório: um matcher como `mcp__memory` contém apenas letras e underscores, então é comparado como uma string exata e não corresponde a nenhuma ferramenta.269Para corresponder a cada ferramenta de um servidor, anexe `.*` ao prefixo do servidor. O `.*` é obrigatório: um matcher como `mcp__memory` ou `mcp__brave-search` contém apenas caracteres de correspondência exata, então é comparado como uma string exata e não corresponde a nenhuma ferramenta.

264 270 

265* `mcp__memory__.*` corresponde a todas as ferramentas do servidor `memory`271* `mcp__memory__.*` corresponde a todas as ferramentas do servidor `memory`

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

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

267 274 

275Hí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.

276 

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

269 278 

270```json theme={null}279```json theme={null}


306* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): enviam um prompt para um modelo Claude para avaliação de turno único. O modelo retorna uma decisão sim/não como JSON. Consulte [Hooks baseados em prompt](#prompt-based-hooks).315* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): enviam um prompt para um modelo Claude para avaliação de turno único. O modelo retorna uma decisão sim/não como JSON. Consulte [Hooks baseados em prompt](#prompt-based-hooks).

307* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): geram um subagente que pode usar ferramentas como Read, Grep e Glob para verificar condições antes de retornar uma decisão. Hooks de agente são experimentais e podem mudar. Consulte [Hooks baseados em agente](#agent-based-hooks).316* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): geram um subagente que pode usar ferramentas como Read, Grep e Glob para verificar condições antes de retornar uma decisão. Hooks de agente são experimentais e podem mudar. Consulte [Hooks baseados em agente](#agent-based-hooks).

308 317 

318Todos os hooks correspondentes executam em paralelo, e manipuladores idênticos são automaticamente desduplicados. Hooks de comando são desduplicados por string de comando e `args`, e hooks HTTP são desduplicados por URL.

319 

320Manipuladores executam no diretório atual com o ambiente do Claude Code. A variável de ambiente `$CLAUDE_CODE_REMOTE` é definida como `"true"` em ambientes web remotos e não é definida na CLI local.

321 

309<h4 id="common-fields">322<h4 id="common-fields">

310 Campos comuns323 Campos comuns

311</h4>324</h4>


341Além dos [campos comuns](#common-fields), hooks de comando aceitam esses campos:354Além dos [campos comuns](#common-fields), hooks de comando aceitam esses campos:

342 355 

343| Campo | Obrigatório | Descrição |356| Campo | Obrigatório | Descrição |

344| :------------ | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |357| :------------ | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

345| `command` | sim | Comando shell a executar. Com `args`, o executável a gerar diretamente. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |358| `command` | sim | Comando shell a executar. Com `args`, o executável a gerar diretamente. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |

346| `args` | não | Lista de argumentos. Quando presente, `command` é resolvido como um executável e gerado diretamente com `args` como o vetor de argumentos, sem shell envolvido. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |359| `args` | não | Lista de argumentos. Quando presente, `command` é resolvido como um executável e gerado diretamente com `args` como o vetor de argumentos, sem shell envolvido. Consulte [Forma exec e forma shell](#exec-form-and-shell-form) |

347| `async` | não | Se `true`, executa em background sem bloquear. Consulte [Executar hooks em background](#run-hooks-in-the-background) |360| `async` | não | Se `true`, executa em background sem bloquear. Consulte [Executar hooks em background](#run-hooks-in-the-background) |

348| `asyncRewake` | não | Se `true`, executa em background e acorda Claude na saída do código 2. Implica `async`. O stderr do hook, ou stdout se stderr estiver vazio, é mostrado ao Claude como um lembrete do sistema para que possa reagir a uma falha de background de longa duração |361| `asyncRewake` | não | Se `true`, executa em background e acorda Claude na saída do código 2. Implica `async`. O stderr do hook, ou stdout se stderr estiver vazio, é mostrado ao Claude como um lembrete do sistema para que possa reagir a uma falha de background de longa duração |

349| `shell` | não | Shell a usar para este hook. Aceita `"bash"` (padrão) ou `"powershell"`. Definir `"powershell"` executa o comando via PowerShell no Windows. Não requer `CLAUDE_CODE_USE_POWERSHELL_TOOL` já que hooks geram PowerShell diretamente. Ignorado quando `args` é definido |362| `shell` | não | Shell a usar para este hook. Aceita `"bash"` ou `"powershell"`. Padrão é `"bash"`, ou `"powershell"` no Windows quando Git Bash não está instalado. Definir `"powershell"` executa o comando via PowerShell no Windows. Não requer `CLAUDE_CODE_USE_POWERSHELL_TOOL` já que hooks geram PowerShell diretamente. Ignorado quando `args` é definido |

350 363 

351<a id="exec-form-and-shell-form" />364<a id="exec-form-and-shell-form" />

352 365 


479| `prompt` | sim | Texto do prompt a enviar para o modelo. Use `$ARGUMENTS` como placeholder para a entrada JSON do hook. Escape com uma barra invertida para incluir texto literal: `\$1.00` renderiza como `$1.00` |492| `prompt` | sim | Texto do prompt a enviar para o modelo. Use `$ARGUMENTS` como placeholder para a entrada JSON do hook. Escape com uma barra invertida para incluir texto literal: `\$1.00` renderiza como `$1.00` |

480| `model` | não | Modelo a usar para avaliação. Padrão para um modelo rápido |493| `model` | não | Modelo a usar para avaliação. Padrão para um modelo rápido |

481 494 

482Todos os hooks correspondentes executam em paralelo, e manipuladores idênticos são automaticamente desduplicados. Hooks de comando são desduplicados por string de comando e `args`, e hooks HTTP são desduplicados por URL. Manipuladores executam no diretório atual com o ambiente do Claude Code. A variável de ambiente `$CLAUDE_CODE_REMOTE` é definida como `"true"` em ambientes web remotos e não é definida na CLI local.

483 

484<h3 id="reference-scripts-by-path">495<h3 id="reference-scripts-by-path">

485 Referenciar scripts por caminho496 Referenciar scripts por caminho

486</h3>497</h3>


620| Campo | Descrição |631| Campo | Descrição |

621| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |632| :---------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

622| `session_id` | Identificador de sessão atual |633| `session_id` | Identificador de sessão atual |

634| `prompt_id` | UUID identificando o prompt do usuário sendo processado atualmente. Corresponde ao [atributo `prompt.id` em eventos OpenTelemetry](/pt/monitoring-usage#event-correlation-attributes), para que você possa correlacionar saída de hook com telemetria para um único prompt. Ausente até a primeira entrada do usuário. {/* min-version: 2.1.196 */}Requer Claude Code v2.1.196 ou posterior |

623| `transcript_path` | Caminho para JSON de conversa |635| `transcript_path` | Caminho para JSON de conversa |

624| `cwd` | Diretório de trabalho atual quando o hook é invocado |636| `cwd` | Diretório de trabalho atual quando o hook é invocado |

625| `permission_mode` | [Modo de permissão](/pt/permissions#permission-modes) atual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` ou `"bypassPermissions"`. Nem todos os eventos recebem este campo: consulte cada exemplo JSON de evento abaixo para verificar |637| `permission_mode` | [Modo de permissão](/pt/permissions#permission-modes) atual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` ou `"bypassPermissions"`. Nem todos os eventos recebem este campo: consulte cada exemplo JSON de evento abaixo para verificar |


629Ao executar com `--agent` ou dentro de um subagente, dois campos adicionais são incluídos:641Ao executar com `--agent` ou dentro de um subagente, dois campos adicionais são incluídos:

630 642 

631| Campo | Descrição |643| Campo | Descrição |

632| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |644| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

633| `agent_id` | Identificador único para o subagente. Presente apenas quando o hook dispara dentro de uma chamada de subagente. Use isso para distinguir chamadas de hook de subagente de chamadas de thread principal. |645| `agent_id` | Identificador único para o subagente. Presente apenas quando o hook dispara dentro de uma chamada de subagente. Use isso para distinguir chamadas de hook de subagente de chamadas de thread principal. |

634| `agent_type` | Nome do agente (por exemplo, `"Explore"` ou `"security-reviewer"`). Presente quando a sessão usa `--agent` ou o hook dispara dentro de um subagente. Para subagentes, o tipo do subagente tem precedência sobre o valor `--agent` da sessão. Para [subagentes personalizados](/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo. |646| `agent_type` | Nome do agente (por exemplo, `"Explore"` ou `"security-reviewer"`). Presente quando a sessão usa `--agent` ou o hook dispara dentro de um subagente. Para subagentes, o tipo do subagente tem precedência sobre o valor `--agent` da sessão. Para [subagentes personalizados](/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo. Para subagentes fornecidos por um [plugin](/pt/plugins), este é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome de frontmatter simples. Consulte [SubagentStart](#subagentstart) para saber como escrever um matcher contra um nome com escopo de plugin. |

635 647 

636Apenas hooks [`SessionStart`](#sessionstart) podem receber um campo `model`, e não é garantido que esteja presente. Não há variável de ambiente `$CLAUDE_MODEL`. Um processo de hook herda o ambiente pai, então pode ler `$ANTHROPIC_MODEL` se você defini-lo em seu shell, mas esse valor não muda quando você alterna modelos com `/model` durante uma sessão.648Apenas hooks [`SessionStart`](#sessionstart) podem receber um campo `model`, e não é garantido que esteja presente. Não há variável de ambiente `$CLAUDE_MODEL`. Um processo de hook herda o ambiente pai, então pode ler `$ANTHROPIC_MODEL` se você defini-lo em seu shell, mas esse valor não muda quando você alterna modelos com `/model` durante uma sessão.

637 649 


640```json theme={null}652```json theme={null}

641{653{

642 "session_id": "abc123",654 "session_id": "abc123",

655 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

643 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",656 "transcript_path": "/home/user/.claude/projects/.../transcript.jsonl",

644 "cwd": "/home/user/my-project",657 "cwd": "/home/user/my-project",

645 "permission_mode": "default",658 "permission_mode": "default",


749 762 

750O stdout do seu hook deve conter apenas o objeto JSON. Se seu perfil shell imprime texto na inicialização, pode interferir com análise JSON. Consulte [Validação JSON falhou](/pt/hooks-guide#json-validation-failed) no guia de troubleshooting.763O stdout do seu hook deve conter apenas o objeto JSON. Se seu perfil shell imprime texto na inicialização, pode interferir com análise JSON. Consulte [Validação JSON falhou](/pt/hooks-guide#json-validation-failed) no guia de troubleshooting.

751 764 

752Saída de hook injetada em contexto (`additionalContext`, `systemMessage` ou stdout simples) é limitada a 10.000 caracteres. Saída que excede este limite é salva em um arquivo e substituída por uma visualização e caminho de arquivo, da mesma forma que resultados de ferramenta grandes são tratados.765Saídas de hook, incluindo `additionalContext`, `systemMessage` e stdout simples, são limitadas a 10.000 caracteres. Saída que excede este limite é salva em um arquivo e substituída por uma visualização e caminho de arquivo, da mesma forma que resultados de ferramenta grandes são tratados.

753 766 

754O objeto JSON suporta três tipos de campos:767O objeto JSON suporta três tipos de campos:

755 768 


796# Hook de notificação: ping no desktop quando Claude Code precisa de atenção.809# Hook de notificação: ping no desktop quando Claude Code precisa de atenção.

797input=$(cat)810input=$(cat)

798title="Claude Code'811title="Claude Code'

799body=$(jq -r '.message // 'Needs your attention'' <<<'$input")812body=$(jq -r '.message // 'Needs your attention"' <<<"$input")

800seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")813seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

801jq -nc --arg seq "$seq" '{terminalSequence: $seq}'814jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

802```815```


867 880 

868Alguns eventos também podem reescrever conteúdo em vez de apenas permitir ou bloquear:881Alguns eventos também podem reescrever conteúdo em vez de apenas permitir ou bloquear:

869 882 

870* `PreToolUse` `updatedInput` diretamente sob `hookSpecificOutput` substitui os argumentos de uma ferramenta antes de executar ([detalhes](#pretooluse-decision-control))883* `PreToolUse`: `updatedInput` diretamente sob `hookSpecificOutput` substitui os argumentos de uma ferramenta antes de executar. Consulte [Controle de decisão PreToolUse](#pretooluse-decision-control)

871* `PermissionRequest` `updatedInput` dentro do objeto `decision` ([detalhes](#permissionrequest-decision-control))884* `PermissionRequest`: `updatedInput` dentro do objeto `decision`. Consulte [Controle de decisão PermissionRequest](#permissionrequest-decision-control)

872* `PostToolUse` `updatedToolOutput` substitui o resultado da ferramenta ([detalhes](#posttooluse-decision-control))885* `PostToolUse`: `updatedToolOutput` substitui o resultado da ferramenta. Consulte [Controle de decisão PostToolUse](#posttooluse-decision-control)

873* `UserPromptSubmit` não pode substituir o prompt; apenas injeta `additionalContext` ao lado dele886* `UserPromptSubmit`: não pode substituir o prompt; apenas injeta `additionalContext` ao lado dele

874 887 

875Para casos de uso de redação ou transformação, intercepte em `PreToolUse` para entradas de ferramenta de saída e `PostToolUse` para resultados de ferramenta de entrada.888Para casos de uso de redação ou transformação, intercepte em `PreToolUse` para entradas de ferramenta de saída e `PostToolUse` para resultados de ferramenta de entrada.

876 889 


959 "cwd": "/Users/...",972 "cwd": "/Users/...",

960 "hook_event_name": "SessionStart",973 "hook_event_name": "SessionStart",

961 "source": "startup",974 "source": "startup",

962 "model": "claude-sonnet-4-6"975 "model": "claude-sonnet-5"

963}976}

964```977```

965 978 


1148 1161 

1149Hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para tipos `command`, `http` e `mcp_tool`, mais curto que o padrão de 600 segundos para esses tipos em outros eventos. Porque este hook executa antes de cada prompt e bloqueia processamento do modelo até que seja concluído, um hook travado paralisa a sessão. Se seu hook precisa de mais tempo, defina o campo `timeout` na entrada do hook.1162Hooks `UserPromptSubmit` têm um timeout padrão de 30 segundos para tipos `command`, `http` e `mcp_tool`, mais curto que o padrão de 600 segundos para esses tipos em outros eventos. Porque este hook executa antes de cada prompt e bloqueia processamento do modelo até que seja concluído, um hook travado paralisa a sessão. Se seu hook precisa de mais tempo, defina o campo `timeout` na entrada do hook.

1150 1163 

1164Um hook `UserPromptSubmit` que atinge seu timeout é cancelado e sua saída, incluindo qualquer `additionalContext`, é descartada. O prompt ainda chega ao Claude sem esse contexto. A partir de v2.1.196, a transcrição mostra um aviso nomeando o hook, o timeout que disparou e que a saída foi descartada. Versões anteriores cancelam o hook sem aviso.

1165 

1151<h4 id="userpromptsubmit-input">1166<h4 id="userpromptsubmit-input">

1152 Entrada de UserPromptSubmit1167 Entrada de UserPromptSubmit

1153</h4>1168</h4>


1404 1419 

1405Executa após Claude criar parâmetros de ferramenta e antes de processar a chamada da ferramenta. Corresponde no nome da ferramenta: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` e qualquer [nome de ferramenta MCP](#match-mcp-tools).1420Executa após Claude criar parâmetros de ferramenta e antes de processar a chamada da ferramenta. Corresponde no nome da ferramenta: `Bash`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `WebFetch`, `WebSearch`, `AskUserQuestion`, `ExitPlanMode` e qualquer [nome de ferramenta MCP](#match-mcp-tools).

1406 1421 

1422<Warning>

1423 PreToolUse executa apenas quando Claude chama uma ferramenta. Arquivos que você [referencia com `@` em seu prompt](/pt/common-workflows#reference-files-and-directories) são adicionados sem qualquer chamada de ferramenta: Claude Code insere seus conteúdos enquanto constrói o prompt, então nenhum hook PreToolUse dispara para eles, incluindo hooks correspondendo a `Read`. Para bloquear caminhos específicos de referências `@`, use uma [regra de negação `Read`](/pt/permissions#read-and-edit) em vez disso.

1424</Warning>

1425 

1407Use [Controle de decisão PreToolUse](#pretooluse-decision-control) para permitir, negar, pedir ou adiar a chamada da ferramenta.1426Use [Controle de decisão PreToolUse](#pretooluse-decision-control) para permitir, negar, pedir ou adiar a chamada da ferramenta.

1408 1427 

1409<h4 id="pretooluse-input">1428<h4 id="pretooluse-input">


1538 1557 

1539Para chamadas `run_in_background: true`, a ferramenta retorna imediatamente após lançar o subagente, então `tool_response` não carrega campos de uso. Tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel` em vez disso.1558Para chamadas `run_in_background: true`, a ferramenta retorna imediatamente após lançar o subagente, então `tool_response` não carrega campos de uso. Tem `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` e `resolvedModel` em vez disso.

1540 1559 

1541O campo `resolvedModel` nomeia o modelo que o subagente realmente executa, que pode diferir do valor `model` em `tool_input`. Requer Claude Code v2.1.174 ou posterior.1560O campo `resolvedModel` nomeia o modelo que o subagente realmente executa, que pode diferir do valor `model` em `tool_input`, como quando `availableModels` ou outra sobrescrita se aplica. Requer Claude Code v2.1.174 ou posterior.

1542 1561 

1543<a id="askuserquestion" />1562<a id="askuserquestion" />

1544 1563 


2054 2073 

2055Executa quando um subagente do Claude Code é gerado via ferramenta Agent. 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](/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.2074Executa quando um subagente do Claude Code é gerado via ferramenta Agent. 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](/pt/sub-agents), este é o campo `name` do frontmatter do agente, não o nome do arquivo.

2056 2075 

2076Para subagentes fornecidos por um [plugin](/pt/plugins), o tipo de agente é o identificador com escopo de plugin como `my-plugin:reviewer`, não o nome 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$`.

2077 

2057<h4 id="subagentstart-input">2078<h4 id="subagentstart-input">

2058 Entrada de SubagentStart2079 Entrada de SubagentStart

2059</h4>2080</h4>


2780 Entrada de SessionEnd2801 Entrada de SessionEnd

2781</h4>2802</h4>

2782 2803 

2783Além dos [campos de entrada comuns](#common-input-fields), hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Consulte a [tabela de razão](#sessionend) acima para todos os valores.2804Além dos [campos de entrada comuns](#common-input-fields), hooks SessionEnd recebem um campo `reason` indicando por que a sessão terminou. Consulte a tabela de razão acima para todos os valores.

2784 2805 

2785```json theme={null}2806```json theme={null}

2786{2807{


3287}3308}

3288```3309```

3289 3310 

3311Para referenciar o diretório raiz do projeto a partir de um comando em forma de shell do PowerShell, leia-o como uma variável de ambiente com `$env:CLAUDE_PROJECT_DIR`. PowerShell trata a forma nua `${CLAUDE_PROJECT_DIR}` como uma variável local, não como uma busca de ambiente, e Claude Code substitui esse espaço reservado em forma de shell apenas para [hooks de plugin](#reference-scripts-by-path). Para um hook definido em `settings.json`, use a forma `$env:` ou mude para [forma exec](#exec-form-and-shell-form), onde `${CLAUDE_PROJECT_DIR}` é substituído em cada elemento `args` independentemente de onde o hook está definido.

3312 

3313O exemplo abaixo mostra um hook `settings.json` que executa um script de projeto com a forma `$env:`:

3314 

3315```json theme={null}

3316{

3317 "type": "command",

3318 "shell": "powershell",

3319 "command": "& \"$env:CLAUDE_PROJECT_DIR\\.claude\\hooks\\check.ps1\""

3320}

3321```

3322 

3290<h2 id="debug-hooks">3323<h2 id="debug-hooks">

3291 Debug de hooks3324 Debug de hooks

3292</h2>3325</h2>

Details

249* O histórico de entrada é redefinido quando você executa `/clear` para iniciar uma nova sessão. A conversa da sessão anterior é preservada e pode ser retomada.249* O histórico de entrada é redefinido quando você executa `/clear` para iniciar uma nova sessão. A conversa da sessão anterior é preservada e pode ser retomada.

250* Enviar o mesmo prompt duas vezes seguidas registra uma entrada de histórico, então pressionar Seta para cima vai para o prompt anterior distinto250* Enviar o mesmo prompt duas vezes seguidas registra uma entrada de histórico, então pressionar Seta para cima vai para o prompt anterior distinto

251* Use as setas Para cima/Para baixo para navegar (veja atalhos de teclado acima)251* Use as setas Para cima/Para baixo para navegar (veja atalhos de teclado acima)

252* **Nota**: expansão de histórico (`!`) está desabilitada por padrão252* Expansão de histórico com `!` está desabilitada por padrão

253 253 

254<h3 id="reverse-search-with-ctrl-r">254<h3 id="reverse-search-with-ctrl-r">

255 Pesquisa reversa com Ctrl+R255 Pesquisa reversa com Ctrl+R


285Para executar comandos em segundo plano, você pode:285Para executar comandos em segundo plano, você pode:

286 286 

287* Solicitar ao Claude Code para executar um comando em segundo plano287* Solicitar ao Claude Code para executar um comando em segundo plano

288* Pressionar Ctrl+B para mover uma invocação regular da ferramenta Bash para o segundo plano. (Usuários de Tmux devem pressionar Ctrl+B duas vezes devido à tecla de prefixo do tmux.)288* Pressionar `Ctrl+B` para mover uma invocação regular da ferramenta Bash para o segundo plano. Usuários de Tmux devem pressionar `Ctrl+B` duas vezes devido à tecla de prefixo do tmux.

289 289 

290**Recursos principais:**290**Recursos principais:**

291 291 

292* A saída é escrita em um arquivo e Claude pode recuperá-la usando a ferramenta Read292* A saída é escrita em um arquivo e Claude pode recuperá-la usando a ferramenta Read

293* Tarefas em segundo plano têm IDs únicos para rastreamento e recuperação de saída293* Tarefas em segundo plano têm IDs únicos para rastreamento e recuperação de saída

294* Tarefas em segundo plano são limpas automaticamente quando Claude Code sai294* Tarefas em segundo plano são limpas automaticamente quando Claude Code sai. Colocar a sessão em segundo plano em vez de sair entrega-as à sessão em segundo plano, onde continuam sendo executadas. Veja [colocar uma sessão em execução em segundo plano](/pt/agent-view#from-inside-a-session)

295* Tarefas em segundo plano são automaticamente encerradas se a saída exceder 5GB, com uma nota em stderr explicando o motivo295* Tarefas em segundo plano são automaticamente encerradas se a saída exceder 5GB, com uma nota em stderr explicando o motivo

296* {/* min-version: 2.1.193 */}A partir da v2.1.193, em macOS e Linux, tarefas em segundo plano em execução são encerradas quando o sistema operacional sinaliza pressão de memória, desde que a sessão tenha ficado ociosa por pelo menos 30 minutos sem nenhuma volta ou subagente em execução. Defina [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/pt/env-vars) para `1` para desativar isso

296 297 

297Para desabilitar toda a funcionalidade de tarefa em segundo plano, defina a variável de ambiente `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` para `1`. Veja [Variáveis de ambiente](/pt/env-vars) para detalhes.298Para desabilitar toda a funcionalidade de tarefa em segundo plano, defina a variável de ambiente `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` para `1`. Veja [Variáveis de ambiente](/pt/env-vars) para detalhes.

298 299 


305* Processos de longa duração (docker, terraform)306* Processos de longa duração (docker, terraform)

306 307 

307<h3 id="shell-mode-with-prefix">308<h3 id="shell-mode-with-prefix">

308 Modo Bash com prefixo `!`309 Modo shell com prefixo `!`

309</h3>310</h3>

310 311 

311Execute comandos bash diretamente sem passar por Claude prefixando sua entrada com `!`:312Execute comandos shell diretamente sem passar por Claude prefixando sua entrada com `!`:

312 313 

313```bash theme={null}314```bash theme={null}

314! npm test315! npm test


316! ls -la317! ls -la

317```318```

318 319 

319Modo Bash:320Modo shell:

320 321 

321* Adiciona o comando e sua saída ao contexto de conversa322* Adiciona o comando e sua saída ao contexto de conversa

322* Mostra progresso e saída em tempo real323* Mostra progresso e saída em tempo real

323* Suporta o mesmo segundo plano `Ctrl+B` para comandos de longa duração324* Suporta o mesmo segundo plano `Ctrl+B` para comandos de longa duração

324* Não requer que Claude interprete ou aprove o comando325* Não requer que Claude interprete ou aprove o comando

325* Suporta preenchimento automático baseado em histórico: digite um comando parcial e pressione **Tab** para completar a partir de comandos `!` anteriores no projeto atual326* Suporta preenchimento automático baseado em histórico: digite um comando parcial e pressione `Tab` para completar a partir de comandos `!` anteriores no projeto atual

327* {/* min-version: 2.1.193 */}Suporta preenchimento automático de caminho de arquivo ao vivo a partir da v2.1.193 em todas as plataformas: digite um token contendo uma barra invertida, como `./src/` ou `~/`, para ver uma lista suspensa de arquivos e diretórios correspondentes, depois pressione `Tab` para aceitar. Use barras invertidas no Windows também; a lista suspensa é acionada por `/`, não `\`

326* Saia com `Escape`, `Backspace` ou `Ctrl+U` em um prompt vazio328* Saia com `Escape`, `Backspace` ou `Ctrl+U` em um prompt vazio

327* Colar texto que começa com `!` em um prompt vazio entra no modo bash automaticamente, correspondendo ao comportamento digitado `!`329* Colar texto que começa com `!` em um prompt vazio entra no modo shell automaticamente, correspondendo ao comportamento digitado `!`

328 330 

329A partir da v2.1.186, Claude responde à saída do comando automaticamente assim que ela chega à transcrição, para que você possa executar `! npm test` e obter uma explicação das falhas sem um segundo prompt. A resposta custa o mesmo que enviar um prompt normal. Para restaurar o comportamento anterior onde a saída é adicionada ao contexto sem uma resposta, defina [`respondToBashCommands`](/pt/settings#available-settings) para `false` em `settings.json`. Antes da v2.1.186, o modo shell sempre adicionava saída ao contexto sem uma resposta.331A partir da v2.1.186, Claude responde à saída do comando automaticamente assim que ela chega à transcrição, para que você possa executar `! npm test` e obter uma explicação das falhas sem um segundo prompt. A resposta custa o mesmo que enviar um prompt normal. Para restaurar o comportamento anterior onde a saída é adicionada ao contexto sem uma resposta, defina [`respondToBashCommands`](/pt/settings#available-settings) para `false` em `settings.json`. Antes da v2.1.186, o modo shell sempre adicionava saída ao contexto sem uma resposta.

330 332 


338 340 

339Após Claude responder, as sugestões continuam aparecendo com base no seu histórico de conversa, como uma etapa de acompanhamento de uma solicitação de várias partes ou uma continuação natural do seu fluxo de trabalho.341Após Claude responder, as sugestões continuam aparecendo com base no seu histórico de conversa, como uma etapa de acompanhamento de uma solicitação de várias partes ou uma continuação natural do seu fluxo de trabalho.

340 342 

341* Pressione **Tab** ou **Right arrow** para colocar a sugestão na entrada de prompt, depois **Enter** para enviar343* Pressione `Tab` ou `Right arrow` para colocar a sugestão na entrada de prompt, depois `Enter` para enviar

342* Comece a digitar para descartá-la344* Comece a digitar para descartá-la

343 345 

344A sugestão é executada como uma solicitação em segundo plano que reutiliza o cache de prompt da conversa pai, então o custo adicional é mínimo. Claude Code pula a geração de sugestão quando o cache está frio para evitar custo desnecessário.346A sugestão é executada como uma solicitação em segundo plano que reutiliza o cache de prompt da conversa pai, então o custo adicional é mínimo. Claude Code pula a geração de sugestão quando o cache está frio para evitar custo desnecessário.


368* **Resposta única**: não há voltas de acompanhamento na sobreposição. Para continuar a thread, divida-a em sua própria sessão com `f`.370* **Resposta única**: não há voltas de acompanhamento na sobreposição. Para continuar a thread, divida-a em sua própria sessão com `f`.

369* **Custo baixo**: a pergunta lateral reutiliza o cache de prompt da conversa pai, então o custo adicional é mínimo.371* **Custo baixo**: a pergunta lateral reutiliza o cache de prompt da conversa pai, então o custo adicional é mínimo.

370 372 

371Assim que a resposta aparecer, a sobreposição aceita estas teclas. Perguntas laterais anteriores da mesma sessão aparecem como uma lista esmaecida acima da resposta atual; elas ficam fora do histórico de conversa mas permanecem visíveis na sobreposição até você limpá-las.373Perguntas laterais anteriores da mesma sessão aparecem como uma lista esmaecida acima da resposta atual. Elas ficam fora do histórico de conversa mas permanecem visíveis na sobreposição até você limpá-las.

374 

375Assim que a resposta aparecer, a sobreposição aceita estas teclas.

372 376 

373| Tecla | Ação |377| Tecla | Ação |

374| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |378| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


406 Status de revisão de PR410 Status de revisão de PR

407</h2>411</h2>

408 412 

409Ao trabalhar em uma branch com um pull request aberto, Claude Code exibe um link de PR clicável no rodapé (por exemplo, "PR #446"). O link tem um sublinhado colorido indicando o estado de revisão:413Ao trabalhar em uma branch com um pull request aberto, Claude Code exibe um link de PR clicável no rodapé, como "PR #446". O link tem um sublinhado colorido indicando o estado de revisão:

410 414 

411* Verde: aprovado415* Verde: aprovado

412* Amarelo: revisão pendente416* Amarelo: revisão pendente

413* Vermelho: mudanças solicitadas417* Vermelho: mudanças solicitadas

414* Cinza: rascunho418* Cinza: rascunho

415 419 

416O badge desaparece assim que o pull request é mesclado ou fechado. `Cmd+click` (Mac) ou `Ctrl+click` (Windows/Linux) no link para abrir o pull request no seu navegador. O status é atualizado a cada 60 segundos e imediatamente após um comando `gh pr` ou `git push` ser executado na sessão.420O badge desaparece assim que o pull request é mesclado ou fechado. `Cmd+click` (macOS) ou `Ctrl+click` (Windows/Linux) no link para abrir o pull request no seu navegador. O status é atualizado a cada 60 segundos e imediatamente após um comando `gh pr` ou `git push` ser executado na sessão.

417 421 

418<Note>422<Note>

419 O status de PR requer que o CLI `gh` esteja instalado e autenticado (`gh auth login`).423 O status de PR requer que o CLI `gh` esteja instalado e autenticado (`gh auth login`).

jetbrains.md +1 −1

Details

233 Considerações de Segurança233 Considerações de Segurança

234</h2>234</h2>

235 235 

236Quando Claude Code é executado em um JetBrains IDE com permissões de auto-edição ativadas, ele pode ser capaz de modificar arquivos de configuração do IDE que podem ser executados automaticamente pelo seu IDE. Isso pode aumentar o risco de executar Claude Code no modo auto-edição e permitir contornar os prompts de permissão do Claude Code para execução de bash.236Quando Claude Code é executado em um JetBrains IDE no modo de permissão [`acceptEdits`](/pt/permission-modes#auto-approve-file-edits-with-acceptedits-mode), ele pode ser capaz de modificar arquivos de configuração do IDE que podem ser executados automaticamente pelo seu IDE. Isso pode aumentar o risco de executar Claude Code no modo `acceptEdits` e permitir contornar os prompts de permissão do Claude Code para execução de bash.

237 237 

238Ao executar em JetBrains IDEs, considere:238Ao executar em JetBrains IDEs, considere:

239 239 

llm-gateway.md +0 −96 deleted

File Deleted View Diff

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Gateways LLM

6 

7> Rotear Claude Code através de um gateway LLM para autenticação centralizada, rastreamento de uso e controles de custo. Abrange conectar Claude Code a um gateway, implantar um para sua organização, o que Claude Code envia a um gateway e como gateways interagem com assinaturas claude.ai.

8 

9Um gateway LLM é um proxy que sua organização executa entre Claude Code e um provedor de modelo. Claude Code envia tráfego de API para o gateway, e o gateway o encaminha para o provedor usando uma credencial que sua organização controla.

10 

11<Note>

12 * Se você é um desenvolvedor conectando a um gateway existente: [conectar Claude Code ao seu gateway](/pt/llm-gateway-connect)

13 * Se você é um administrador implantando um gateway para sua organização: [implantar e distribuir um gateway](/pt/llm-gateway-rollout)

14 * Se você está configurando um produto gateway: a [referência de protocolo de gateway](/pt/llm-gateway-protocol)

15</Note>

16 

17<h2 id="what-a-gateway-provides">

18 O que um gateway fornece

19</h2>

20 

21Um gateway oferece à sua organização um único lugar para gerenciar:

22 

23* **Credenciais**: a chave do provedor fica no lado do servidor; desenvolvedores mantêm credenciais de gateway em vez disso

24* **Rastreamento de uso**: atribua uso por desenvolvedor ou equipe, independentemente de qual provedor atende a solicitação

25* **Controles de custo**: aplique orçamentos e limites de taxa em um único lugar

26* **Registro de auditoria**: registre cada solicitação de modelo para conformidade

27* **Alternância de provedor**: altere o provedor na configuração do gateway, sem tocar nas máquinas dos desenvolvedores

28 

29Todos esses, exceto alternância de provedor, se aplicam se o upstream é a API da Anthropic ou um [provedor de nuvem](/pt/third-party-integrations).

30 

31O tradeoff é que o gateway se torna infraestrutura que sua organização opera. Claude Code adiciona capacidades com cada lançamento, e um gateway que não as encaminha quebra os recursos correspondentes, então o produto gateway precisa ser mantido atualizado conforme Claude Code evolui. A [referência de protocolo de gateway](/pt/llm-gateway-protocol) aborda o que encaminhar.

32 

33<h2 id="how-a-gateway-works">

34 Como um gateway funciona

35</h2>

36 

37Por padrão, Claude Code envia solicitações diretamente para a API da Anthropic em `api.anthropic.com`. Para rotear através de um gateway, defina `ANTHROPIC_BASE_URL` para o endereço do gateway; Claude Code envia as mesmas solicitações lá em vez disso. O gateway autentica o desenvolvedor, anexa a credencial do provedor de sua organização e encaminha cada solicitação para qualquer provedor para o qual esteja configurado.

38 

39`ANTHROPIC_BASE_URL` é a variável de endereço para a maioria dos gateways. Um gateway que fronts um provedor de nuvem específico, como Bedrock, Vertex, Foundry ou Claude Platform on AWS, usa a variável de URL base desse provedor em vez disso; [Formatos de API](/pt/llm-gateway-protocol#api-formats) lista qual variável vai com cada configuração.

40 

41<Frame>

42 <img src="https://mintcdn.com/claude-code/-uq-4JE0W_JO5Er5/images/llm-gateway-flow.svg?fit=max&auto=format&n=-uq-4JE0W_JO5Er5&q=85&s=1c1a8dcc0cfcc3a58652cc8e28cd3e20" alt="Diagrama mostrando Claude Code roteando através de um gateway LLM. Em uma zona de máquinas de desenvolvedor, o CLI Claude Code, extensão VS Code e clientes SDK de CI ou Agent enviam solicitações para o gateway, com a variável de URL base para o formato de API do gateway apontando para ele e cada desenvolvedor mantendo uma credencial por desenvolvedor, e o aplicativo desktop alcança o mesmo gateway através de configuração distribuída pela organização. Em uma zona rotulada sua infraestrutura, o gateway LLM lida com autenticação, rastreamento de uso, orçamentos e roteamento, e encaminha solicitações com a credencial de sua organização. Em uma zona de provedores de modelo, uma seta sólida leva ao provedor que você configura, mostrado como a API Anthropic, e setas tracejadas levam a outras opções de provedor, ilustradas com Amazon Bedrock, Google Vertex AI e Microsoft Foundry como exemplos." width="780" height="322" data-path="images/llm-gateway-flow.svg" />

43</Frame>

44 

45Dois tipos de credencial estão envolvidos:

46 

47* **Credenciais de desenvolvedor**: cada desenvolvedor mantém a sua própria, emitida pelo gateway. Ela os autentica no gateway e os identifica no rastreamento de uso

48* **Credencial do provedor**: o gateway mantém uma credencial para sua conta de provedor, compartilhada por todo o tráfego encaminhado. Você não provisiona chaves de provedor por desenvolvedor

49 

50O gateway encaminha cada solicitação para o provedor que você configura, como a API Anthropic, [Amazon Bedrock](/pt/amazon-bedrock), [Google Vertex AI](/pt/google-vertex-ai), [Microsoft Foundry](/pt/microsoft-foundry) ou [Claude Platform on AWS](/pt/claude-platform-on-aws). Como Claude Code fala apenas com o gateway, a escolha do provedor é a configuração do gateway, não a do cliente.

51 

52<h2 id="roll-out-a-gateway">

53 Implantar um gateway

54</h2>

55 

56Quando você estiver pronto para implantar um gateway LLM para sua organização, a sequência é a mesma qualquer que seja o produto gateway que você escolha:

57 

581. Implante o gateway e dê a ele sua credencial de provedor, para que ele possa autenticar as solicitações que encaminha.

592. Emita a cada desenvolvedor uma credencial de gateway, para que o uso seja atribuído ao desenvolvedor e o offboarding revogue uma credencial.

603. Distribua a configuração através de um [arquivo de configurações gerenciadas](/pt/settings#settings-files) e sua ferramenta de segredos, para que cada máquina receba a URL base e uma credencial. Quando ambos forem distribuídos, os desenvolvedores não configuram nada. Se você não tiver distribuição de configurações em vigor, os desenvolvedores seguem a [página de conexão](/pt/llm-gateway-connect) para definir as variáveis eles mesmos.

614. Faça cada desenvolvedor [verificar a configuração no Claude Code](/pt/llm-gateway-connect#check-for-an-existing-configuration), para que problemas de distribuição apareçam antes de dependerem do gateway.

62 

63[Implantar um gateway LLM para sua organização](/pt/llm-gateway-rollout) percorre cada passo e mostra os arquivos de configuração para distribuir em cada um. O gateway é uma parte da configuração da organização; para aplicação de política, visibilidade de uso e decisões de tratamento de dados, veja [Configurar Claude Code para sua organização](/pt/admin-setup).

64 

65<h2 id="third-party-gateways">

66 Gateways de terceiros

67</h2>

68 

69Qualquer gateway que exponha um [formato de API suportado](/pt/llm-gateway-protocol#api-formats) funciona. Anthropic não endossa, mantém ou audita produtos gateway de terceiros. Implante-os seguindo sua própria documentação, então complete o lado Claude Code do rollout com os [passos de rollout](/pt/llm-gateway-rollout).

70 

71<h2 id="subscriptions-and-gateways">

72 Assinaturas e gateways

73</h2>

74 

75Enquanto uma [variável de credencial de gateway](/pt/llm-gateway-connect#set-the-credential-variable) ou `apiKeyHelper` está ativa, a assinatura claude.ai de um desenvolvedor não é usada: a credencial substitui o login da assinatura para essa sessão, e os limites de uso da assinatura não se aplicam. Esse tráfego é cobrado por token para quem quer que possua a credencial que o gateway encaminha, como sua conta Anthropic Console da organização, ou sua conta Bedrock, Vertex ou Foundry quando o gateway roteia para lá.

76 

77Definir apenas `ANTHROPIC_BASE_URL`, sem uma credencial de gateway, não substitui a assinatura. As solicitações ainda roteiam através do gateway, mas um login claude.ai salvo permanece como a credencial ativa, então seus limites de uso e cobrança se aplicam. Gateways que passam esse tráfego para Anthropic devem encaminhar a capacidade OAuth em `anthropic-beta`; veja a [referência de cabeçalhos de solicitação](/pt/llm-gateway-protocol#request-headers).

78 

79<h2 id="configure-separately-from-the-gateway">

80 Configurar separadamente do gateway

81</h2>

82 

83Um gateway determina para onde as solicitações de API de modelo são enviadas. Seleção de modelo, o resto do tráfego de rede do Claude Code e proxies corporativos são configurados separadamente:

84 

85* **Seleção de modelo**: a URL base decide para onde as solicitações vão, não qual modelo as responde. Escolha o modelo com o comando `/model` ou as variáveis de ambiente de modelo; veja [como definir seu modelo](/pt/model-config#setting-your-model)

86* **Tráfego do lado do cliente**: verificações de versão e telemetria de cliente opcional, ambas desabilitadas com [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/pt/env-vars), e tráfego de login quando um login claude.ai ou Console está em uso, vão para os endpoints de atualização e autenticação da Anthropic em vez do gateway. Veja [requisitos de acesso à rede](/pt/network-config#network-access-requirements) para os domínios

87* **Proxies corporativos**: um proxy definido com `HTTPS_PROXY` fica entre Claude Code e cada servidor com o qual ele fala, incluindo o gateway. Se sua rede requer um proxy, configure ambos; veja [configuração de proxy](/pt/network-config#proxy-configuration)

88 

89<h2 id="related-pages">

90 Páginas relacionadas

91</h2>

92 

93* [Conectar Claude Code a um gateway LLM](/pt/llm-gateway-connect): defina a URL base e credencial em sua própria máquina, com configuração por superfície e uma tabela de solução de problemas

94* [Implantar um gateway LLM para sua organização](/pt/llm-gateway-rollout): a lista de verificação do administrador para implantar um gateway, emitir credenciais de desenvolvedor e distribuir configurações gerenciadas

95* [Referência de protocolo de gateway](/pt/llm-gateway-protocol): o que Claude Code envia a um gateway, para operadores configurando um, abrangendo endpoints, cabeçalhos para encaminhar e passagem de recursos

96* [Configurar Claude Code para sua organização](/pt/admin-setup): as decisões de rollout mais amplas das quais um gateway é uma parte, incluindo aplicação de política e visibilidade de uso

Details

231 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}231 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}

232```232```

233 233 

234Para um gateway de bearer token, passe o mesmo segredo como a entrada `anthropic_api_key` e `ANTHROPIC_AUTH_TOKEN` no bloco `env` do workflow. A ação requer `anthropic_api_key`, `CLAUDE_CODE_OAUTH_TOKEN` ou federação de identidade de carga de trabalho antes de iniciar Claude Code, e não lê `ANTHROPIC_AUTH_TOKEN`, então a entrada satisfaz essa verificação de inicialização enquanto a variável de env coloca a chave no cabeçalho `Authorization` que o gateway lê. A cópia em `x-api-key` é ignorada:234Para um gateway de bearer token, passe o mesmo segredo duas vezes: como a entrada `anthropic_api_key` e como `ANTHROPIC_AUTH_TOKEN` no bloco `env` do workflow. A ação requer `anthropic_api_key`, `CLAUDE_CODE_OAUTH_TOKEN` ou federação de identidade de carga de trabalho antes de iniciar Claude Code, e não lê `ANTHROPIC_AUTH_TOKEN`, então a entrada está lá apenas para satisfazer essa verificação de inicialização. A variável de env é o que coloca a chave no cabeçalho `Authorization` que o gateway lê; a cópia em `x-api-key` é ignorada:

235 235 

236```yaml theme={null}236```yaml theme={null}

237env:237env:


285 285 

286[Claude Code no Slack](/pt/slack) e [Claude Code na web](/pt/claude-code-on-the-web) são produtos hospedados pela Anthropic que sempre usam a API da Anthropic; eles não fazem parte de uma implantação de gateway. Variáveis de gateway definidas na configuração de ambiente de uma sessão em nuvem não são aplicadas. Se seu tráfego deve permanecer no gateway, não ative essas superfícies para esses usuários.286[Claude Code no Slack](/pt/slack) e [Claude Code na web](/pt/claude-code-on-the-web) são produtos hospedados pela Anthropic que sempre usam a API da Anthropic; eles não fazem parte de uma implantação de gateway. Variáveis de gateway definidas na configuração de ambiente de uma sessão em nuvem não são aplicadas. Se seu tráfego deve permanecer no gateway, não ative essas superfícies para esses usuários.

287 287 

288[Remote Control](/pt/remote-control) e [ditado por voz](/pt/voice-dictation) ambos dependem de uma identidade claude.ai: Remote Control para emparelhar uma sessão ao vivo com sua conta e ditado por voz para alcançar o endpoint de transcrição claude.ai. Eles não estão disponíveis enquanto `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou um `apiKeyHelper` está ativo. Para usar qualquer um, desdefina a credencial de gateway e faça login com claude.ai em vez disso; `/doctor` nomeia a variável a desdefir.288[Remote Control](/pt/remote-control) e [ditado por voz](/pt/voice-dictation) ambos dependem de uma identidade claude.ai: Remote Control para emparelhar uma sessão ao vivo com sua conta e ditado por voz para alcançar o endpoint de transcrição claude.ai. Eles não estão disponíveis enquanto `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` ou um `apiKeyHelper` está ativo. {/* min-version: 2.1.196 */}A partir da v2.1.196, Remote Control também está desabilitado enquanto `ANTHROPIC_BASE_URL` aponta para um host não-Anthropic, então fazer login com claude.ai não é suficiente por si .

289 

290Para restaurar qualquer um dos recursos, faça login com claude.ai e desdefina as variáveis de gateway que ele verifica. `/doctor` nomeia a variável de credencial a desdefir.

291 

292* Ditado por voz: desdefina a credencial de gateway

293* Remote Control: desdefina a credencial de gateway e `ANTHROPIC_BASE_URL`

289 294 

290<h2 id="additional-configuration">295<h2 id="additional-configuration">

291 Configuração adicional296 Configuração adicional


318```json theme={null}323```json theme={null}

319{324{

320 "env": {325 "env": {

321 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: acme"326 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: example"

322 }327 }

323}328}

324```329```


388 Rotear para um provedor em nuvem através de um gateway393 Rotear para um provedor em nuvem através de um gateway

389</h3>394</h3>

390 395 

391Essas configurações apontam Claude Code para um gateway através de uma variável de URL base específica do provedor no lugar de `ANTHROPIC_BASE_URL`. Gateways Bedrock e Vertex aceitam formatos de solicitação nativos desses provedores; gateways Foundry e Claude Platform on AWS aceitam o formato Anthropic Messages e diferem apenas em qual variável de URL base os alcança.396Essas configurações apontam Claude Code para um gateway através de uma variável de URL base específica do provedor no lugar de `ANTHROPIC_BASE_URL`. Gateways Bedrock e Agent Platform aceitam formatos de solicitação nativos desses provedores; gateways Foundry e Claude Platform on AWS aceitam o formato Anthropic Messages e diferem apenas em qual variável de URL base os alcança.

392 397 

393Use uma apenas se sua equipe de gateway nomeou especificamente Bedrock, Vertex, Foundry ou Claude Platform on AWS. Se a [solicitação de verificação](#verify-the-connection) acima retornou JSON, você pode pular esta seção.398Use uma apenas se sua equipe de gateway nomeou especificamente Bedrock, Agent Platform, Foundry ou Claude Platform on AWS. Se a [solicitação de verificação](#verify-the-connection) acima retornou JSON, você pode pular esta seção.

394 399 

395Defina o bloco para o provedor que sua equipe de gateway nomeou. As variáveis skip-auth dizem a Claude Code para não assinar solicitações com credenciais de provedor, já que o gateway as mantém. Se o gateway precisa de seu próprio token, adicione `ANTHROPIC_AUTH_TOKEN` após o bloco, exceto para Foundry, que usa `ANTHROPIC_FOUNDRY_API_KEY` conforme mostrado.400Defina o bloco para o provedor que sua equipe de gateway nomeou. As variáveis skip-auth dizem a Claude Code para não assinar solicitações com credenciais de provedor, já que o gateway as mantém. Se o gateway precisa de seu próprio token, adicione `ANTHROPIC_AUTH_TOKEN` após o bloco, exceto para Foundry, que usa `ANTHROPIC_FOUNDRY_API_KEY` conforme mostrado.

396 401 


416 </Tab>421 </Tab>

417</Tabs>422</Tabs>

418 423 

419<h4 id="google-vertex-ai">424<h4 id="google-cloud’s-agent-platform">

420 Google Vertex AI425 Google Cloud's Agent Platform

421</h4>426</h4>

422 427 

423<Tabs>428<Tabs>

Details

8 8 

9Esta página documenta as solicitações que Claude Code envia para um gateway, incluindo os endpoints que ele chama, os headers e campos de corpo que o gateway deve encaminhar, e quais recursos deixam de funcionar quando não o faz. É escrita para operadores que configuram um produto gateway para funcionar com Claude Code.9Esta página documenta as solicitações que Claude Code envia para um gateway, incluindo os endpoints que ele chama, os headers e campos de corpo que o gateway deve encaminhar, e quais recursos deixam de funcionar quando não o faz. É escrita para operadores que configuram um produto gateway para funcionar com Claude Code.

10 10 

11Um [gateway de aplicativos Claude](/pt/claude-apps-gateway) em execução fornece uma versão legível por máquina deste contrato em `GET /protocol`, cobrindo os mesmos requisitos de encaminhamento mais os endpoints específicos do gateway de aplicativos Claude para login SSO, entrega de configurações gerenciadas e telemetria. O gateway de aplicativos Claude é executado a partir do mesmo binário `claude` que a CLI, portanto o [guia de início rápido do gateway de aplicativos Claude](/pt/claude-apps-gateway#quickstart) é o caminho mais curto para uma instância em execução da qual você pode buscar a especificação.

12 

11<Note>13<Note>

12 * Para implantar um gateway existente ou de terceiros para sua organização, consulte [Implantar um gateway LLM](/pt/llm-gateway-rollout)14 * Para implantar um gateway existente ou de terceiros para sua organização, consulte [Implantar um gateway LLM](/pt/llm-gateway-rollout)

13 * Se você é um desenvolvedor individual autenticando Claude Code em um gateway com uma credencial que lhe foi fornecida, consulte [Conectar Claude Code a um gateway LLM](/pt/llm-gateway-connect)15 * Se você é um desenvolvedor individual autenticando Claude Code em um gateway com uma credencial que lhe foi fornecida, consulte [Conectar Claude Code a um gateway LLM](/pt/llm-gateway-connect)


32 Formatos de API34 Formatos de API

33</h2>35</h2>

34 36 

35Um gateway deve expor pelo menos um dos seguintes formatos de API para clientes Claude Code. Qual formato Claude Code fala é determinado pela configuração do cliente: a variável na coluna Selecionado pela tabela abaixo aponta Claude Code para seu gateway nesse formato.37Um gateway deve expor pelo menos um dos seguintes formatos de API para clientes Claude Code. Qual formato Claude Code fala é determinado pela configuração do cliente: a variável na coluna Selecionado por da tabela abaixo aponta Claude Code para seu gateway nesse formato. Agent Platform é o endpoint Claude do Google Cloud, anteriormente Vertex AI; seus nomes de variáveis mantêm a grafia `VERTEX`.

36 38 

37| Formato | Selecionado por | Endpoints | Encaminhar inalterado |39| Formato | Selecionado por | Endpoints | Encaminhar inalterado |

38| :------------------ | :----------------------------------------------------------- | :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |40| :------------------------ | :----------------------------------------------------------- | :----------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |

39| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (opcional) | headers de solicitação `anthropic-beta` e `anthropic-version` |41| Anthropic Messages | `ANTHROPIC_BASE_URL` | `/v1/messages`, `/v1/messages/count_tokens` (opcional) | headers de solicitação `anthropic-beta` e `anthropic-version` |

40| Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` com `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream` | campos de corpo de solicitação `anthropic_beta` e `anthropic_version` |42| Bedrock InvokeModel | `ANTHROPIC_BEDROCK_BASE_URL` com `CLAUDE_CODE_USE_BEDROCK=1` | `/model/{model}/invoke`, `/model/{model}/invoke-with-response-stream` | campos de corpo de solicitação `anthropic_beta` e `anthropic_version` |

41| Vertex rawPredict | `ANTHROPIC_VERTEX_BASE_URL` com `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (opcional) | headers de solicitação `anthropic-beta` e `anthropic-version`, e o campo de corpo de solicitação `anthropic_version` |43| Agent Platform rawPredict | `ANTHROPIC_VERTEX_BASE_URL` com `CLAUDE_CODE_USE_VERTEX=1` | `:rawPredict`, `:streamRawPredict`, `count-tokens:rawPredict` (opcional) | headers de solicitação `anthropic-beta` e `anthropic-version`, e o campo de corpo de solicitação `anthropic_version` |

42 44 

43<h3 id="foundry-and-claude-platform-on-aws">45<h3 id="foundry-and-claude-platform-on-aws">

44 Foundry e Claude Platform on AWS46 Foundry e Claude Platform on AWS


50 Endpoints opcionais e tráfego de inicialização52 Endpoints opcionais e tráfego de inicialização

51</h3>53</h3>

52 54 

53Endpoints de contagem de tokens são os únicos opcionais: quando estão ausentes, Claude Code estima o uso de contexto localmente. Solicitações de inferência são postadas em `/v1/messages?beta=true`, então corresponda no caminho, não na URL completa. O método Vertex anexa sufixos ao caminho do modelo do editor, como em `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`.55Endpoints de contagem de tokens são os únicos opcionais: quando estão ausentes, Claude Code estima o uso de contexto localmente. Solicitações de inferência são postadas em `/v1/messages?beta=true`, então corresponda no caminho, não na URL completa. O método Agent Platform anexa sufixos ao caminho do modelo do editor, como em `/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict`.

54 56 

55Um gateway também vê tráfego de inicialização de melhor esforço que pode rejeitar sem quebrar nada: uma sonda de conectividade `HEAD /`, e em gateways no formato Bedrock uma solicitação `GET /inference-profiles?type=SYSTEM_DEFINED`.57Um gateway também vê tráfego de inicialização de melhor esforço que pode rejeitar sem quebrar nada: uma sonda de conectividade `HEAD /`, e em gateways no formato Bedrock uma solicitação `GET /inference-profiles?type=SYSTEM_DEFINED`.

56 58 


66 68 

67Qual formato o cliente fala determina o que seu gateway recebe. O modo de falha comum é uma incompatibilidade entre o formato que o cliente envia para seu gateway e o formato que o provedor upstream atrás dele aceita.69Qual formato o cliente fala determina o que seu gateway recebe. O modo de falha comum é uma incompatibilidade entre o formato que o cliente envia para seu gateway e o formato que o provedor upstream atrás dele aceita.

68 70 

69* Quando o cliente fala o formato Bedrock ou Vertex, Claude Code envia apenas o subconjunto de seu conjunto completo de capacidades que esses provedores aceitam71* Quando o cliente fala o formato Bedrock ou Agent Platform, Claude Code envia apenas o subconjunto de seu conjunto completo de capacidades que esses provedores aceitam

70* Quando o cliente fala o formato Anthropic Messages, Claude Code envia o conjunto completo, mesmo que seu gateway encaminhe para um upstream Bedrock ou Vertex72* Quando o cliente fala o formato Anthropic Messages, Claude Code envia o conjunto completo, mesmo que seu gateway encaminhe para um upstream Bedrock ou Agent Platform

71 73 

72Fazer essa ponte é trabalho do seu gateway. [Passagem de recursos](#feature-pass-through) descreve o que quebra quando não o faz.74Fazer essa ponte é trabalho do seu gateway. [Passagem de recursos](#feature-pass-through) descreve o que quebra quando não o faz.

73 75 


80| Header | Descrição |82| Header | Descrição |

81| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |83| :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

82| `Authorization`, `x-api-key` | A credencial do gateway do desenvolvedor, em um ou ambos os headers dependendo de qual [variável de credencial](/pt/llm-gateway-connect#set-the-credential-variable) eles definiram |84| `Authorization`, `x-api-key` | A credencial do gateway do desenvolvedor, em um ou ambos os headers dependendo de qual [variável de credencial](/pt/llm-gateway-connect#set-the-credential-variable) eles definiram |

83| `anthropic-version` | Versão da API, atualmente `2023-06-01`. Solicitações no formato Bedrock e Vertex também carregam o campo de corpo `anthropic_version`, cujo valor é a string de dialeto do provedor, não o valor deste header |85| `anthropic-version` | Versão da API, atualmente `2023-06-01`. Solicitações no formato Bedrock e Agent Platform também carregam o campo de corpo `anthropic_version`, cujo valor é a string de dialeto do provedor, não o valor deste header |

84| `anthropic-beta` | Valores de capacidade separados por vírgula para a solicitação. Encaminhe o header verbatim; não faça uma lista de permissões de valores individuais, porque o conjunto muda com lançamentos de Claude Code. Quando o desenvolvedor se autentica com um login claude.ai, que é possível quando `ANTHROPIC_BASE_URL` é definido sem uma variável de credencial de gateway, este header também carrega uma capacidade OAuth que o upstream requer, e removê-lo falha essas solicitações com `401` |86| `anthropic-beta` | Valores de capacidade separados por vírgula para a solicitação. Encaminhe o header verbatim; não faça uma lista de permissões de valores individuais, porque o conjunto muda com lançamentos de Claude Code. Quando o desenvolvedor se autentica com um login claude.ai, que é possível quando `ANTHROPIC_BASE_URL` é definido sem uma variável de credencial de gateway, este header também carrega uma capacidade OAuth que o upstream requer, e removê-lo falha essas solicitações com `401` |

85| `x-claude-code-session-id` | Um identificador único para a sessão atual de Claude Code. Use-o para agregar todas as solicitações de uma sessão sem analisar corpos de solicitação |87| `x-claude-code-session-id` | Um identificador único para a sessão atual de Claude Code. Use-o para agregar todas as solicitações de uma sessão sem analisar corpos de solicitação |

86| `x-claude-code-agent-id` | Identificador do [subagente](/pt/sub-agents) que emitiu a solicitação, presente apenas em solicitações de um agente que Claude Code gerou dentro da sessão. Use-o com o ID da sessão para atribuir custo a agentes paralelos |88| `x-claude-code-agent-id` | Identificador do [subagente](/pt/sub-agents) que emitiu a solicitação, presente apenas em solicitações de um agente que Claude Code gerou dentro da sessão. Use-o com o ID da sessão para atribuir custo a agentes paralelos |


98 100 

99Ao encaminhar para um upstream no formato Anthropic, passe headers de solicitação `anthropic-*` e campos de corpo de solicitação através inalterados em vez de fazer uma lista de permissões dos que você vê hoje. Um gateway fixado a uma lista observada remove o header ou campo da próxima capacidade e quebra-o no lançamento que a introduz.101Ao encaminhar para um upstream no formato Anthropic, passe headers de solicitação `anthropic-*` e campos de corpo de solicitação através inalterados em vez de fazer uma lista de permissões dos que você vê hoje. Um gateway fixado a uma lista observada remove o header ou campo da próxima capacidade e quebra-o no lançamento que a introduz.

100 102 

101A exceção é um upstream não-Anthropic, como Bedrock ou Vertex, onde fazer a ponte da diferença de schema é trabalho do gateway; consulte [passagem de recursos](#feature-pass-through).103A exceção é um upstream não-Anthropic, como Bedrock ou Agent Platform, onde fazer a ponte da diferença de schema é trabalho do gateway; consulte [passagem de recursos](#feature-pass-through).

102 104 

103<h2 id="system-prompt-attribution-block">105<h2 id="system-prompt-attribution-block">

104 Bloco de atribuição do prompt do sistema106 Bloco de atribuição do prompt do sistema


112 Passagem de recursos114 Passagem de recursos

113</h2>115</h2>

114 116 

115Claude Code trata um gateway `ANTHROPIC_BASE_URL` como um endpoint no formato Anthropic e envia a ele os headers beta e campos de corpo de solicitação que envia para `api.anthropic.com`, exceto um pequeno conjunto de diagnósticos e padrões reservados para conexões diretas.117Claude Code trata um gateway `ANTHROPIC_BASE_URL` como um endpoint no formato Anthropic e envia a ele os headers beta e campos de corpo de solicitação que envia para `api.anthropic.com`, exceto um pequeno conjunto de diagnósticos e padrões reservados para conexões diretas, como o padrão de streaming de ferramenta de granulação fina coberto abaixo. Esse conjunto varia por lançamento, então não dependa de seu conteúdo.

116 118 

117Capacidades que adicionam campos de corpo os emparelham com um header beta, e o par viaja junto. Um gateway que remove o header enquanto passa o corpo, ou encaminha um corpo no formato Anthropic para um upstream com um schema diferente, produz erros `400` difíceis; apenas quando ambas as metades estão ausentes juntas o recurso desativa silenciosamente. Um gateway que reescreve ou redige corpos de solicitação para inspeção de conteúdo quebra o emparelhamento da mesma forma que remover o faz, então inspecione sem modificar. A tabela observa onde um recurso se desvia do emparelhamento.119Capacidades que adicionam campos de corpo os emparelham com um header beta, e o par viaja junto. Um gateway que remove o header enquanto passa o corpo, ou encaminha um corpo no formato Anthropic para um upstream com um schema diferente, produz erros `400` difíceis; apenas quando ambas as metades estão ausentes juntas o recurso desativa silenciosamente. Um gateway que reescreve ou redige corpos de solicitação para inspeção de conteúdo quebra o emparelhamento da mesma forma que remover o faz, então inspecione sem modificar. A tabela observa onde um recurso se desvia do emparelhamento.

118 120 


124| [Gerenciamento de contexto](https://platform.claude.com/docs/en/build-with-claude/context-management) | Header beta de gerenciamento de contexto emparelhado com o campo de corpo `context_management` | `400` com `Extra inputs are not permitted`. Comum quando um gateway aceita solicitações no formato Anthropic mas as encaminha para Bedrock | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/pt/env-vars) |126| [Gerenciamento de contexto](https://platform.claude.com/docs/en/build-with-claude/context-management) | Header beta de gerenciamento de contexto emparelhado com o campo de corpo `context_management` | `400` com `Extra inputs are not permitted`. Comum quando um gateway aceita solicitações no formato Anthropic mas as encaminha para Bedrock | Encaminhe ambos, ou [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/pt/env-vars) |

125| [Contexto estendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) e [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Apenas headers beta, sem campo de corpo | Silenciosamente indisponível quando o header é removido; o upstream nunca vê a solicitação de capacidade | Encaminhe `anthropic-beta` verbatim |127| [Contexto estendido](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window) e [pensamento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | Apenas headers beta, sem campo de corpo | Silenciosamente indisponível quando o header é removido; o upstream nunca vê a solicitação de capacidade | Encaminhe `anthropic-beta` verbatim |

126| Campos de [ferramenta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Headers beta relacionados a ferramentas emparelhados com campos de schema de ferramenta como `strict` e `defer_loading` | `400` nomeando o campo de schema de ferramenta não reconhecido quando o corpo passa sem seu header | Encaminhe ambos, ou `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` |128| Campos de [ferramenta](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) beta | Headers beta relacionados a ferramentas emparelhados com campos de schema de ferramenta como `strict` e `defer_loading` | `400` nomeando o campo de schema de ferramenta não reconhecido quando o corpo passa sem seu header | Encaminhe ambos, ou `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` |

127| [Esforço](https://platform.claude.com/docs/en/build-with-claude/effort) e [saídas estruturadas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | O campo de corpo `output_config` carrega esforço, formato de saída estruturada e configurações de orçamento de tarefa; cada um emparelhado com seu próprio header beta | `400` nomeando `output_config`, frequentemente `Extra inputs are not permitted`, em upstreams Bedrock e Vertex | Encaminhe o campo e seus headers juntos |129| [Esforço](https://platform.claude.com/docs/en/build-with-claude/effort) e [saídas estruturadas](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | O campo de corpo `output_config` carrega esforço, formato de saída estruturada e configurações de orçamento de tarefa; cada um emparelhado com seu próprio header beta | `400` nomeando `output_config`, frequentemente `Extra inputs are not permitted`, em upstreams Bedrock e Agent Platform | Encaminhe o campo e seus headers juntos |

128| [Contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sem emparelhamento beta; usa o endpoint `count_tokens` | Claude Code volta a estimar o uso de contexto localmente | Exponha o endpoint se quiser contagens exatas |130| [Contagem de tokens](https://platform.claude.com/docs/en/build-with-claude/token-counting) | Sem emparelhamento beta; usa o endpoint `count_tokens` | Claude Code volta a estimar o uso de contexto localmente | Exponha o endpoint se quiser contagens exatas |

129 131 

130As [variáveis](/pt/model-config) `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` declaram capacidades de modelo apenas nas configurações do provedor: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, e [`CLAUDE_CODE_USE_MANTLE`](/pt/amazon-bedrock#use-the-mantle-endpoint). Elas não têm efeito atrás de um gateway `ANTHROPIC_BASE_URL`.132As [variáveis](/pt/model-config) `ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES` declaram capacidades de modelo apenas nas configurações do provedor: `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, e [`CLAUDE_CODE_USE_MANTLE`](/pt/amazon-bedrock#use-the-mantle-endpoint). Elas não têm efeito atrás de um gateway `ANTHROPIC_BASE_URL`.


182{184{

183 "data": [185 "data": [

184 { "id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6" },186 { "id": "claude-sonnet-4-6", "display_name": "Claude Sonnet 4.6" },

185 { "id": "claude-opus-4-7" }187 { "id": "claude-opus-4-8" }

186 ]188 ]

187}189}

188```190```


191 Entradas do seletor e cache193 Entradas do seletor e cache

192</h3>194</h3>

193 195 

194O seletor é a lista de modelos interativa que abre quando um desenvolvedor executa `/model` em Claude Code. Cada entrada descoberta é rotulada "Do gateway" e usa `display_name` quando fornecido. Um ID descoberto é ignorado apenas quando corresponde exatamente a uma linha já no seletor, ou quando tanto o ID descoberto quanto o existente se resolvem para [Fable](/pt/model-config#work-with-fable-5). Linhas integradas são chaveadas em aliases como `sonnet`, então um ID descoberto como `claude-sonnet-4-6` adiciona sua própria linha "Do gateway" ao lado da entrada integrada. A [configuração gerenciada `availableModels`](/pt/settings#available-settings) limita o que a descoberta pode adicionar.196O seletor é a lista de modelos interativa que abre quando um desenvolvedor executa `/model` em Claude Code. Cada entrada descoberta é rotulada "Do gateway" e usa `display_name` quando fornecido. A [configuração gerenciada `availableModels`](/pt/settings#available-settings) limita o que a descoberta pode adicionar.

197 

198Um ID descoberto é ignorado apenas quando corresponde exatamente a uma linha já no seletor, ou quando tanto o ID descoberto quanto o existente se resolvem para [Fable](/pt/model-config#work-with-fable-5). Linhas integradas são chaveadas em aliases como `sonnet`, então um ID descoberto como `claude-sonnet-4-6` adiciona sua própria linha "Do gateway" ao lado da entrada integrada em vez de substituí-la.

195 199 

196Os resultados são armazenados em cache em `~/.claude/cache/gateway-models.json`, ou `%USERPROFILE%\.claude\cache\gateway-models.json` no Windows, e atualizados em cada inicialização. Se a solicitação falhar ou o gateway não implementar `/v1/models`, o seletor volta para a lista em cache da inicialização anterior ou para a lista de modelos integrada. Se seu gateway serve modelos Claude sob aliases que não correspondem ao filtro de descoberta, desenvolvedores podem adicionar esses aliases manualmente com as [variáveis de configuração de modelo](/pt/model-config).200Os resultados são armazenados em cache em `~/.claude/cache/gateway-models.json`, ou `%USERPROFILE%\.claude\cache\gateway-models.json` no Windows, e atualizados em cada inicialização. Se a solicitação falhar ou o gateway não implementar `/v1/models`, o seletor volta para a lista em cache da inicialização anterior ou para a lista de modelos integrada. Se seu gateway serve modelos Claude sob aliases que não correspondem ao filtro de descoberta, desenvolvedores podem adicionar esses aliases manualmente com as [variáveis de configuração de modelo](/pt/model-config).

197 201 


201 205 

202Para o resto do conjunto de documentação do gateway e as referências de API subjacentes:206Para o resto do conjunto de documentação do gateway e as referências de API subjacentes:

203 207 

204* [Visão geral de gateways LLM](/pt/llm-gateway): o que é um gateway e como ele interage com assinaturas claude.ai208* [Visão geral de gateway](/pt/gateways): o que é um gateway e como escolher entre o gateway de aplicativos Claude e outro produto

209* [Outros gateways LLM](/pt/llm-gateway): como implantar um gateway que sua organização executa e como ele interage com assinaturas claude.ai

205* [Implantar um gateway LLM para sua organização](/pt/llm-gateway-rollout): a lista de verificação do administrador que usa este contrato210* [Implantar um gateway LLM para sua organização](/pt/llm-gateway-rollout): a lista de verificação do administrador que usa este contrato

206* [Conectar Claude Code a um gateway LLM](/pt/llm-gateway-connect): configuração por desenvolvedor e a tabela de solução de problemas211* [Conectar Claude Code a um gateway LLM](/pt/llm-gateway-connect): configuração por desenvolvedor e a tabela de solução de problemas

207* [Referência de headers beta](https://platform.claude.com/docs/en/api/beta-headers): o conjunto atual de valores `anthropic-beta`212* [Referência de headers beta](https://platform.claude.com/docs/en/api/beta-headers): o conjunto atual de valores `anthropic-beta`

Details

22* Um gateway implantado em sua infraestrutura, servindo HTTPS no endereço exato que você distribuirá aos desenvolvedores, não em um endereço que redireciona para ele, e configurado para rotear nomes de modelos Claude para seu provedor22* Um gateway implantado em sua infraestrutura, servindo HTTPS no endereço exato que você distribuirá aos desenvolvedores, não em um endereço que redireciona para ele, e configurado para rotear nomes de modelos Claude para seu provedor

23* Uma credencial de provedor para o gateway encaminhar com:23* Uma credencial de provedor para o gateway encaminhar com:

24 * Para a API Anthropic: uma chave de API do [Claude Console](https://platform.claude.com/settings/keys)24 * Para a API Anthropic: uma chave de API do [Claude Console](https://platform.claude.com/settings/keys)

25 * Para um provedor de nuvem: credenciais de nuvem com acesso ao modelo. Consulte os pré-requisitos na página [Amazon Bedrock](/pt/amazon-bedrock#prerequisites), [Google Vertex AI](/pt/google-vertex-ai#prerequisites) ou [Microsoft Foundry](/pt/microsoft-foundry#prerequisites)25 * Para um provedor de nuvem: credenciais de nuvem com acesso ao modelo. Consulte os pré-requisitos na página [Amazon Bedrock](/pt/amazon-bedrock#prerequisites), [Google Cloud's Agent Platform](/pt/google-vertex-ai#prerequisites) ou [Microsoft Foundry](/pt/microsoft-foundry#prerequisites)

26* Uma maneira de entregar arquivos de configurações para máquinas de desenvolvedores, como MDM ou gerenciamento de configuração26* Uma maneira de entregar arquivos de configurações para máquinas de desenvolvedores, como MDM ou gerenciamento de configuração

27 * Se você ainda não tiver uma, [como as configurações chegam aos dispositivos](/pt/admin-setup#decide-how-settings-reach-devices) compara as opções27 * Se você ainda não tiver uma, [como as configurações chegam aos dispositivos](/pt/admin-setup#decide-how-settings-reach-devices) compara as opções

28 28 

mcp.md +57 −27

Details

111 111 

112Servidores Stdio são executados como processos locais em sua máquina. Eles são ideais para ferramentas que precisam de acesso direto ao sistema ou scripts personalizados.112Servidores Stdio são executados como processos locais em sua máquina. Eles são ideais para ferramentas que precisam de acesso direto ao sistema ou scripts personalizados.

113 113 

114Claude Code define `CLAUDE_PROJECT_DIR` no ambiente do servidor gerado para a raiz do projeto, para que seu servidor possa resolver caminhos relativos ao projeto sem depender do diretório de trabalho. Este é o mesmo diretório que hooks recebem em sua variável `CLAUDE_PROJECT_DIR`. Leia-o de dentro do seu processo de servidor, por exemplo `process.env.CLAUDE_PROJECT_DIR` em Node ou `os.environ["CLAUDE_PROJECT_DIR"]` em Python. Seu servidor também pode chamar a solicitação MCP `roots/list`, que retorna o diretório do qual Claude Code foi iniciado.114Claude Code define `CLAUDE_PROJECT_DIR` no ambiente do servidor gerado para a raiz do projeto, para que seu servidor possa resolver caminhos relativos ao projeto sem depender do diretório de trabalho. Este é o mesmo diretório que hooks recebem em sua variável `CLAUDE_PROJECT_DIR`. Leia-o de dentro do seu processo de servidor, por exemplo `process.env.CLAUDE_PROJECT_DIR` em Node ou `os.environ["CLAUDE_PROJECT_DIR"]` em Python.

115 

116Seu servidor também pode chamar a solicitação MCP `roots/list`, que retorna o diretório do qual Claude Code foi iniciado.

115 117 

116Esta variável é definida no ambiente do servidor, não no ambiente do próprio Claude Code, portanto referenciá-la via expansão `${VAR}` em um `.mcp.json` com escopo de projeto ou usuário `command` ou `args` requer um padrão como `${CLAUDE_PROJECT_DIR:-.}`. As configurações MCP fornecidas por plugins substituem `${CLAUDE_PROJECT_DIR}` diretamente e não precisam do padrão.118Esta variável é definida no ambiente do servidor, não no ambiente do próprio Claude Code, portanto referenciá-la via expansão `${VAR}` em um `.mcp.json` com escopo de projeto ou usuário `command` ou `args` requer um padrão como `${CLAUDE_PROJECT_DIR:-.}`. As configurações MCP fornecidas por plugins substituem `${CLAUDE_PROJECT_DIR}` diretamente e não precisam do padrão.

117 119 


176 178 

177Servidores com escopo de projeto de `.mcp.json` que estão aguardando sua aprovação aparecem em `claude mcp list` como `⏸ Pending approval`. Execute `claude` interativamente para revisar e aprovar. `claude mcp get <name>` mostra servidores pendentes como `⏸ Pending approval` e servidores rejeitados como `✗ Rejected`.179Servidores com escopo de projeto de `.mcp.json` que estão aguardando sua aprovação aparecem em `claude mcp list` como `⏸ Pending approval`. Execute `claude` interativamente para revisar e aprovar. `claude mcp get <name>` mostra servidores pendentes como `⏸ Pending approval` e servidores rejeitados como `✗ Rejected`.

178 180 

181A partir da v2.1.196, `claude mcp list` e `claude mcp get` leem aprovações `.mcp.json` apenas de arquivos de configurações que não estão verificados no repositório até que você confie no workspace executando `claude` nele e aceitando a caixa de diálogo de confiança do workspace. Um repositório clonado não pode aprovar seus próprios servidores: [`enableAllProjectMcpServers` ou `enabledMcpjsonServers`](/pt/settings#available-settings) confirmado no `.claude/settings.json` do projeto é ignorado em uma pasta não confiável, e o servidor permanece em `⏸ Pending approval` em vez de estar conectado e verificado de saúde.

182 

183As aprovações dessas fontes ainda se aplicam em uma pasta não confiável:

184 

185* seu `~/.claude/settings.json` do usuário

186* configurações gerenciadas

187* configurações passadas com `--settings`

188* `.claude/settings.local.json`, desde que git não a rastreie

189 

190Uma entrada `disabledMcpjsonServers` em qualquer arquivo de configurações ainda rejeita o servidor.

191 

179O painel `/mcp` mostra a contagem de ferramentas ao lado de cada servidor conectado e sinaliza servidores que anunciam a capacidade de ferramentas, mas não expõem nenhuma ferramenta.192O painel `/mcp` mostra a contagem de ferramentas ao lado de cada servidor conectado e sinaliza servidores que anunciam a capacidade de ferramentas, mas não expõem nenhuma ferramenta.

180 193 

181Se sua solicitação precisar de ferramentas de um servidor que ainda está se conectando em segundo plano, Claude aguarda esse servidor antes de continuar. Com [pesquisa de ferramentas](#scale-with-mcp-tool-search) habilitada, que é o padrão, a espera acontece dentro da chamada `ToolSearch`. Em configurações sem pesquisa de ferramentas, como Vertex AI, um `ANTHROPIC_BASE_URL` personalizado, ou `ENABLE_TOOL_SEARCH=false`, Claude usa a ferramenta `WaitForMcpServers` em vez disso.194Se sua solicitação precisar de ferramentas de um servidor que ainda está se conectando em segundo plano, Claude aguarda esse servidor antes de continuar. Com [pesquisa de ferramentas](#scale-with-mcp-tool-search) habilitada, que é o padrão, a espera acontece dentro da chamada `ToolSearch`. Em configurações sem pesquisa de ferramentas, como Vertex AI, um `ANTHROPIC_BASE_URL` personalizado, ou `ENABLE_TOOL_SEARCH=false`, Claude usa a ferramenta `WaitForMcpServers` em vez disso.


208 Dicas:221 Dicas:

209 222 

210 * Use a flag `--scope` para especificar onde a configuração é armazenada:223 * Use a flag `--scope` para especificar onde a configuração é armazenada:

211 * `local` (padrão): Disponível apenas para você no projeto atual (era chamado de `project` em versões mais antigas)224 * `local` (padrão): Disponível apenas para você no projeto atual. Versões mais antigas chamavam este escopo de `project`

212 * `project`: Compartilhado com todos no projeto via arquivo `.mcp.json`225 * `project`: Compartilhado com todos no projeto via arquivo `.mcp.json`

213 * `user`: Disponível para você em todos os projetos (era chamado de `global` em versões mais antigas)226 * `user`: Disponível para você em todos os projetos. Versões mais antigas chamavam este escopo de `global`

214 * Defina variáveis de ambiente com flags `--env` (por exemplo, `--env KEY=value`)227 * Defina variáveis de ambiente com flags `--env` (por exemplo, `--env KEY=value`)

215 * Configure o tempo limite de inicialização do servidor MCP usando a variável de ambiente MCP\_TIMEOUT (por exemplo, `MCP_TIMEOUT=10000 claude` define um tempo limite de 10 segundos)228 * Configure o tempo limite de inicialização do servidor MCP usando a variável de ambiente `MCP_TIMEOUT` (por exemplo, `MCP_TIMEOUT=10000 claude` define um tempo limite de 10 segundos)

216 * Defina um tempo limite de execução de ferramenta por servidor adicionando um campo `timeout` em milissegundos à entrada `.mcp.json` desse servidor, por exemplo `"timeout": 600000` para dez minutos. Isso substitui a variável de ambiente `MCP_TOOL_TIMEOUT` apenas para esse servidor229 * Defina um tempo limite de execução de ferramenta por servidor adicionando um campo `timeout` em milissegundos à entrada `.mcp.json` desse servidor, por exemplo `"timeout": 600000` para dez minutos. Isso substitui a variável de ambiente `MCP_TOOL_TIMEOUT` apenas para esse servidor

217 * Claude Code exibirá um aviso quando a saída da ferramenta MCP exceder 10.000 tokens. Para aumentar este limite, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS` (por exemplo, `MAX_MCP_OUTPUT_TOKENS=50000`)230 * Claude Code exibirá um aviso quando a saída da ferramenta MCP exceder 10.000 tokens. Para aumentar este limite, defina a variável de ambiente `MAX_MCP_OUTPUT_TOKENS` (por exemplo, `MAX_MCP_OUTPUT_TOKENS=50000`)

218 * Use `/mcp` para autenticar com servidores remotos que exigem autenticação OAuth 2.0231 * Use `/mcp` para autenticar com servidores remotos que exigem autenticação OAuth 2.0

219</Tip>232</Tip>

220 233 

221O `timeout` por servidor é um limite de tempo de parede rígido por chamada de ferramenta, e notificações de progresso do servidor não o estendem. Valores abaixo de 1000 são ignorados e caem para `MCP_TOOL_TIMEOUT`, ou para seu padrão de cerca de 28 horas quando essa variável não está definida. {/* min-version: 2.1.162 */}Antes da v2.1.162, valores abaixo de 1000 eram arredondados para um segundo. Para servidores HTTP e SSE, o orçamento de primeiro byte por solicitação de busca tem um mínimo de 60 segundos.234O `timeout` por servidor é um limite de tempo de parede rígido por chamada de ferramenta, e notificações de progresso do servidor não o estendem. Valores abaixo de 1000 são ignorados e caem para `MCP_TOOL_TIMEOUT`, ou para seu padrão de cerca de 28 horas quando essa variável não está definida. {/* min-version: 2.1.162 */}Antes da v2.1.162, valores abaixo de 1000 eram arredondados para um segundo.

235 

236Para servidores HTTP e SSE, o orçamento de primeiro byte por solicitação de busca tem um mínimo de 60 segundos.

222 237 

223A partir da v2.1.187, uma chamada de ferramenta para um servidor HTTP remoto, SSE, WebSocket, ou [conector claude.ai](#use-mcp-servers-from-claude-ai) que não envia resposta e nenhuma notificação de progresso por 5 minutos é abortada com um erro em vez de aguardar o limite de tempo de parede. Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação. Servidores Stdio são processos locais e não estão sujeitos ao tempo limite de inatividade.238A partir da v2.1.187, uma chamada de ferramenta para um servidor HTTP remoto, SSE, WebSocket, ou [conector claude.ai](#use-mcp-servers-from-claude-ai) que não envia resposta e nenhuma notificação de progresso por 5 minutos é abortada com um erro em vez de aguardar o limite de tempo de parede. Defina a variável de ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/pt/env-vars) em milissegundos para alterar a janela de inatividade, ou defina-a como `0` para desabilitar a verificação. Servidores Stdio são processos locais e não estão sujeitos ao tempo limite de inatividade.

224 239 


233* Plugins definem servidores MCP em `.mcp.json` na raiz do plugin ou inline em `plugin.json`248* Plugins definem servidores MCP em `.mcp.json` na raiz do plugin ou inline em `plugin.json`

234* Quando um plugin está habilitado, seus servidores MCP iniciam automaticamente249* Quando um plugin está habilitado, seus servidores MCP iniciam automaticamente

235* As ferramentas MCP do plugin aparecem junto com as ferramentas MCP configuradas manualmente250* As ferramentas MCP do plugin aparecem junto com as ferramentas MCP configuradas manualmente

236* Os servidores de plugins são gerenciados através da instalação de plugins (não comandos `/mcp`)251* Os servidores de plugins são gerenciados através da instalação de plugins, não comandos `/mcp`

237 252 

238**Exemplo de configuração MCP de plugin**:253**Exemplo de configuração MCP de plugin**:

239 254 


272* **Ciclo de vida automático**: Na inicialização da sessão, os servidores para plugins habilitados se conectam automaticamente. Se você habilitar ou desabilitar um plugin durante uma sessão, execute `/reload-plugins` para conectar ou desconectar seus servidores MCP287* **Ciclo de vida automático**: Na inicialização da sessão, os servidores para plugins habilitados se conectam automaticamente. Se você habilitar ou desabilitar um plugin durante uma sessão, execute `/reload-plugins` para conectar ou desconectar seus servidores MCP

273* **Variáveis de ambiente**: use `${CLAUDE_PLUGIN_ROOT}` para arquivos agrupados do plugin, `${CLAUDE_PLUGIN_DATA}` para [estado persistente](/pt/plugins-reference#persistent-data-directory) que sobrevive a atualizações de plugins, e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável288* **Variáveis de ambiente**: use `${CLAUDE_PLUGIN_ROOT}` para arquivos agrupados do plugin, `${CLAUDE_PLUGIN_DATA}` para [estado persistente](/pt/plugins-reference#persistent-data-directory) que sobrevive a atualizações de plugins, e `${CLAUDE_PROJECT_DIR}` para a raiz do projeto estável

274* **Acesso a variáveis de ambiente do usuário**: Acesso às mesmas variáveis de ambiente que servidores configurados manualmente289* **Acesso a variáveis de ambiente do usuário**: Acesso às mesmas variáveis de ambiente que servidores configurados manualmente

275* **Múltiplos tipos de transporte**: Suporte para transportes stdio, SSE, HTTP e WebSocket (o suporte de transporte pode variar por servidor)290* **Múltiplos tipos de transporte**: Suporte para transportes stdio, SSE, HTTP e WebSocket, embora o suporte de transporte possa variar por servidor

276 291 

277**Visualizando servidores MCP de plugins**:292**Visualizando servidores MCP de plugins**:

278 293 


408 423 

409**Sintaxe suportada:**424**Sintaxe suportada:**

410 425 

411* `${VAR}` - Expande para o valor da variável de ambiente `VAR`426* `${VAR}`: expande para o valor da variável de ambiente `VAR`

412* `${VAR:-default}` - Expande para `VAR` se definida, caso contrário usa `default`427* `${VAR:-default}`: expande para `VAR` se definida, caso contrário usa `default`

413 428 

414**Locais de expansão:**429**Locais de expansão:**

415As variáveis de ambiente podem ser expandidas em:430As variáveis de ambiente podem ser expandidas em:

416 431 

417* `command` - O caminho do executável do servidor432* `command`: o caminho do executável do servidor

418* `args` - Argumentos de linha de comando433* `args`: argumentos de linha de comando

419* `env` - Variáveis de ambiente passadas para o servidor434* `env`: variáveis de ambiente passadas para o servidor

420* `url` - Para tipos de servidor HTTP435* `url`: para tipos de servidor HTTP

421* `headers` - Para autenticação de servidor HTTP436* `headers`: para autenticação de servidor HTTP

422 437 

423**Exemplo com expansão de variável:**438**Exemplo com expansão de variável:**

424 439 


524 539 

525Muitos servidores MCP baseados em nuvem exigem autenticação. Claude Code suporta OAuth 2.0 para conexões seguras.540Muitos servidores MCP baseados em nuvem exigem autenticação. Claude Code suporta OAuth 2.0 para conexões seguras.

526 541 

527Claude Code marca um servidor remoto como necessitando autenticação quando o servidor responde com `401 Unauthorized` ou `403 Forbidden`. Qualquer código de status sinaliza o servidor em `/mcp` para que você possa completar o fluxo OAuth. Um servidor personalizado que retorna um cabeçalho `WWW-Authenticate` apontando para seu servidor de autorização obtém a mesma descoberta automática que qualquer outro servidor remoto.542Claude Code marca um servidor remoto como necessitando autenticação quando o servidor responde com `401 Unauthorized` ou `403 Forbidden`. Qualquer código de status sinaliza o servidor em `/mcp` para que você possa completar o fluxo OAuth.

543 

544A partir da v2.1.195, quando uma atualização de token falha porque o servidor rejeita o token de atualização armazenado, Claude Code imediatamente mostra um aviso apontando para `/mcp`. O menu do servidor conectado lá oferece Re-autenticar, para que você possa fazer login novamente antes que a próxima chamada de ferramenta falhe.

545 

546Um servidor personalizado que retorna um cabeçalho `WWW-Authenticate` apontando para seu servidor de autorização obtém a mesma descoberta automática que qualquer outro servidor remoto.

547 

548A partir da v2.1.193, Claude Code também mostra um aviso de inicialização quando um ou mais servidores configurados precisam de autenticação, para que você não tenha que abrir `/mcp` para descobrir quais servidores precisam de login.

549 

550No modo não interativo não há painel `/mcp`, então Claude Code não pode executar o fluxo OAuth para você. A partir da v2.1.196, quando um servidor configurado precisa de autenticação durante uma execução `claude -p` ou Agent SDK com [busca de ferramentas](#scale-with-mcp-tool-search) ativada, que é o padrão, Claude Code informa ao Claude que as ferramentas do servidor estão indisponíveis até que você o autorize. Claude pode então nomear o servidor que precisa de login em vez de responder como se o servidor não estivesse configurado. Complete o login de uma sessão interativa com `/mcp` ou `claude mcp login <name>`.

528 551 

529Se você configurou `headers.Authorization` para o servidor e o servidor rejeita esse cabeçalho, Claude Code relata a conexão como falha em vez de voltar para OAuth. Verifique se o token é válido para o endpoint MCP, ou remova o cabeçalho para usar o fluxo OAuth.552Se você configurou `headers.Authorization` para o servidor e o servidor rejeita esse cabeçalho, Claude Code relata a conexão como falha em vez de voltar para OAuth. Verifique se o token é válido para o endpoint MCP, ou remova o cabeçalho para usar o fluxo OAuth.

530 553 


710 733 

711`oauth.scopes` tem precedência sobre `authServerMetadataUrl` e os escopos que o servidor descobre em `/.well-known`. Deixe-o indefinido para permitir que o servidor MCP determine o conjunto de escopos solicitado.734`oauth.scopes` tem precedência sobre `authServerMetadataUrl` e os escopos que o servidor descobre em `/.well-known`. Deixe-o indefinido para permitir que o servidor MCP determine o conjunto de escopos solicitado.

712 735 

736A partir da v2.1.196, quando `oauth.scopes` não está definido, Claude Code solicita o escopo fornecido pelo cabeçalho `WWW-Authenticate` do servidor ou seus metadados de recurso protegido, e não envia nenhum parâmetro `scope` quando nenhum dos dois fornece um. Ele não solicita mais o catálogo completo de `scopes_supported` dos metadados do servidor de autorização descobertos automaticamente. Solicitar esse catálogo fez com que provedores de identidade que anunciam escopos apenas para administrador ou escopos de modelo rejeitassem a solicitação de autorização com um erro `invalid_scope`. Os metadados obtidos de um `authServerMetadataUrl` configurado ainda fornecem seus `scopes_supported` como os escopos solicitados.

737 

713Se o servidor de autorização anuncia `offline_access` em `scopes_supported`, Claude Code o acrescenta aos escopos fixados para que o token de acesso possa ser atualizado sem um novo login no navegador.738Se o servidor de autorização anuncia `offline_access` em `scopes_supported`, Claude Code o acrescenta aos escopos fixados para que o token de acesso possa ser atualizado sem um novo login no navegador.

714 739 

715Se o servidor depois retorna um 403 `insufficient_scope` para uma chamada de ferramenta, Claude Code se autentica novamente com os mesmos escopos fixados. Amplie `oauth.scopes` quando uma ferramenta que você precisa requer um escopo fora do pino.740Se o servidor depois retorna um 403 `insufficient_scope` para uma chamada de ferramenta, Claude Code se autentica novamente com os mesmos escopos fixados. Amplie `oauth.scopes` quando uma ferramenta que você precisa requer um escopo fora do conjunto fixado.

716 741 

717<h3 id="use-dynamic-headers-for-custom-authentication">742<h3 id="use-dynamic-headers-for-custom-authentication">

718 Usar cabeçalhos dinâmicos para autenticação personalizada743 Usar cabeçalhos dinâmicos para autenticação personalizada

719</h3>744</h3>

720 745 

721Se seu servidor MCP usar um esquema de autenticação diferente de OAuth (como Kerberos, tokens de curta duração ou um SSO interno), use `headersHelper` para gerar cabeçalhos de solicitação no momento da conexão. Claude Code executa o comando e mescla sua saída nos cabeçalhos de conexão.746Se seu servidor MCP usar um esquema de autenticação diferente de OAuth, como Kerberos, tokens de curta duração ou um SSO interno, use `headersHelper` para gerar cabeçalhos de solicitação no momento da conexão. Claude Code executa o comando e mescla sua saída nos cabeçalhos de conexão.

722 747 

723```json theme={null}748```json theme={null}

724{749{


752* O comando é executado em um shell com um tempo limite de 10 segundos777* O comando é executado em um shell com um tempo limite de 10 segundos

753* Cabeçalhos dinâmicos substituem qualquer `headers` estático com o mesmo nome778* Cabeçalhos dinâmicos substituem qualquer `headers` estático com o mesmo nome

754 779 

755O auxiliar é executado novamente em cada conexão (no início da sessão e ao reconectar). Não há cache, então seu script é responsável por qualquer reutilização de token.780O auxiliar é executado novamente em cada conexão, no início da sessão e ao reconectar. Não há cache, então seu script é responsável por qualquer reutilização de token.

781 

782A partir da v2.1.193, se uma chamada de ferramenta retorna `401 Unauthorized` ou `403 Forbidden`, Claude Code automaticamente executa novamente o auxiliar, reconecta com os cabeçalhos atualizados e tenta novamente a chamada uma vez. Claude Code marca o servidor como necessitando autenticação em `/mcp` apenas se essa tentativa também falhar.

756 783 

757Claude Code define essas variáveis de ambiente ao executar o auxiliar:784Claude Code define essas variáveis de ambiente ao executar o auxiliar:

758 785 

759| Variável | Valor |786| Variável | Valor |

760| :---------------------------- | :--------------------- |787| :---------------------------- | :------------------------------------------------------------------------------------------------------------------- |

761| `CLAUDE_CODE_MCP_SERVER_NAME` | o nome do servidor MCP |788| `CLAUDE_CODE_MCP_SERVER_NAME` | o nome do servidor MCP |

762| `CLAUDE_CODE_MCP_SERVER_URL` | a URL do servidor MCP |789| `CLAUDE_CODE_MCP_SERVER_URL` | a URL do servidor MCP |

790| `CLAUDE_PLUGIN_ROOT` | o diretório raiz do plugin. Definido apenas quando um [plugin](/pt/plugins-reference#mcp-servers) fornece o servidor |

763 791 

764Use essas para escrever um único script auxiliar que serve múltiplos servidores MCP.792Use essas para escrever um único script auxiliar que serve múltiplos servidores MCP.

765 793 

794Para um servidor fornecido por plugin, o auxiliar também é executado com seu diretório de trabalho definido para a raiz do plugin, para que um caminho `headersHelper` relativo seja resolvido dentro do diretório do plugin em vez de contra o diretório de trabalho da sessão. Requer Claude Code v2.1.195 ou posterior.

795 

766<Note>796<Note>

767 `headersHelper` executa comandos shell arbitrários. Quando definido no escopo de projeto ou local, ele só é executado após você aceitar o diálogo de confiança do espaço de trabalho.797 `headersHelper` executa comandos shell arbitrários. Quando definido no escopo de projeto ou local, ele só é executado após você aceitar o diálogo de confiança do espaço de trabalho.

768</Note>798</Note>


841</Tip>871</Tip>

842 872 

843<h2 id="use-mcp-servers-from-claude-ai">873<h2 id="use-mcp-servers-from-claude-ai">

844 Usar servidores MCP do Claude.ai874 Usar servidores MCP do claude.ai

845</h2>875</h2>

846 876 

847Se você fez login no Claude Code com uma conta [Claude.ai](https://claude.ai), os servidores MCP que você adicionou no Claude.ai estão automaticamente disponíveis no Claude Code:877Se você fez login no Claude Code com uma conta [claude.ai](https://claude.ai), os servidores MCP que você adicionou no claude.ai estão automaticamente disponíveis no Claude Code:

848 878 

849<Steps>879<Steps>

850 <Step title="Configure servidores MCP no Claude.ai">880 <Step title="Configure servidores MCP no claude.ai">

851 Adicione servidores em [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Em planos Team e Enterprise, apenas administradores podem adicionar servidores.881 Adicione servidores em [claude.ai/customize/connectors](https://claude.ai/customize/connectors). Em planos Team e Enterprise, apenas administradores podem adicionar servidores.

852 </Step>882 </Step>

853 883 

854 <Step title="Autentique o servidor MCP">884 <Step title="Autentique o servidor MCP">

855 Complete quaisquer etapas de autenticação necessárias no Claude.ai.885 Complete quaisquer etapas de autenticação necessárias no claude.ai.

856 </Step>886 </Step>

857 887 

858 <Step title="Visualize e gerencie servidores no Claude Code">888 <Step title="Visualize e gerencie servidores no Claude Code">


862 /mcp892 /mcp

863 ```893 ```

864 894 

865 Os servidores do Claude.ai aparecem na lista com indicadores mostrando que vêm do Claude.ai.895 Os servidores do claude.ai aparecem na lista com indicadores mostrando que vêm do claude.ai.

866 </Step>896 </Step>

867</Steps>897</Steps>

868 898 

869A partir da v2.1.161, conectores aos quais você nunca fez login estão recolhidos atrás de uma linha `Show unused connectors` no final da seção claude.ai, para que uma lista provisionada pela organização não preencha o painel. Selecione a linha para expandi-los. Um conector ao qual você fez login antes permanece visível mesmo quando atualmente precisa de re-autenticação.899A partir da v2.1.161, conectores aos quais você nunca fez login estão recolhidos atrás de uma linha `Show unused connectors` no final da seção claude.ai, para que uma lista provisionada pela organização não preencha o painel. Selecione a linha para expandi-los. Um conector ao qual você fez login antes permanece visível mesmo quando atualmente precisa de re-autenticação.

870 900 

871Os conectores do Claude.ai são buscados apenas quando seu [método de autenticação](/pt/authentication#authentication-precedence) ativo é sua assinatura do Claude.ai. Eles não são carregados quando `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, ou um provedor de terceiros como Bedrock ou Vertex está ativo, mesmo que você tenha executado `/login` anteriormente. Se `/mcp` não listar um conector que você adicionou, execute `/status` para confirmar qual método de autenticação está ativo, desdefina essa variável de ambiente ou remova a configuração `apiKeyHelper`, depois execute `/login` para selecionar sua conta do Claude.ai.901Os conectores do claude.ai são buscados apenas quando seu [método de autenticação](/pt/authentication#authentication-precedence) ativo é sua assinatura do claude.ai. Eles não são carregados quando `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, ou um provedor de terceiros como Bedrock ou Vertex está ativo, mesmo que você tenha executado `/login` anteriormente. Se `/mcp` não listar um conector que você adicionou, execute `/status` para confirmar qual método de autenticação está ativo, desdefina essa variável de ambiente ou remova a configuração `apiKeyHelper`, depois execute `/login` para selecionar sua conta do claude.ai.

872 902 

873Um servidor que você adicionou no Claude Code tem [precedência](#scope-hierarchy-and-precedence) sobre um conector do claude.ai que aponta para a mesma URL. Quando isso acontece, `/mcp` lista o conector como oculto e mostra como remover a duplicata se você preferir usar o conector.903Um servidor que você adicionou no Claude Code tem [precedência](#scope-hierarchy-and-precedence) sobre um conector do claude.ai que aponta para a mesma URL. Quando isso acontece, `/mcp` lista o conector como oculto e mostra como remover a duplicata se você preferir usar o conector.

874 904 


958 988 

959 * O servidor fornece acesso às ferramentas do Claude como View, Edit, LS, etc.989 * O servidor fornece acesso às ferramentas do Claude como View, Edit, LS, etc.

960 * No Claude Desktop, tente pedir ao Claude para ler arquivos em um diretório, fazer edições e muito mais.990 * No Claude Desktop, tente pedir ao Claude para ler arquivos em um diretório, fazer edições e muito mais.

961 * Observe que este servidor MCP está apenas expondo as ferramentas do Claude Code ao seu cliente MCP, então seu próprio cliente é responsável por implementar confirmação do usuário para chamadas de ferramentas individuais.991 * Este servidor MCP apenas expõe as ferramentas do Claude Code ao seu cliente MCP, portanto seu próprio cliente é responsável por implementar confirmação do usuário para chamadas de ferramentas individuais.

962</Tip>992</Tip>

963 993 

964<h2 id="mcp-output-limits-and-warnings">994<h2 id="mcp-output-limits-and-warnings">


1199 * Os prompts MCP são descobertos dinamicamente de servidores conectados1229 * Os prompts MCP são descobertos dinamicamente de servidores conectados

1200 * Os argumentos são analisados com base nos parâmetros definidos do prompt1230 * Os argumentos são analisados com base nos parâmetros definidos do prompt

1201 * Os resultados do prompt são injetados diretamente na conversa1231 * Os resultados do prompt são injetados diretamente na conversa

1202 * Os nomes do servidor e do prompt são normalizados (espaços se tornam sublinhados)1232 * Os nomes do servidor e do prompt são normalizados, com espaços convertidos em sublinhados

1203</Tip>1233</Tip>

1204 1234 

1205<h2 id="managed-mcp-configuration">1235<h2 id="managed-mcp-configuration">

Details

171 171 

172```bash theme={null}172```bash theme={null}

173export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'173export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'

174export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-4-6'174export ANTHROPIC_DEFAULT_SONNET_MODEL='claude-sonnet-5'

175export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'175export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'

176```176```

177 177 

model-config.md +43 −30

Details

30Os aliases de modelo fornecem uma maneira conveniente de selecionar configurações de modelo sem precisar lembrar dos números exatos da versão:30Os aliases de modelo fornecem uma maneira conveniente de selecionar configurações de modelo sem precisar lembrar dos números exatos da versão:

31 31 

32| Alias de modelo | Comportamento |32| Alias de modelo | Comportamento |

33| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | Valor especial que limpa qualquer substituição de modelo e reverte para o modelo recomendado para seu tipo de conta. Não é em si um alias de modelo |34| **`default`** | Valor especial que limpa qualquer substituição de modelo e reverte para o modelo recomendado para seu tipo de conta. Não é em si um alias de modelo |

35| **`best`** | Usa Fable 5 onde sua organização tem acesso a ele, caso contrário o modelo Opus mais recente |35| **`best`** | Usa Fable 5 onde sua organização tem acesso a ele, caso contrário o modelo Opus mais recente |

36| **`fable`** | Usa Claude Fable 5 para suas tarefas mais difíceis e de longa duração |36| **`fable`** | Usa Claude Fable 5 para suas tarefas mais difíceis e de longa duração |

37| **`sonnet`** | Usa o modelo Sonnet mais recente para tarefas de codificação diária |37| **`sonnet`** | Usa o modelo Sonnet mais recente para tarefas de codificação diária |

38| **`opus`** | Usa o modelo Opus mais recente para tarefas de raciocínio complexo |38| **`opus`** | Usa o modelo Opus mais recente para tarefas de raciocínio complexo |

39| **`haiku`** | Usa o modelo Haiku rápido e eficiente para tarefas simples |39| **`haiku`** | Usa o modelo Haiku rápido e eficiente para tarefas simples |

40| **`sonnet[1m]`** | Usa Sonnet com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#1m-token-context-window) para sessões longas |40| **`sonnet[1m]`** | Usa Sonnet com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#1m-token-context-window) para sessões longas. Sem efeito quando `sonnet` já se resolve para Sonnet 5 com sua janela 1M nativa; atrás de um [gateway LLM](/pt/llm-gateway), seleciona a janela 1M para Sonnet 5 |

41| **`opus[1m]`** | Usa Opus com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#1m-token-context-window) para sessões longas |41| **`opus[1m]`** | Usa Opus com uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#1m-token-context-window) para sessões longas |

42| **`opusplan`** | Modo especial que usa `opus` durante Plan Mode, depois muda para `sonnet` para execução |42| **`opusplan`** | Modo especial que usa `opus` durante Plan Mode, depois muda para `sonnet` para execução |

43 43 

44Na API Anthropic, `opus` se resolve para Opus 4.8 e `sonnet` se resolve para Sonnet 4.6. Na [Claude Platform on AWS](/pt/claude-platform-on-aws), `opus` se resolve para Opus 4.7 e `sonnet` se resolve para Sonnet 4.6. No Bedrock, Vertex e Foundry, `opus` se resolve para Opus 4.6 e `sonnet` se resolve para Sonnet 4.5; modelos mais recentes estão disponíveis nesses provedores selecionando o nome completo do modelo explicitamente ou definindo `ANTHROPIC_DEFAULT_OPUS_MODEL` ou `ANTHROPIC_DEFAULT_SONNET_MODEL`.44Na API Anthropic, `opus` se resolve para Opus 4.8 e `sonnet` se resolve para Sonnet 5. Na [Claude Platform on AWS](/pt/claude-platform-on-aws), `opus` se resolve para Opus 4.7 e `sonnet` se resolve para Sonnet 4.6. No Bedrock, Vertex e Foundry, `opus` se resolve para Opus 4.6 e `sonnet` se resolve para Sonnet 4.5; modelos mais recentes estão disponíveis nesses provedores selecionando o nome completo do modelo explicitamente ou definindo `ANTHROPIC_DEFAULT_OPUS_MODEL` ou `ANTHROPIC_DEFAULT_SONNET_MODEL`.

45 45 

46Os 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-4-8`) ou defina a variável de ambiente correspondente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.46Os 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-4-8`, ou defina a variável de ambiente correspondente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

47 47 

48<Note>48<Note>

49 Opus 4.8 requer Claude Code v2.1.154 ou posterior. Execute `claude update` para atualizar.49 Sonnet 5 requer Claude Code v2.1.197 ou posterior. Opus 4.8 requer v2.1.154 ou posterior. Execute `claude update` para atualizar.

50</Note>50</Note>

51 51 

52<h3 id="work-with-fable-5">52<h3 id="work-with-fable-5">


74 74 

75Você pode configurar seu modelo de várias maneiras, listadas em ordem de prioridade:75Você pode configurar seu modelo de várias maneiras, listadas em ordem de prioridade:

76 76 

771. **Durante a sessão** - Use `/model <alias|name>` para alternar imediatamente, ou execute `/model` sem argumentos para abrir o seletor. O seletor pede confirmação quando a conversa tem saída anterior, pois a próxima resposta relê o histórico completo sem contexto em cache771. **Durante a sessão**: use `/model <alias|name>` para alternar imediatamente, ou execute `/model` sem argumentos para abrir o seletor. O seletor pede confirmação quando a conversa tem saída anterior, pois a próxima resposta relê o histórico completo sem contexto em cache

782. **Na inicialização** - Inicie com `claude --model <alias|name>`782. **Na inicialização**: inicie com `claude --model <alias|name>`

793. **Variável de ambiente** - Defina `ANTHROPIC_MODEL=<alias|name>`793. **Variável de ambiente**: defina `ANTHROPIC_MODEL=<alias|name>`

804. **Configurações** - Configure permanentemente em seu arquivo de configurações usando o campo `model`.804. **Configurações**: configure permanentemente em seu arquivo de configurações usando o campo `model`

81 81 

82A partir da v2.1.153, `/model` salva sua escolha como padrão para novas sessões escrevendo o campo `model` em suas configurações de usuário. No seletor:82A partir da v2.1.153, `/model` salva sua escolha como padrão para novas sessões escrevendo o campo `model` em suas configurações de usuário. No seletor:

83 83 


92 92 

93As sessões retomadas iniciadas com `claude --resume`, `--continue` ou o seletor `/resume` mantêm o modelo que estavam usando quando a transcrição foi salva, independentemente da configuração `model` atual. Se esse modelo foi descontinuado ou é excluído por [`availableModels`](#restrict-model-selection), a sessão cai para a ordem de precedência normal. Isso evita que a escolha `/model` de outra sessão altere o modelo ao retomar.93As sessões retomadas iniciadas com `claude --resume`, `--continue` ou o seletor `/resume` mantêm o modelo que estavam usando quando a transcrição foi salva, independentemente da configuração `model` atual. Se esse modelo foi descontinuado ou é excluído por [`availableModels`](#restrict-model-selection), a sessão cai para a ordem de precedência normal. Isso evita que a escolha `/model` de outra sessão altere o modelo ao retomar.

94 94 

95Um modelo que você escolhe para o novo lançamento com `--model` ou `ANTHROPIC_MODEL` ainda tem precedência sobre o modelo restaurado. {/* min-version: 2.1.195 */}A partir da v2.1.195, também tem uma variável da família [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables).

96 

95Quando o modelo ativo na inicialização vem das configurações do projeto ou gerenciadas em vez de sua própria seleção, o cabeçalho de inicialização mostra qual arquivo de configurações o definiu. Execute `/model` para substituir; a configuração do projeto ou gerenciada reaplicada no próximo lançamento.97Quando o modelo ativo na inicialização vem das configurações do projeto ou gerenciadas em vez de sua própria seleção, o cabeçalho de inicialização mostra qual arquivo de configurações o definiu. Execute `/model` para substituir; a configuração do projeto ou gerenciada reaplicada no próximo lançamento.

96 98 

97Quando 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. As sessões interativas o mostram como um aviso de inicialização. A partir da v2.1.182, o mesmo aviso é escrito em stderr no [modo não interativo](/pt/headless) ao usar o formato de saída de texto padrão. A verificação também cobre um `model` definido no [frontmatter de subagentos](/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](/pt/headless#get-structured-output).99Quando 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. As sessões interativas o mostram como um aviso de inicialização. A partir da v2.1.182, o mesmo aviso é escrito em stderr no [modo não interativo](/pt/headless) ao usar o formato de saída de texto padrão. A verificação também cobre um `model` definido no [frontmatter de subagentos](/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](/pt/headless#get-structured-output) em vez disso.

98 100 

99Exemplo de uso:101Exemplo de uso:

100 102 


234 Restrições de modelo da organização236 Restrições de modelo da organização

235</h3>237</h3>

236 238 

237Use o botão do Console em vez de `availableModels` quando seus membros se autenticam através da API Anthropic e você deseja um único switch em toda a organização sem implantar arquivos de configurações. Os administradores da organização restringem quais modelos os membros podem executar desabilitando modelos individuais no Console Claude. Esta restrição é entregue com os direitos da conta quando Claude Code se autentica, separada de qualquer lista `availableModels` em configurações, e o servidor impõe a mesma restrição independentemente quando uma sessão é criada. Requer Claude Code v2.1.187 ou posterior.239Os administradores da organização restringem quais modelos os membros podem executar desabilitando modelos individuais no Console Claude. Use este botão do Console em vez de `availableModels` quando seus membros se autenticam através da API Anthropic e você deseja um único switch em toda a organização sem implantar arquivos de configurações. Esta restrição é entregue com os direitos da conta quando Claude Code se autentica, separada de qualquer lista `availableModels` em configurações, e o servidor impõe a mesma restrição independentemente quando uma sessão é criada. Requer Claude Code v2.1.187 ou posterior.

238 240 

239Um modelo restrito é ocultado do seletor `/model`. Selecioná-lo pelo nome com `--model`, a variável de ambiente `ANTHROPIC_MODEL` ou a configuração `model` mostra o aviso `Model "<name>" is restricted by your organization's settings. Using <model> instead.` e a sessão é iniciada em um modelo permitido. Digitar `/model <name>` para um modelo restrito é rejeitado com `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` e a sessão mantém seu modelo atual.241Um modelo restrito é ocultado do seletor `/model`. Selecioná-lo pelo nome com `--model`, a variável de ambiente `ANTHROPIC_MODEL` ou a configuração `model` mostra o aviso `Model "<name>" is restricted by your organization's settings. Using <model> instead.` e a sessão é iniciada em um modelo permitido. Digitar `/model <name>` para um modelo restrito é rejeitado com `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` e a sessão mantém seu modelo atual.

240 242 


252 254 

253* **Max, Team Premium, Enterprise pagamento conforme o uso e API Anthropic**: padrão para Opus 4.8255* **Max, Team Premium, Enterprise pagamento conforme o uso e API Anthropic**: padrão para Opus 4.8

254* **Claude Platform na AWS**: padrão para Opus 4.7256* **Claude Platform na AWS**: padrão para Opus 4.7

255* **Pro, Team Standard e assentos de assinatura Enterprise**: padrão para Sonnet 4.6257* **Pro, Team Standard e assentos de assinatura Enterprise**: padrão para Sonnet 5

256* **Bedrock, Vertex e Foundry**: padrão para Sonnet 4.5258* **Bedrock, Vertex e Foundry**: padrão para Sonnet 4.5

257 259 

258Enterprise pagamento conforme o uso significa uma organização Enterprise cobrada por uso em vez de por assento de assinatura.260Enterprise pagamento conforme o uso significa uma organização Enterprise cobrada por uso em vez de por assento de assinatura.


267 269 

268O alias de modelo `opusplan` fornece uma abordagem híbrida automatizada:270O alias de modelo `opusplan` fornece uma abordagem híbrida automatizada:

269 271 

270* **Em Plan Mode** - Usa `opus` para raciocínio complexo e decisões de arquitetura272* **Em Plan Mode**: usa `opus` para raciocínio complexo e decisões de arquitetura

271* **Em modo de execução** - Muda automaticamente para `sonnet` para geração de código e implementação273* **Em modo de execução**: muda automaticamente para `sonnet` para geração de código e implementação

272 274 

273Isso oferece o melhor dos dois mundos: o raciocínio superior do Opus para planejamento e a eficiência do Sonnet para execução.275Isso oferece o melhor dos dois mundos: o raciocínio superior do Opus para planejamento e a eficiência do Sonnet para execução.

274 276 


296 298 

297```json theme={null}299```json theme={null}

298{300{

299 "fallbackModel": ["claude-sonnet-4-6", "claude-haiku-4-5"]301 "fallbackModel": ["claude-sonnet-5", "claude-haiku-4-5"]

300}302}

301```303```

302 304 


368Os níveis de esforço disponíveis dependem do modelo. Modelos não listados aqui não suportam esforço:370Os níveis de esforço disponíveis dependem do modelo. Modelos não listados aqui não suportam esforço:

369 371 

370| Modelo | Níveis |372| Modelo | Níveis |

371| :-------------------- | :-------------------------------------- |373| :---------------------------- | :-------------------------------------- |

372| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |374| Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

373| Opus 4.8 e Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |375| Sonnet 5, Opus 4.8 e Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

374| Opus 4.6 e Sonnet 4.6 | `low`, `medium`, `high`, `max` |376| Opus 4.6 e Sonnet 4.6 | `low`, `medium`, `high`, `max` |

375 377 

376Se você definir um nível que o modelo ativo não suporta, Claude Code volta para o nível mais alto suportado no ou abaixo do que você definiu. Por exemplo, `xhigh` é executado como `high` em Opus 4.6.378Se você definir um nível que o modelo ativo não suporta, Claude Code volta para o nível mais alto suportado no ou abaixo do que você definiu. Por exemplo, `xhigh` é executado como `high` em Opus 4.6.

377 379 

378O esforço padrão é `high` em Fable 5, Opus 4.8, Opus 4.6 e Sonnet 4.6, e `xhigh` em Opus 4.7.380O esforço padrão é `high` em Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 e Sonnet 4.6, e `xhigh` em Opus 4.7.

379 381 

380Quando você executa Fable 5, Opus 4.8 ou Opus 4.7 pela primeira vez, Claude Code aplica o esforço padrão desse modelo mesmo que você tenha definido anteriormente um nível diferente para outro modelo: `high` em Fable 5 e Opus 4.8, e `xhigh` em Opus 4.7. Execute `/effort` novamente para escolher um nível diferente após alternar.382Quando você executa Fable 5, Opus 4.8 ou Opus 4.7 pela primeira vez, Claude Code aplica o esforço padrão desse modelo mesmo que você tenha definido anteriormente um nível diferente para outro modelo: `high` em Fable 5 e Opus 4.8, e `xhigh` em Opus 4.7. Execute `/effort` novamente para escolher um nível diferente após alternar.

381 383 


393| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |395| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

394| `low` | Reserve para tarefas curtas, delimitadas, sensíveis à latência que não são sensíveis à inteligência |396| `low` | Reserve para tarefas curtas, delimitadas, sensíveis à latência que não são sensíveis à inteligência |

395| `medium` | Reduz o uso de tokens para trabalho sensível a custos que pode fazer concessões em inteligência |397| `medium` | Reduz o uso de tokens para trabalho sensível a custos que pode fazer concessões em inteligência |

396| `high` | Equilibra o uso de tokens e inteligência. Padrão em Fable 5, Opus 4.8, Opus 4.6 e Sonnet 4.6 |398| `high` | Equilibra o uso de tokens e inteligência. Padrão em Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 e Sonnet 4.6 |

397| `xhigh` | Raciocínio mais profundo com gasto de tokens mais alto. Padrão em Opus 4.7 |399| `xhigh` | Raciocínio mais profundo com gasto de tokens mais alto. Padrão em Opus 4.7 |

398| `max` | Pode melhorar o desempenho em tarefas exigentes, mas pode mostrar retornos decrescentes e é propenso a pensar demais. Teste antes de adotar amplamente |400| `max` | Pode melhorar o desempenho em tarefas exigentes, mas pode mostrar retornos decrescentes e é propenso a pensar demais. Teste antes de adotar amplamente |

399| `ultracode` | Uma configuração de Claude Code que planeja um [fluxo de trabalho dinâmico](/pt/workflows) para cada tarefa substancial com raciocínio `xhigh` por mensagem. Apenas de sessão |401| `ultracode` | Uma configuração de Claude Code que planeja um [fluxo de trabalho dinâmico](/pt/workflows) para cada tarefa substancial com raciocínio `xhigh` por mensagem. Apenas de sessão |


429 431 

430O raciocínio adaptativo torna o pensamento opcional em cada etapa, portanto Claude pode responder mais rápido a prompts rotineiros e reservar pensamento mais profundo para etapas que se beneficiam dele. Se você quiser que Claude pense mais ou menos frequentemente do que o nível atual produz, você pode dizer isso diretamente em seu prompt ou em `CLAUDE.md`; o modelo responde a essa orientação dentro de sua configuração de esforço.432O raciocínio adaptativo torna o pensamento opcional em cada etapa, portanto Claude pode responder mais rápido a prompts rotineiros e reservar pensamento mais profundo para etapas que se beneficiam dele. Se você quiser que Claude pense mais ou menos frequentemente do que o nível atual produz, você pode dizer isso diretamente em seu prompt ou em `CLAUDE.md`; o modelo responde a essa orientação dentro de sua configuração de esforço.

431 433 

432Opus 4.7 e posterior sempre usam raciocínio adaptativo, assim como Fable 5. O modo de orçamento de pensamento fixo e `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` não se aplicam a eles.434Fable 5, Sonnet 5 e Opus 4.7 e posterior sempre usam raciocínio adaptativo. O modo de orçamento de pensamento fixo e `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` não se aplicam a eles.

433 435 

434Em Opus 4.6 e Sonnet 4.6, você pode definir `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para reverter para o orçamento de pensamento fixo anterior controlado por `MAX_THINKING_TOKENS`. Veja [variáveis de ambiente](/pt/env-vars).436Em Opus 4.6 e Sonnet 4.6, você pode definir `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para reverter para o orçamento de pensamento fixo anterior controlado por `MAX_THINKING_TOKENS`. Veja [variáveis de ambiente](/pt/env-vars).

435 437 


453 Contexto estendido455 Contexto estendido

454</h3>456</h3>

455 457 

456Fable 5, Opus 4.6 e posterior, e Sonnet 4.6, suportam uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#1m-token-context-window) para sessões longas com grandes bases de código.458Fable 5, Sonnet 5, Opus 4.6 e posterior, e Sonnet 4.6, suportam uma [janela de contexto de 1 milhão de tokens](https://platform.claude.com/docs/pt/build-with-claude/context-windows#1m-token-context-window) para sessões longas com grandes bases de código.

457 459 

458A disponibilidade varia por modelo e plano. Nos planos Max, Team e Enterprise, Opus é automaticamente atualizado para contexto 1M sem configuração adicional. Isso se aplica aos assentos Team Standard e Team Premium. Na API Anthropic, Fable 5, Opus 4.8 e Opus 4.7 sempre são executados com a janela 1M. Sonnet com contexto 1M não faz parte da atualização automática e requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) em todos os planos de assinatura, incluindo Max.460A disponibilidade varia por modelo e plano. Na API Anthropic, Fable 5, Sonnet 5, Opus 4.8 e Opus 4.7 sempre são executados com a janela 1M. Nos planos Max, Team e Enterprise, Opus é automaticamente atualizado para contexto 1M sem configuração adicional. Isso se aplica aos assentos Team Standard e Team Premium. Sonnet 4.6 com contexto 1M não faz parte da atualização automática e requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) em todos os planos de assinatura, incluindo Max.

459 461 

460| Plano | Opus com contexto 1M | Sonnet com contexto 1M |462| Plano | Opus com contexto 1M | Sonnet 4.6 com contexto 1M |

461| ------------------------------ | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |463| ------------------------------ | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |

462| Max, Team e Enterprise | Incluído na assinatura | Requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |464| Max, Team e Enterprise | Incluído na assinatura | Requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |

463| Pro | Requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) | Requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |465| Pro | Requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) | Requer [créditos de uso](https://support.claude.com/pt/articles/12429409-extra-usage-for-paid-claude-plans) |


480/model claude-opus-4-8[1m]482/model claude-opus-4-8[1m]

481```483```

482 484 

485<h4 id="sonnet-5-context-window">

486 Janela de contexto do Sonnet 5

487</h4>

488 

489Na API Anthropic, Sonnet 5 sempre é executado com a janela de contexto 1M. Não há variante de 200K, nenhum sufixo `[1m]` para selecionar e nenhum crédito de uso necessário em qualquer plano. As sessões fazem compactação automática antes que a janela encha, em cerca de 967K tokens por padrão; defina [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/pt/env-vars) para escolher um limite diferente.

490 

491Duas configurações orçam a janela em 200K em vez disso e fazem compactação automática nesse limite:

492 

493* **Gateway LLM**: quando `ANTHROPIC_BASE_URL` aponta para um [gateway](/pt/llm-gateway), Claude Code não pode verificar o suporte a 1M. Para usar a janela completa, selecione Sonnet 5 (1M context) no seletor de modelo, que mapeia para `sonnet[1m]`.

494* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: trata sessões Sonnet 5 como tendo uma janela de 200K, para implantações que precisam limitar o contexto.

495 

483<h2 id="checking-your-current-model">496<h2 id="checking-your-current-model">

484 Verificando seu modelo atual497 Verificando seu modelo atual

485</h2>498</h2>

486 499 

487Você pode ver qual modelo está usando atualmente de várias maneiras:500Você pode ver qual modelo está usando atualmente em dois lugares:

488 501 

4891. Na [linha de status](/pt/statusline) (se configurada)502* Na [linha de status](/pt/statusline), se você tiver uma configurada

4902. Em `/status`, que também exibe as informações de sua conta.503* Em `/status`, que também exibe as informações de sua conta

491 504 

492<h2 id="add-a-custom-model-option">505<h2 id="add-a-custom-model-option">

493 Adicionar uma opção de modelo personalizado506 Adicionar uma opção de modelo personalizado


498Este exemplo define todas as três variáveis para tornar uma implantação Opus roteada por gateway selecionável:511Este exemplo define todas as três variáveis para tornar uma implantação Opus roteada por gateway selecionável:

499 512 

500```bash theme={null}513```bash theme={null}

501export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-7"514export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-8"

502export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"515export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

503export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"516export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

504```517```

505 518 

506A entrada personalizada aparece na parte inferior do seletor `/model`. `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` e `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` são opcionais. Se omitidos, o ID do modelo é usado como o nome e a descrição padrão é `Custom model (<model-id>)`.519A entrada personalizada aparece na parte inferior do seletor `/model`. `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` e `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` são opcionais. Se omitidos, o ID do modelo é usado como o nome e a descrição padrão é `Custom model (<model-id>)`.

507 520 

508Claude Code ignora a validação para o ID do modelo definido em `ANTHROPIC_CUSTOM_MODEL_OPTION`, portanto você pode usar qualquer string que seu endpoint de API aceite. Quando [`availableModels`](#restrict-model-selection) está definido, inclua o ID do modelo personalizado na lista de permissões também: a entrada personalizada é filtrada do seletor e uma seleção `--model` dela é rejeitada como qualquer outro modelo excluído. Um ID personalizado que incorpora um nome de família, como `my-gateway/claude-opus-4-7`, conta como uma entrada específica para essa família e desabilita seu curinga, portanto também liste as versões que você pretende manter selecionáveis. Consulte [Comportamento de mesclagem](#merge-behavior).521Claude Code ignora a validação para o ID do modelo definido em `ANTHROPIC_CUSTOM_MODEL_OPTION`, portanto você pode usar qualquer string que seu endpoint de API aceite. Quando [`availableModels`](#restrict-model-selection) está definido, inclua o ID do modelo personalizado na lista de permissões também: a entrada personalizada é filtrada do seletor e uma seleção `--model` dela é rejeitada como qualquer outro modelo excluído. Um ID personalizado que incorpora um nome de família, como `my-gateway/claude-opus-4-8`, conta como uma entrada específica para essa família e desabilita seu curinga, portanto também liste as versões que você pretende manter selecionáveis. Consulte [Comportamento de mesclagem](#merge-behavior).

509 522 

510<h2 id="environment-variables">523<h2 id="environment-variables">

511 Variáveis de ambiente524 Variáveis de ambiente

512</h2>525</h2>

513 526 

514Você pode usar as seguintes variáveis de ambiente, que devem ser **nomes de modelo** completos (ou equivalente para seu provedor de API), para controlar os nomes de modelo para os quais os aliases mapeiam.527Você pode usar as seguintes variáveis de ambiente para controlar os nomes de modelo para os quais os aliases mapeiam. Cada valor deve ser um nome de modelo completo, ou o identificador equivalente para seu provedor de API.

515 528 

516| Variável de ambiente | Descrição |529| Variável de ambiente | Descrição |

517| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |530| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


555 568 

556* Claude Code remove o sufixo antes de enviar o ID do modelo para seu provedor.569* Claude Code remove o sufixo antes de enviar o ID do modelo para seu provedor.

557* Apenas anexe `[1m]` quando o modelo subjacente [suportar contexto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).570* Apenas anexe `[1m]` quando o modelo subjacente [suportar contexto 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#1m-token-context-window).

558* O sufixo é lido por variável, não por modelo. No Bedrock, Vertex e 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.571* O sufixo é lido por variável, não por modelo. No Bedrock, Vertex e 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.

559 572 

560<Note>573<Note>

561 Uma lista de permissões `availableModels` entregue através de [MDM ou um arquivo de configurações gerenciado](/pt/settings#settings-files) ainda se aplica ao usar provedores de terceiros; [configurações gerenciadas pelo servidor não são entregues lá](/pt/server-managed-settings#platform-availability). 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 o mesmo ID em forma de provedor que o seletor mostra, 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.574 Uma lista de permissões `availableModels` entregue através de [MDM ou um arquivo de configurações gerenciado](/pt/settings#settings-files) ainda se aplica ao usar provedores de terceiros; [configurações gerenciadas pelo servidor não são entregues lá](/pt/server-managed-settings#platform-availability). 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 o mesmo ID em forma de provedor que o seletor mostra, 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.

Details

93| `OTEL_METRIC_EXPORT_INTERVAL` | Intervalo de exportação em milissegundos (padrão: 60000) | `5000`, `60000` |93| `OTEL_METRIC_EXPORT_INTERVAL` | Intervalo de exportação em milissegundos (padrão: 60000) | `5000`, `60000` |

94| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalo de exportação de logs em milissegundos (padrão: 5000) | `1000`, `10000` |94| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalo de exportação de logs em milissegundos (padrão: 5000) | `1000`, `10000` |

95| `OTEL_LOG_USER_PROMPTS` | Ativar registro de conteúdo de prompt do usuário (padrão: desativado) | `1` para ativar |95| `OTEL_LOG_USER_PROMPTS` | Ativar registro de conteúdo de prompt do usuário (padrão: desativado) | `1` para ativar |

96| `OTEL_LOG_ASSISTANT_RESPONSES` | Ativar registro de texto de resposta do assistente em eventos `assistant_response` (padrão: desativado). Quando não definido, volta para o valor de `OTEL_LOG_USER_PROMPTS`. {/* min-version: 2.1.193 */}Requer Claude Code v2.1.193 ou posterior | `1` para ativar, `0` para manter reduzido |

96| `OTEL_LOG_TOOL_DETAILS` | Ativar registro de parâmetros de ferramenta e argumentos de entrada em eventos de ferramenta e atributos de span de rastreamento: comandos Bash, nomes de servidor MCP e ferramenta, nomes de skill e entrada de ferramenta. Também ativa nomes de comando customizado, plugin e MCP em eventos `user_prompt` (padrão: desativado) | `1` para ativar |97| `OTEL_LOG_TOOL_DETAILS` | Ativar registro de parâmetros de ferramenta e argumentos de entrada em eventos de ferramenta e atributos de span de rastreamento: comandos Bash, nomes de servidor MCP e ferramenta, nomes de skill e entrada de ferramenta. Também ativa nomes de comando customizado, plugin e MCP em eventos `user_prompt` (padrão: desativado) | `1` para ativar |

97| `OTEL_LOG_TOOL_CONTENT` | Ativar registro de conteúdo de entrada e saída de ferramenta em eventos de span (padrão: desativado). Requer [rastreamento](#traces-beta). O conteúdo é truncado em 60 KB | `1` para ativar |98| `OTEL_LOG_TOOL_CONTENT` | Ativar registro de conteúdo de entrada e saída de ferramenta em eventos de span (padrão: desativado). Requer [rastreamento](#traces-beta). O conteúdo é truncado em 60 KB | `1` para ativar |

98| `OTEL_LOG_RAW_API_BODIES` | Emitir o corpo JSON completo da solicitação e resposta da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body` (padrão: desativado). Os corpos incluem todo o histórico de conversa. Ativar isso implica consentimento para tudo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` e `OTEL_LOG_TOOL_CONTENT` revelariam | `1` para corpos inline truncados em 60 KB, ou `file:<dir>` para corpos não truncados em disco com um ponteiro `body_ref` no evento |99| `OTEL_LOG_RAW_API_BODIES` | Emitir o corpo JSON completo da solicitação e resposta da API Anthropic Messages como eventos de log `api_request_body` / `api_response_body` (padrão: desativado). Os corpos incluem todo o histórico de conversa. Ativar isso implica consentimento para tudo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS` e `OTEL_LOG_TOOL_CONTENT` revelariam | `1` para corpos inline truncados em 60 KB, ou `file:<dir>` para corpos não truncados em disco com um ponteiro `body_ref` no evento |


341Cada chave personalizada se torna um rótulo em cada série de métrica, então valores de alta cardinalidade aumentam o custo de armazenamento no seu backend de métricas. Para enviar atributos personalizados apenas no bloco de recurso e omiti-los dos rótulos de ponto de dados, defina `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. Veja [Controle de cardinalidade de métricas](#metrics-cardinality-control).342Cada chave personalizada se torna um rótulo em cada série de métrica, então valores de alta cardinalidade aumentam o custo de armazenamento no seu backend de métricas. Para enviar atributos personalizados apenas no bloco de recurso e omiti-los dos rótulos de ponto de dados, defina `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. Veja [Controle de cardinalidade de métricas](#metrics-cardinality-control).

342 343 

343<Warning>344<Warning>

344 **Requisitos importantes de formatação para OTEL\_RESOURCE\_ATTRIBUTES:**

345 

346 A variável de ambiente `OTEL_RESOURCE_ATTRIBUTES` usa pares chave=valor separados por vírgula com requisitos rigorosos de formatação:345 A variável de ambiente `OTEL_RESOURCE_ATTRIBUTES` usa pares chave=valor separados por vírgula com requisitos rigorosos de formatação:

347 346 

348 * **Sem espaços permitidos**: Os valores não podem conter espaços. Por exemplo, `user.organizationName=My Company` é inválido347 * **Sem espaços permitidos**: os valores não podem conter espaços. Por exemplo, `user.organizationName=My Company` é inválido

349 * **Formato**: Deve ser pares chave=valor separados por vírgula: `key1=value1,key2=value2`348 * **Formato**: deve ser pares chave=valor separados por vírgula: `key1=value1,key2=value2`

350 * **Caracteres permitidos**: Apenas caracteres US-ASCII excluindo caracteres de controle, espaços em branco, aspas duplas, vírgulas, ponto-e-vírgula e barras invertidas349 * **Caracteres permitidos**: apenas caracteres US-ASCII excluindo caracteres de controle, espaços em branco, aspas duplas, vírgulas, ponto-e-vírgula e barras invertidas

351 * **Caracteres especiais**: Caracteres fora do intervalo permitido devem ser codificados em percentual350 * **Caracteres especiais**: caracteres fora do intervalo permitido devem ser codificados em percentual

352 351 

353 **Exemplos:**352 Para um valor que precisaria de um espaço, use sublinhados ou camelCase em vez disso. Os exemplos a seguir definem `org.name` com cada forma:

354 353 

355 ```bash theme={null}354 ```bash theme={null}

356 # ❌ Inválido - contém espaços

357 export OTEL_RESOURCE_ATTRIBUTES="org.name=John's Organization"

358 

359 # ✅ Válido - use sublinhados ou camelCase em vez disso

360 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"355 export OTEL_RESOURCE_ATTRIBUTES="org.name=Johns_Organization"

361 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"356 export OTEL_RESOURCE_ATTRIBUTES="org.name=JohnsOrganization"

357 ```

362 358 

363 # ✅ Válido - codifique em percentual caracteres especiais se necessário359 Você pode codificar em percentual qualquer caractere, não apenas os excluídos. Este exemplo codifica tanto o espaço quanto o apóstrofo:

360 

361 ```bash theme={null}

364 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"362 export OTEL_RESOURCE_ATTRIBUTES="org.name=John%27s%20Organization"

365 ```363 ```

366 364 

367 Nota: envolver valores em aspas não escapa espaços. Por exemplo, `org.name="My Company"` resulta no valor literal `"My Company"` (com aspas incluídas), não `My Company`.365 Envolver valores em aspas não escapa espaços. Por exemplo, `org.name="My Company"` resulta no valor literal `"My Company"` com as aspas incluídas, não `My Company`.

368</Warning>366</Warning>

369 367 

370<h3 id="example-configurations">368<h3 id="example-configurations">


439| `terminal.type` | Tipo de terminal, como `iTerm.app`, `vscode`, `cursor` ou `tmux` | Sempre incluído quando detectado |437| `terminal.type` | Tipo de terminal, como `iTerm.app`, `vscode`, `cursor` ou `tmux` | Sempre incluído quando detectado |

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

441 439 

440Quando Claude Code está conectado a um [gateway de aplicativos Claude](/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írgula. 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.

441 

442Os eventos incluem adicionalmente os seguintes atributos. Estes nunca são anexados a métricas porque causariam cardinalidade ilimitada:442Os eventos incluem adicionalmente os seguintes atributos. Estes nunca são anexados a métricas porque causariam cardinalidade ilimitada:

443 443 

444* `prompt.id`: UUID correlacionando um prompt do usuário com todos os eventos subsequentes até o próximo prompt. Veja [Atributos de correlação de evento](#event-correlation-attributes).444* `prompt.id`: UUID correlacionando um prompt do usuário com todos os eventos subsequentes até o próximo prompt. Veja [Atributos de correlação de evento](#event-correlation-attributes).


488 488 

489* Todos os [atributos padrão](#standard-attributes)489* Todos os [atributos padrão](#standard-attributes)

490* `type`: (`"added"`, `"removed"`)490* `type`: (`"added"`, `"removed"`)

491* `model`: Identificador do modelo para o modelo que fez a alteração (por exemplo, "claude-sonnet-4-6"). {/* min-version: 2.1.172 */}Requer Claude Code v2.1.172 ou posterior491* `model`: Identificador do modelo para o modelo que fez a alteração (por exemplo, "claude-sonnet-5")

492 492 

493<h4 id="pull-request-counter">493<h4 id="pull-request-counter">

494 Contador de pull request494 Contador de pull request


519**Atributos**:519**Atributos**:

520 520 

521* Todos os [atributos padrão](#standard-attributes)521* Todos os [atributos padrão](#standard-attributes)

522* `model`: Identificador do modelo (por exemplo, "claude-sonnet-4-6")522* `model`: Identificador do modelo (por exemplo, "claude-sonnet-5")

523* `query_source`: Categoria do subsistema que emitiu a solicitação. Um de `"main"`, `"subagent"` ou `"auxiliary"`523* `query_source`: Categoria do subsistema que emitiu a solicitação. Um de `"main"`, `"subagent"` ou `"auxiliary"`

524* `speed`: `"fast"` quando a solicitação usou modo rápido. Ausente caso contrário524* `speed`: `"fast"` quando a solicitação usou modo rápido. Ausente caso contrário

525* `effort`: [Nível de esforço](/pt/model-config#adjust-effort-level) aplicado à solicitação: `"low"`, `"medium"`, `"high"`, `"xhigh"` ou `"max"`. Ausente quando o modelo não suporta esforço.525* `effort`: [Nível de esforço](/pt/model-config#adjust-effort-level) aplicado à solicitação: `"low"`, `"medium"`, `"high"`, `"xhigh"` ou `"max"`. Ausente quando o modelo não suporta esforço.


540 540 

541* Todos os [atributos padrão](#standard-attributes)541* Todos os [atributos padrão](#standard-attributes)

542* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)542* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)

543* `model`: Identificador do modelo (por exemplo, "claude-sonnet-4-6")543* `model`: Identificador do modelo (por exemplo, "claude-sonnet-5")

544* `query_source`: Categoria do subsistema que emitiu a solicitação. Um de `"main"`, `"subagent"` ou `"auxiliary"`544* `query_source`: Categoria do subsistema que emitiu a solicitação. Um de `"main"`, `"subagent"` ou `"auxiliary"`

545* `speed`: `"fast"` quando a solicitação usou modo rápido. Ausente caso contrário545* `speed`: `"fast"` quando a solicitação usou modo rápido. Ausente caso contrário

546* `effort`: [Nível de esforço](/pt/model-config#adjust-effort-level) aplicado à solicitação. Veja [Contador de custo](#cost-counter) para detalhes.546* `effort`: [Nível de esforço](/pt/model-config#adjust-effort-level) aplicado à solicitação. Veja [Contador de custo](#cost-counter) para detalhes.


564 Contador de tempo ativo564 Contador de tempo ativo

565</h4>565</h4>

566 566 

567Rastreia o tempo real gasto usando ativamente Claude Code, excluindo tempo ocioso. Essa métrica é incrementada durante interações do usuário (digitação, leitura de respostas) e durante processamento CLI (execução de ferramentas, geração de resposta de IA).567Rastreia o tempo real gasto usando ativamente Claude Code, excluindo tempo ocioso. Essa métrica é incrementada durante interações do usuário, como digitação e leitura de respostas, e durante processamento CLI, como execução de ferramentas e geração de resposta de IA.

568 568 

569**Atributos**:569**Atributos**:

570 570 


608* `event.timestamp`: Timestamp ISO 8601608* `event.timestamp`: Timestamp ISO 8601

609* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão609* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão

610* `prompt_length`: Comprimento do prompt610* `prompt_length`: Comprimento do prompt

611* `prompt`: Conteúdo do prompt (reduzido por padrão, ativar com `OTEL_LOG_USER_PROMPTS=1`)611* `prompt`: Conteúdo do prompt. Reduzido por padrão. Defina `OTEL_LOG_USER_PROMPTS=1` para incluí-lo

612* `command_name`: Nome do comando quando o prompt invoca um. Nomes de comando integrados e agrupados como `compact` ou `debug` são emitidos como estão; aliases como `reset` emitem como digitados em vez do nome canônico. Nomes de comando customizado, plugin e MCP colapsam para `custom` ou `mcp` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido612* `command_name`: Nome do comando quando o prompt invoca um. Nomes de comando integrados e agrupados como `compact` ou `debug` são emitidos como estão; aliases como `reset` emitem como digitados em vez do nome canônico. Nomes de comando customizado, plugin e MCP colapsam para `custom` ou `mcp` a menos que `OTEL_LOG_TOOL_DETAILS=1` esteja definido

613* `command_source`: Origem do comando quando presente: `builtin`, `custom` ou `mcp`. Comandos fornecidos por plugin relatam como `custom`613* `command_source`: Origem do comando quando presente: `builtin`, `custom` ou `mcp`. Comandos fornecidos por plugin relatam como `custom`

614 614 

615<h4 id="assistant-response-event">

616 Evento de resposta do assistente

617</h4>

618 

619Registrado após cada solicitação de API que retorna conteúdo de texto do modelo. Apenas os blocos de texto da resposta são incluídos; blocos de pensamento e blocos de uso de ferramenta são excluídos. {/* min-version: 2.1.193 */}Requer Claude Code v2.1.193 ou posterior.

620 

621**Nome do Evento**: `claude_code.assistant_response`

622 

623**Atributos**:

624 

625* Todos os [atributos padrão](#standard-attributes)

626* `event.name`: `"assistant_response"`

627* `event.timestamp`: Timestamp ISO 8601

628* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão

629* `response_length`: Comprimento do texto de resposta em caracteres

630* `response`: Texto de resposta, truncado em 60 KB. Reduzido para `<REDACTED>` por padrão. Defina `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluí-lo. Quando `OTEL_LOG_ASSISTANT_RESPONSES` não está definido, `OTEL_LOG_USER_PROMPTS` controla isso em vez disso, então defina `OTEL_LOG_ASSISTANT_RESPONSES=0` para manter respostas reduzidas enquanto o registro de prompt está ativado

631* `model`: Identificador do modelo (por exemplo, "claude-sonnet-4-6")

632* `request_id`: ID de solicitação da API Anthropic do cabeçalho `request-id` da resposta. Presente apenas quando a API retorna um

633* `query_source`: Subsistema que emitiu a solicitação, como `"repl_main_thread"`, `"compact"` ou um nome de subagente

634 

615<h4 id="tool-result-event">635<h4 id="tool-result-event">

616 Evento de resultado da ferramenta636 Evento de resultado da ferramenta

617</h4>637</h4>


632* `duration_ms`: Tempo de execução em milissegundos652* `duration_ms`: Tempo de execução em milissegundos

633* `error_type`: String de categoria de erro quando a ferramenta falhou, como `"Error:ENOENT"` ou `"ShellError"`653* `error_type`: String de categoria de erro quando a ferramenta falhou, como `"Error:ENOENT"` ou `"ShellError"`

634* `error` (quando `OTEL_LOG_TOOL_DETAILS=1`): Mensagem de erro completa quando a ferramenta falhou654* `error` (quando `OTEL_LOG_TOOL_DETAILS=1`): Mensagem de erro completa quando a ferramenta falhou

635* `decision_type`: Sempre `"accept"`, já que este evento é emitido apenas após a ferramenta ser executada (chamadas rejeitadas não produzem um resultado de ferramenta)655* `decision_type`: Sempre `"accept"`, já que este evento é emitido apenas após a ferramenta ser executada. Chamadas rejeitadas não produzem um resultado de ferramenta

636* `decision_source`: Onde a decisão de permissão veio. Um de `"config"`, `"hook"`, `"user_permanent"` ou `"user_temporary"`. Veja o [Evento de decisão da ferramenta](#tool-decision-event) para o que cada valor significa. As fontes apenas de rejeição `"user_abort"` e `"user_reject"` nunca aparecem neste evento.656* `decision_source`: Onde a decisão de permissão veio. Um de `"config"`, `"hook"`, `"user_permanent"` ou `"user_temporary"`. Veja o [Evento de decisão da ferramenta](#tool-decision-event) para o que cada valor significa. As fontes apenas de rejeição `"user_abort"` e `"user_reject"` nunca aparecem neste evento.

637* `tool_input_size_bytes`: Tamanho da entrada da ferramenta serializada em JSON em bytes657* `tool_input_size_bytes`: Tamanho da entrada da ferramenta serializada em JSON em bytes

638* `tool_result_size_bytes`: Tamanho do resultado da ferramenta em bytes658* `tool_result_size_bytes`: Tamanho do resultado da ferramenta em bytes


659* `event.name`: `"api_request"`679* `event.name`: `"api_request"`

660* `event.timestamp`: Timestamp ISO 8601680* `event.timestamp`: Timestamp ISO 8601

661* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão681* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão

662* `model`: Modelo usado (por exemplo, "claude-sonnet-4-6")682* `model`: Modelo usado (por exemplo, "claude-sonnet-5")

663* `cost_usd`: Custo estimado em USD683* `cost_usd`: Custo estimado em USD

664* `duration_ms`: Duração da solicitação em milissegundos684* `duration_ms`: Duração da solicitação em milissegundos

665* `input_tokens`: Número de tokens de entrada685* `input_tokens`: Número de tokens de entrada


686* `event.name`: `"api_error"`706* `event.name`: `"api_error"`

687* `event.timestamp`: Timestamp ISO 8601707* `event.timestamp`: Timestamp ISO 8601

688* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão708* `event.sequence`: Contador monotonicamente crescente para ordenar eventos dentro de uma sessão

689* `model`: Modelo usado (por exemplo, "claude-sonnet-4-6")709* `model`: Modelo usado (por exemplo, "claude-sonnet-5")

690* `error`: Mensagem de erro710* `error`: Mensagem de erro

691* `status_code`: Código de status HTTP como número. Ausente para erros não-HTTP, como falhas de conexão.711* `status_code`: Código de status HTTP como número. Ausente para erros não-HTTP, como falhas de conexão.

692* `duration_ms`: Duração da solicitação em milissegundos712* `duration_ms`: Duração da solicitação em milissegundos


1156* Consumo incomum de tokens1176* Consumo incomum de tokens

1157* Alto volume de sessão de usuários específicos1177* Alto volume de sessão de usuários específicos

1158 1178 

1159Todas as métricas podem ser segmentadas pelos [atributos padrão](#standard-attributes). O atributo `model` está disponível em `claude_code.token.usage`, `claude_code.cost.usage` e {/* min-version: 2.1.172 */}a partir da v2.1.172, `claude_code.lines_of_code.count`. Divisões por modelo de commits podem ser apenas aproximadas unindo contra as métricas de token ou custo em `session.id`, já que uma sessão pode abranger vários modelos. Filtre o lado do token ou custo para linhas onde `query_source` é `"main"` para que solicitações auxiliares e de subagente não atribuam os commits da sessão a um modelo que não os fez.1179Todas as métricas podem ser segmentadas pelos [atributos padrão](#standard-attributes). O atributo `model` está disponível em `claude_code.token.usage`, `claude_code.cost.usage` e a partir da v2.1.172, `claude_code.lines_of_code.count`.

1180 

1181Divisões por modelo de commits podem ser apenas aproximadas unindo contra as métricas de token ou custo em `session.id`, já que uma sessão pode abranger vários modelos. Filtre o lado do token ou custo para linhas onde `query_source` é `"main"` para que solicitações auxiliares e de subagente não atribuam os commits da sessão a um modelo que não os fez.

1160 1182 

1161<h3 id="detect-retry-exhaustion">1183<h3 id="detect-retry-exhaustion">

1162 Detectar esgotamento de tentativas1184 Detectar esgotamento de tentativas


1187 Auditar eventos de segurança1209 Auditar eventos de segurança

1188</h2>1210</h2>

1189 1211 

1190Os eventos OpenTelemetry são a fonte de dados de auditoria para atividade do Claude Code. Cada evento carrega atributos de identidade que vinculam chamadas de ferramenta, atividade MCP e decisões de permissão de volta ao usuário que as acionou, e o exportador de logs OTLP pode entregar esses eventos a qualquer plataforma Security Information and Event Management (SIEM) com um receptor OTLP ou a um OpenTelemetry Collector que encaminha para seu SIEM.1212Os eventos OpenTelemetry são a fonte de dados de auditoria para atividade do Claude Code. Cada evento carrega atributos de identidade que vinculam chamadas de ferramenta, atividade MCP e decisões de permissão de volta ao usuário que as acionou. O exportador de logs OTLP pode entregar esses eventos a qualquer plataforma Security Information and Event Management (SIEM) com um receptor OTLP, ou a um OpenTelemetry Collector que encaminha para seu SIEM.

1191 1213 

1192<h3 id="attribute-actions-to-users">1214<h3 id="attribute-actions-to-users">

1193 Atribuir ações a usuários1215 Atribuir ações a usuários

1194</h3>1216</h3>

1195 1217 

1196Os [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, mais o `user.id` com escopo de instalação e o `session.id` por sessão.1218Os [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, 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](/pt/claude-apps-gateway), onde é o assunto do IdP do token emitido pelo gateway.

1197 1219 

1198Chamadas de ferramenta MCP, comandos Bash e edições de arquivo são, portanto, atribuídas ao desenvolvedor que iniciou a sessão. 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.1220Chamadas de ferramenta MCP, comandos Bash e edições de arquivo são, portanto, atribuídas ao desenvolvedor que iniciou a sessão. 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](/pt/claude-apps-gateway).

1199 1221 

1200Quando Claude Code autentica com uma chave de API direta, ou contra Bedrock, Vertex AI 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:1222Quando Claude Code autentica com uma chave de API direta, ou contra Bedrock, Vertex AI 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).

1201 1223 

1202```bash theme={null}1224```bash theme={null}

1203export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1225export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."


1319* Conteúdos de arquivo brutos e trechos de código não são incluídos em métricas ou eventos. Os spans de rastreamento são um caminho de dados separado: veja o ponto `OTEL_LOG_TOOL_CONTENT` abaixo1341* Conteúdos de arquivo brutos e trechos de código não são incluídos em métricas ou eventos. Os spans de rastreamento são um caminho de dados separado: veja o ponto `OTEL_LOG_TOOL_CONTENT` abaixo

1320* Quando autenticado via OAuth, `user.email` é incluído em atributos de telemetria. Se isso for uma preocupação para sua organização, trabalhe com seu backend de telemetria para filtrar ou reduzir este campo1342* Quando autenticado via OAuth, `user.email` é incluído em atributos de telemetria. Se isso for uma preocupação para sua organização, trabalhe com seu backend de telemetria para filtrar ou reduzir este campo

1321* O conteúdo do prompt do usuário não é coletado por padrão. Apenas o comprimento do prompt é registrado. Para incluir conteúdo do prompt, defina `OTEL_LOG_USER_PROMPTS=1`1343* O conteúdo do prompt do usuário não é coletado por padrão. Apenas o comprimento do prompt é registrado. Para incluir conteúdo do prompt, defina `OTEL_LOG_USER_PROMPTS=1`

1344* O texto de resposta do assistente não é coletado por padrão. Apenas o comprimento da resposta é registrado. Para incluir texto de resposta, defina `OTEL_LOG_ASSISTANT_RESPONSES=1`. Como todos os dados OpenTelemetry do Claude Code, o texto de resposta é enviado apenas para o endpoint OTel que você configura, nunca para a Anthropic. Quando esta variável não está definida, `OTEL_LOG_USER_PROMPTS` é usado como fallback, portanto defina `OTEL_LOG_ASSISTANT_RESPONSES=0` se você quiser conteúdo de prompt sem conteúdo de resposta

1322* Argumentos de entrada de ferramenta e parâmetros não são registrados por padrão. Para incluí-los, defina `OTEL_LOG_TOOL_DETAILS=1`. Estes dados são enviados apenas para o endpoint OTEL que você configura, nunca para a Anthropic. Os argumentos ainda podem conter valores sensíveis, portanto configure seu backend de telemetria para filtrar ou reduzir esses atributos conforme necessário. Quando ativado:1345* Argumentos de entrada de ferramenta e parâmetros não são registrados por padrão. Para incluí-los, defina `OTEL_LOG_TOOL_DETAILS=1`. Estes dados são enviados apenas para o endpoint OTEL que você configura, nunca para a Anthropic. Os argumentos ainda podem conter valores sensíveis, portanto configure seu backend de telemetria para filtrar ou reduzir esses atributos conforme necessário. Quando ativado:

1323 * Eventos `tool_result` e `tool_decision` incluem um atributo `tool_parameters` com comandos Bash, nomes de servidor MCP e ferramenta, e nomes de skill. Campos como `full_command` são emitidos sem truncamento1346 * Eventos `tool_result` e `tool_decision` incluem um atributo `tool_parameters` com comandos Bash, nomes de servidor MCP e ferramenta, e nomes de skill. Campos como `full_command` são emitidos sem truncamento

1324 * Eventos `tool_result` adicionalmente incluem um atributo `tool_input` com caminhos de arquivo, URLs, padrões de busca e outros argumentos. Valores individuais com mais de 512 caracteres são truncados e o total é limitado a \~4 K caracteres1347 * Eventos `tool_result` adicionalmente incluem um atributo `tool_input` com caminhos de arquivo, URLs, padrões de busca e outros argumentos. Valores individuais com mais de 512 caracteres são truncados e o total é limitado a \~4 K caracteres

Details

63 Armazenamento de certificados CA63 Armazenamento de certificados CA

64</h2>64</h2>

65 65 

66Por padrão, Claude Code confia tanto em seus certificados CA Mozilla agrupados quanto no armazenamento de certificados do seu sistema operacional. Proxies de inspeção TLS empresariais, como CrowdStrike Falcon e Zscaler, funcionam sem configuração adicional quando seu certificado raiz é instalado no armazenamento de confiança do SO.66Por padrão, Claude Code confia tanto em seus certificados CA Mozilla agrupados quanto no armazenamento de certificados do seu sistema operacional. Ler o armazenamento do SO requer um runtime com `tls.getCACertificates`: o instalador nativo sempre possui, e instalações npm precisam do Node 22.15 ou posterior. Em versões mais antigas do Node, apenas o conjunto agrupado e `NODE_EXTRA_CA_CERTS` se aplicam. Proxies de inspeção TLS empresariais, como CrowdStrike Falcon e Zscaler, funcionam sem configuração adicional quando seu certificado raiz é instalado no armazenamento de confiança do SO e o runtime pode lê-lo.

67 67 

68`CLAUDE_CODE_CERT_STORE` aceita uma lista separada por vírgulas de fontes. Os valores reconhecidos são `bundled` para o conjunto de CA Mozilla enviado com Claude Code e `system` para o armazenamento de confiança do sistema operacional. O padrão é `bundled,system`.68`CLAUDE_CODE_CERT_STORE` aceita uma lista separada por vírgulas de fontes. Os valores reconhecidos são `bundled` para o conjunto de CA Mozilla enviado com Claude Code e `system` para o armazenamento de confiança do sistema operacional. O padrão é `bundled,system`.

69 69 


131 131 

132Claude Code também envia telemetria operacional opcional por padrão, que você pode desabilitar com variáveis de ambiente. Consulte [Serviços de telemetria](/pt/data-usage#telemetry-services) para saber como desabilitá-la antes de finalizar sua lista de permissões.132Claude Code também envia telemetria operacional opcional por padrão, que você pode desabilitar com variáveis de ambiente. Consulte [Serviços de telemetria](/pt/data-usage#telemetry-services) para saber como desabilitá-la antes de finalizar sua lista de permissões.

133 133 

134Ao usar [Amazon Bedrock](/pt/amazon-bedrock), [Google Vertex AI](/pt/google-vertex-ai) ou [Microsoft Foundry](/pt/microsoft-foundry), o tráfego de modelo e autenticação vão para seu provedor em vez de `api.anthropic.com`, `claude.ai` ou `platform.claude.com`. A ferramenta WebFetch ainda chama `api.anthropic.com` para sua [verificação de segurança de domínio](/pt/data-usage#webfetch-domain-safety-check) a menos que você defina `skipWebFetchPreflight: true` em [configurações](/pt/settings).134Ao usar [Amazon Bedrock](/pt/amazon-bedrock), [Google Vertex AI](/pt/google-vertex-ai), [Microsoft Foundry](/pt/microsoft-foundry) ou uma sessão de [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectada, o tráfego de modelo e autenticação vão para seu provedor ou gateway em vez de `api.anthropic.com`, `claude.ai` ou `platform.claude.com`. A ferramenta WebFetch ainda chama `api.anthropic.com` para sua [verificação de segurança de domínio](/pt/data-usage#webfetch-domain-safety-check) a menos que você defina `skipWebFetchPreflight: true` em [configurações](/pt/settings).

135 135 

136[Claude Code na web](/pt/claude-code-on-the-web) e [Code Review](/pt/code-review) se conectam aos seus repositórios a partir da infraestrutura gerenciada pela Anthropic. Se sua organização GitHub Enterprise Cloud restringe o acesso por endereço IP, ative [herança de lista de permissão 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). O Claude GitHub App registra seus intervalos de IP, portanto, ativar essa configuração permite acesso sem configuração manual. Para [adicionar os intervalos à sua lista de permissões manualmente](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) em vez disso, ou para configurar outros firewalls, consulte [Endereços IP da API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).136[Claude Code na web](/pt/claude-code-on-the-web) e [Code Review](/pt/code-review) se conectam aos seus repositórios a partir da infraestrutura gerenciada pela Anthropic. Se sua organização GitHub Enterprise Cloud restringe o acesso por endereço IP, ative [herança de lista de permissão 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). O Claude GitHub App registra seus intervalos de IP, portanto, ativar essa configuração permite acesso sem configuração manual. Para [adicionar os intervalos à sua lista de permissões manualmente](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) em vez disso, ou para configurar outros firewalls, consulte [Endereços IP da API Anthropic](https://platform.claude.com/docs/en/api/ip-addresses).

137 137 

Details

37 <Tab title="CLI">37 <Tab title="CLI">

38 **Durante uma sessão**: pressione `Shift+Tab` para ciclar `default` → `acceptEdits` → `plan`. O modo atual aparece na barra de status. Nem todo modo está no ciclo padrão:38 **Durante uma sessão**: pressione `Shift+Tab` para ciclar `default` → `acceptEdits` → `plan`. O modo atual aparece na barra de status. Nem todo modo está no ciclo padrão:

39 39 

40 * `auto`: aparece quando sua conta atende aos [requisitos do auto mode](#eliminate-prompts-with-auto-mode); ciclar para auto mostra um prompt de aceitação até que você o aceite, ou selecione **Não, não pergunte novamente** para remover auto do ciclo40 * `auto`: aparece quando sua conta atende aos [requisitos do auto mode](#eliminate-prompts-with-auto-mode); ciclar para ele alterna modos sem um prompt de confirmação

41 * `bypassPermissions`: aparece depois que você inicia com `--permission-mode bypassPermissions`, `--dangerously-skip-permissions`, ou `--allow-dangerously-skip-permissions`; a variante `--allow-` adiciona o modo ao ciclo sem ativá-lo41 * `bypassPermissions`: aparece depois que você inicia com `--permission-mode bypassPermissions`, `--dangerously-skip-permissions`, ou `--allow-dangerously-skip-permissions`; a variante `--allow-` adiciona o modo ao ciclo sem ativá-lo

42 * `dontAsk`: nunca aparece no ciclo; defina-o com `--permission-mode dontAsk`42 * `dontAsk`: nunca aparece no ciclo; defina-o com `--permission-mode dontAsk`

43 43 


77 | Auto mode | `auto` |77 | Auto mode | `auto` |

78 | Bypass permissions | `bypassPermissions` |78 | Bypass permissions | `bypassPermissions` |

79 79 

80 Auto mode aparece no indicador de modo quando sua conta atende a todos os requisitos listados na [seção de auto mode](#eliminate-prompts-with-auto-mode). A configuração `claudeCode.initialPermissionMode` não aceita `auto`. Para iniciar em auto mode por padrão, defina `defaultMode` em suas [configurações de usuário](/pt/settings#settings-files). Claude Code ignora `defaultMode: "auto"` nas configurações de projeto e locais.80 Auto mode aparece no indicador de modo quando sua conta atende a todos os requisitos listados na [seção de auto mode](#eliminate-prompts-with-auto-mode). A configuração `claudeCode.initialPermissionMode` não aceita `auto`. Para iniciar em auto mode por padrão, defina `defaultMode` em suas [configurações de usuário](/pt/settings#settings-files) em vez disso. Claude Code ignora `defaultMode: "auto"` nas configurações de projeto e locais.

81 81 

82 Bypass permissions requer o toggle **Allow dangerously skip permissions** nas configurações da extensão antes de aparecer no indicador de modo.82 Bypass permissions requer o toggle **Allow dangerously skip permissions** nas configurações da extensão antes de aparecer no indicador de modo.

83 83 


169```169```

170 170 

171<h2 id="eliminate-prompts-with-auto-mode">171<h2 id="eliminate-prompts-with-auto-mode">

172 Elimine prompts com auto mode172 Elimine prompts de permissão com auto mode

173</h2>173</h2>

174 174 

175<Note>175<Note>


181Auto mode também instrui Claude a continuar trabalhando sem parar para fazer perguntas de esclarecimento, embora Claude ainda pergunte quando seu prompt ou uma skill depende explicitamente disso. Para obter um comportamento autônomo mais forte mantendo prompts de permissão, defina o [estilo de saída Proactive output style](/pt/output-styles) em vez disso.181Auto mode também instrui Claude a continuar trabalhando sem parar para fazer perguntas de esclarecimento, embora Claude ainda pergunte quando seu prompt ou uma skill depende explicitamente disso. Para obter um comportamento autônomo mais forte mantendo prompts de permissão, defina o [estilo de saída Proactive output style](/pt/output-styles) em vez disso.

182 182 

183<Warning>183<Warning>

184 Auto mode é uma visualização de pesquisa. Reduz prompts mas não garante segurança. Use-o para tarefas onde você confia na direção geral, não como substituto para revisão em operações sensíveis.184 Auto mode é uma visualização de pesquisa. Reduz prompts de permissão mas não garante segurança. Use-o para tarefas onde você confia na direção geral, não como substituto para revisão em operações sensíveis.

185</Warning>185</Warning>

186 186 

187Auto mode está disponível apenas quando sua conta atende a todos esses requisitos:187Auto mode está disponível apenas quando sua conta atende a todos esses requisitos:

188 188 

189* **Plan**: Todos os planos.189* **Plan**: Todos os planos.

190* **Owner**: em Team e Enterprise, um Owner deve habilitá-lo em [configurações de admin do Claude Code](https://claude.ai/admin-settings/claude-code) antes que os usuários possam ativá-lo. Administradores também podem bloqueá-lo definindo `permissions.disableAutoMode` para `"disable"` em [configurações gerenciadas](/pt/permissions#managed-settings).190* **Owner**: em Team e Enterprise, um Owner deve habilitá-lo em [configurações de admin do Claude Code](https://claude.ai/admin-settings/claude-code) antes que os usuários possam ativá-lo. Administradores também podem bloqueá-lo definindo `permissions.disableAutoMode` para `"disable"` em [configurações gerenciadas](/pt/permissions#managed-settings).

191* **Model**: na API Anthropic, Claude Opus 4.6 ou posterior, ou Sonnet 4.6. No Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry, apenas Claude Opus 4.7 e Opus 4.8. Modelos mais antigos, incluindo Sonnet 4.5, Opus 4.5, Haiku e modelos claude-3, não são suportados em nenhum provedor.191* **Model**: na API Anthropic, Claude Opus 4.6 ou posterior, ou Sonnet 4.6 ou posterior. No Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry e sessões [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectadas, apenas Claude Sonnet 5, Opus 4.7 e Opus 4.8. Modelos mais antigos, incluindo Sonnet 4.5, Opus 4.5, Haiku e modelos claude-3, não são suportados em nenhum provedor.

192* **Provider**: disponível por padrão na API Anthropic. No Amazon Bedrock, Google Cloud Vertex AI e Microsoft Foundry, auto mode está desativado até que você [defina `CLAUDE_CODE_ENABLE_AUTO_MODE`](#enable-auto-mode-on-bedrock-vertex-ai-or-foundry).192* **Provider**: disponível por padrão na API Anthropic. No Amazon Bedrock, Google Cloud Vertex AI, Microsoft Foundry e sessões gateway de aplicativos Claude conectadas, auto mode está desativado até que você [defina `CLAUDE_CODE_ENABLE_AUTO_MODE`](#enable-auto-mode-on-bedrock-vertex-ai-or-foundry).

193 193 

194Se Claude Code relatar auto mode como indisponível, um desses requisitos não foi atendido; isso não é uma interrupção transitória. Uma mensagem separada que nomeia um modelo e diz que auto mode "não pode determinar a segurança" de uma ação é uma interrupção transitória do classificador; veja a [referência de erro](/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action).194Se Claude Code relatar auto mode como indisponível, um desses requisitos não foi atendido; isso não é uma interrupção transitória. Uma mensagem separada que nomeia um modelo e diz que auto mode "não pode determinar a segurança" de uma ação é uma interrupção transitória do classificador; veja a [referência de erro](/pt/errors#auto-mode-cannot-determine-the-safety-of-an-action).

195 195 


199 Habilitar auto mode no Bedrock, Vertex AI ou Foundry199 Habilitar auto mode no Bedrock, Vertex AI ou Foundry

200</h3>200</h3>

201 201 

202No [Amazon Bedrock](/pt/amazon-bedrock), [Google Cloud Vertex AI](/pt/google-vertex-ai) e [Microsoft Foundry](/pt/microsoft-foundry), auto mode não aparece no ciclo `Shift+Tab` até que `CLAUDE_CODE_ENABLE_AUTO_MODE` seja definido como `1`. A variável funciona em Claude Code v2.1.158 e posterior. Apenas Claude Opus 4.7 e Opus 4.8 são suportados nesses provedores.202No [Amazon Bedrock](/pt/amazon-bedrock), [Google Cloud Vertex AI](/pt/google-vertex-ai), [Microsoft Foundry](/pt/microsoft-foundry) e sessões [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectadas, auto mode não aparece no ciclo `Shift+Tab` até que `CLAUDE_CODE_ENABLE_AUTO_MODE` seja definido como `1`. A variável funciona em Claude Code v2.1.158 e posterior. Apenas Claude Sonnet 5, Opus 4.7 e Opus 4.8 são suportados nesses provedores.

203 203 

204Para habilitá-lo para um desenvolvedor, adicione a variável ao bloco `env` em `~/.claude/settings.json`:204Para habilitá-lo para um desenvolvedor, adicione a variável ao bloco `env` em `~/.claude/settings.json`:

205 205 


217 217 

218Para impedir que desenvolvedores habilitem auto mode, defina `disableAutoMode` para `"disable"` em configurações gerenciadas. Isso substitui a variável de habilitação.218Para impedir que desenvolvedores habilitem auto mode, defina `disableAutoMode` para `"disable"` em configurações gerenciadas. Isso substitui a variável de habilitação.

219 219 

220Se você se conectar através de um [gateway LLM](/pt/llm-gateway) configurado com `ANTHROPIC_BASE_URL`, auto mode pode já estar acessível sem a variável de habilitação, porque o gateway roteia solicitações através da API Anthropic. A configuração `disableAutoMode` se aplica da mesma forma nessa configuração.220Se você se conectar através de um [gateway LLM](/pt/llm-gateway) configurado com `ANTHROPIC_BASE_URL`, auto mode pode já estar acessível sem a variável de habilitação, porque o gateway roteia solicitações através da API Anthropic. Isso não se aplica a uma sessão [gateway de aplicativos Claude](/pt/claude-apps-gateway) conectada, que é sua própria classe de provedor e requer a variável de habilitação. A configuração `disableAutoMode` se aplica da mesma forma em qualquer configuração.

221 221 

222<h3 id="what-the-classifier-blocks-by-default">222<h3 id="what-the-classifier-blocks-by-default">

223 O que o classificador bloqueia por padrão223 O que o classificador bloqueia por padrão


239* `git commit --amend` quando o commit no HEAD não foi criado nesta sessão239* `git commit --amend` quando o commit no HEAD não foi criado nesta sessão

240* `terraform destroy`, `pulumi destroy`, `cdk destroy`, ou `terragrunt destroy`, e aplicar um plano que destrói recursos240* `terraform destroy`, `pulumi destroy`, `cdk destroy`, ou `terragrunt destroy`, e aplicar um plano que destrói recursos

241 241 

242Claude Code v2.1.195 e posterior bloqueiam mais categorias por padrão. Várias dependem de entradas de [ambiente](/pt/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensíveis e escopos de IaC protegidos, que você pode restringir a nomes concretos.

243 

244* Escrita em um gerenciador de segredos, ou alteração de registros DNS ou certificados TLS

245* 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 de CI

246* Postagem de um comentário que é em si um comando para automação, como `atlantis apply` ou `/deploy` ou `/merge` de um bot

247* Alternância, ramificação ou exclusão de um sinalizador de recurso de produção

248* Aplicação de alterações de infraestrutura a um escopo de IaC protegido, ou drenagem e remoção de nós de cluster

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

250* Criação de recursos Kubernetes que são executados em cada nó ou interceptam tráfego de cluster, como DaemonSets e webhooks de admissão

251* Shells interativos ou port-forwards em um destino remoto sensível

252* Abertura de um túnel ou shell reverso que torna um serviço local acessível da internet pública

253* Impressão de uma credencial ou token ao vivo na transcrição ou em um arquivo

254* Acesso a um local de PII ou dados regulados, ou cópia de dados para fora de um

255* Roteamento de uma instalação de pacote em torno de seu registro de pacotes interno para um registro público

256* Execução de um comando com um sinalizador que desativa uma proteção de segurança, como `--insecure`

257* Ações do [Claude no Chrome](/pt/chrome) que poderiam enviar conteúdo da página, cookies ou credenciais fora de origem

258 

242**Permitido por padrão**:259**Permitido por padrão**:

243 260 

244* Operações de arquivo local em seu diretório de trabalho261* Operações de arquivo local em seu diretório de trabalho


247* Solicitações HTTP somente leitura264* Solicitações HTTP somente leitura

248* Push para o ramo em que você começou ou um que Claude criou265* Push para o ramo em que você começou ou um que Claude criou

249 266 

267Claude Code v2.1.195 e posterior também permitem estes por padrão:

268 

269* Exclusão dos trabalhos exatos que Claude criou anteriormente na mesma sessão

270* Leitura, revisão ou escrita de código relacionado à segurança, configs e modelos de ameaça como parte de sua tarefa

271* Mensagens entre agentes trabalhando juntos na mesma sessão multi-agente

272* Envio de dados para os domínios confiáveis, buckets e serviços que você lista em [`environment`](/pt/auto-mode-config#define-trusted-infrastructure). Isso cobre apenas fluxo de dados, não operações destrutivas ou de credenciais na mesma infraestrutura

273* [Claude no Chrome](/pt/chrome) navegação para um domínio interno confiável, localhost ou uma URL que você nomeou

274 

250Solicitações de acesso à rede do sandbox são roteadas através do classificador em vez de serem permitidas por padrão. Execute `claude auto-mode defaults` para ver as listas de regras completas. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repositórios confiáveis, buckets e serviços via configuração `autoMode.environment`: veja [Configure auto mode](/pt/auto-mode-config).275Solicitações de acesso à rede do sandbox são roteadas através do classificador em vez de serem permitidas por padrão. Execute `claude auto-mode defaults` para ver as listas de regras completas. Se ações rotineiras forem bloqueadas, um administrador pode adicionar repositórios confiáveis, buckets e serviços via configuração `autoMode.environment`: veja [Configure auto mode](/pt/auto-mode-config).

251 276 

252<h3 id="boundaries-you-state-in-conversation">277<h3 id="boundaries-you-state-in-conversation">

permissions.md +35 −24

Details

24 Gerenciar permissões24 Gerenciar permissões

25</h2>25</h2>

26 26 

27Você pode visualizar e gerenciar as permissões de ferramentas do Claude Code com `/permissions`. Esta interface lista todas as regras de permissão e o arquivo settings.json do qual são originadas.27Você pode visualizar e gerenciar as permissões de ferramentas do Claude Code com `/permissions`. Esta interface lista todas as regras de permissão e o arquivo `settings.json` do qual cada regra é originária.

28 28 

29* As regras **Allow** permitem que Claude Code use a ferramenta especificada sem aprovação manual.29* As regras **Allow** permitem que Claude Code use a ferramenta especificada sem aprovação manual.

30* As regras **Ask** solicitam confirmação sempre que Claude Code tenta usar a ferramenta especificada.30* As regras **Ask** solicitam confirmação sempre que Claude Code tenta usar a ferramenta especificada.

31* As regras **Deny** impedem que Claude Code use a ferramenta especificada.31* As regras **Deny** impedem que Claude Code use a ferramenta especificada.

32 32 

33As regras são avaliadas em ordem: deny, depois ask, depois allow. A primeira correspondência nessa ordem determina o resultado, e a especificidade da regra não altera a ordem. Uma regra deny ampla como `Bash(aws *)` bloqueia cada chamada correspondente, incluindo chamadas que também correspondem a uma regra allow mais estreita como `Bash(aws s3 ls)`, portanto uma regra deny não pode carregar exceções de lista de permissões. A mesma precedência se aplica entre ask e allow: uma regra ask correspondente solicita confirmação mesmo quando uma regra allow mais específica também corresponde à mesma chamada.33As regras são avaliadas em ordem: deny, depois ask, depois allow. A primeira correspondência nessa ordem determina o resultado, e a especificidade da regra não altera a ordem.

34 

35Uma regra deny ampla como `Bash(aws *)` bloqueia cada chamada correspondente, incluindo chamadas que também correspondem a uma regra allow mais estreita como `Bash(aws s3 ls)`, portanto uma regra deny não pode carregar exceções de lista de permissões. A mesma precedência se aplica entre ask e allow: uma regra ask correspondente solicita confirmação mesmo quando uma regra allow mais específica também corresponde à mesma chamada.

34 36 

35As regras deny se comportam de forma diferente dependendo se nomeiam uma ferramenta ou definem o escopo de um padrão dentro de uma. Um nome de ferramenta simples como `Bash` remove a ferramenta do contexto do Claude completamente, então Claude nunca a vê. Uma regra com escopo como `Bash(rm *)` deixa a ferramenta disponível e bloqueia chamadas correspondentes quando Claude tenta usá-las.37As regras deny se comportam de forma diferente dependendo se nomeiam uma ferramenta ou definem o escopo de um padrão dentro de uma. Um nome de ferramenta simples como `Bash` remove a ferramenta do contexto do Claude completamente, então Claude nunca a vê. Uma regra com escopo como `Bash(rm *)` deixa a ferramenta disponível e bloqueia chamadas correspondentes quando Claude tenta usá-las.

36 38 


42 Modos de permissão44 Modos de permissão

43</h2>45</h2>

44 46 

45Claude Code suporta vários modos de permissão que controlam como as ferramentas são aprovadas. Veja [Permission modes](/pt/permission-modes) para quando usar cada um. Defina o `defaultMode` em seus [arquivos de configuração](/pt/settings#settings-files):47Claude Code suporta vários modos de permissão que controlam como ele aprova chamadas de ferramentas. Veja [Modos de permissão](/pt/permission-modes) para quando usar cada um. Defina o `defaultMode` em seus [arquivos de configuração](/pt/settings#settings-files):

46 48 

47| Modo | Descrição |49| Modo | Descrição |

48| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |50| :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

49| `default` | Comportamento padrão: solicita permissão no primeiro uso de cada ferramenta |51| `default` | Comportamento padrão: solicita permissão no primeiro uso de cada ferramenta |

50| `acceptEdits` | Aceita automaticamente edições de arquivo e comandos comuns do sistema de arquivos (`mkdir`, `touch`, `mv`, `cp`, etc.) para caminhos no diretório de trabalho ou `additionalDirectories` |52| `acceptEdits` | Aceita automaticamente edições de arquivo e comandos comuns do sistema de arquivos como `mkdir`, `touch`, `mv` e `cp` para caminhos no diretório de trabalho ou `additionalDirectories` |

51| `plan` | Plan Mode: Claude lê arquivos e executa comandos shell somente leitura para explorar, mas não edita seus arquivos de origem |53| `plan` | Plan Mode: Claude lê arquivos e executa comandos shell somente leitura para explorar, mas não edita seus arquivos de origem |

52| `auto` | Aprova automaticamente chamadas de ferramentas com verificações de segurança em segundo plano que verificam se as ações se alinham com sua solicitação. Atualmente uma visualização de pesquisa |54| `auto` | Aprova automaticamente chamadas de ferramentas com verificações de segurança em segundo plano que verificam se as ações se alinham com sua solicitação. Atualmente uma visualização de pesquisa |

53| `dontAsk` | Nega automaticamente ferramentas a menos que pré-aprovadas via `/permissions` ou regras `permissions.allow` |55| `dontAsk` | Nega automaticamente ferramentas a menos que pré-aprovadas via `/permissions` ou regras `permissions.allow` |

54| `bypassPermissions` | Ignora prompts de permissão, exceto aqueles forçados por regras `ask` explícitas. Remoções de diretório raiz e diretório inicial como `rm -rf /` também ainda solicitam como um disjuntor |56| `bypassPermissions` | Ignora prompts de permissão, exceto aqueles forçados por regras `ask` explícitas. Remoções de diretório raiz e diretório inicial como `rm -rf /` também ainda solicitam como um disjuntor |

55 57 

56<Warning>58<Warning>

57 O modo `bypassPermissions` ignora prompts de permissão, incluindo escritas em `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` e `.mvn`. Regras `ask` explícitas ainda forçam um prompt, e remoções direcionadas ao diretório raiz do sistema de arquivos ou diretório inicial, como `rm -rf /` e `rm -rf ~`, ainda solicitam como um disjuntor contra erro do modelo. Use este modo apenas em ambientes isolados como contêineres ou VMs onde Claude Code não pode causar danos. Administradores podem impedir este modo definindo `permissions.disableBypassPermissionsMode` como `"disable"` em [configurações gerenciadas](#managed-settings).59 O modo `bypassPermissions` ignora prompts de permissão, incluindo escritas em `.git`, `.config/git`, `.claude`, `.vscode`, `.idea`, `.husky`, `.cargo`, `.devcontainer`, `.yarn` e `.mvn`. Regras `ask` explícitas ainda forçam um prompt, e remoções direcionadas ao diretório raiz do sistema de arquivos ou diretório inicial, como `rm -rf /` e `rm -rf ~`, ainda solicitam como um disjuntor contra erro do modelo. Use este modo apenas em ambientes isolados como contêineres ou VMs onde Claude Code não pode causar danos.

58</Warning>60</Warning>

59 61 

60Para evitar que o modo `bypassPermissions` ou `auto` seja usado, defina `permissions.disableBypassPermissionsMode` ou `permissions.disableAutoMode` como `"disable"` em qualquer [arquivo de configuração](/pt/settings#settings-files). Estes são mais úteis em [configurações gerenciadas](#managed-settings) onde não podem ser substituídos.62Para evitar que o modo `bypassPermissions` ou `auto` seja usado, defina `permissions.disableBypassPermissionsMode` ou `permissions.disableAutoMode` como `"disable"` em qualquer [arquivo de configuração](/pt/settings#settings-files). Estes são mais úteis em [configurações gerenciadas](#managed-settings) onde não podem ser substituídos.


95 Corresponder por parâmetro de entrada97 Corresponder por parâmetro de entrada

96</h3>98</h3>

97 99 

98As regras de negação e pergunta podem corresponder a um parâmetro de entrada de nível superior em qualquer ferramenta com `Tool(param:value)`. A regra corresponde quando Claude chama a ferramenta com esse parâmetro definido para esse valor exato. Esta sintaxe é para regras de negação e pergunta; uma regra de permissão para um valor de parâmetro não estabeleceria que a chamada é segura em geral, portanto as regras de permissão continuam a usar a sintaxe de especificador própria de cada ferramenta. Isso funciona para qualquer parâmetro escalar que a ferramenta aceita:100As regras de negação e pergunta podem corresponder a um parâmetro de entrada de nível superior em qualquer ferramenta com `Tool(param:value)`. A regra corresponde quando Claude chama a ferramenta com esse parâmetro definido para esse valor exato. Uma regra de permissão para um valor de parâmetro não estabeleceria que a chamada é segura em geral, portanto as regras de permissão continuam a usar a sintaxe de especificador própria de cada ferramenta. Isso funciona para qualquer parâmetro escalar que a ferramenta aceita:

99 101 

100| Regra | Corresponde |102| Regra | Corresponde |

101| :----------------------------- | :----------------------------------------------------- |103| :----------------------------- | :----------------------------------------------------- |


220 222 

221 * Opções antes da URL: `curl -X GET http://github.com/...`223 * Opções antes da URL: `curl -X GET http://github.com/...`

222 * Protocolo diferente: `curl https://github.com/...`224 * Protocolo diferente: `curl https://github.com/...`

223 * Redirecionamentos: `curl -L http://bit.ly/xyz` (redireciona para github)225 * Redirecionamentos: `curl -L http://bit.ly/xyz`, que redireciona para GitHub

224 * Variáveis: `URL=http://github.com && curl $URL`226 * Variáveis: `URL=http://github.com && curl $URL`

225 * Espaços extras: `curl http://github.com`227 * Espaços extras: `curl http://github.com`

226 228 


270As regras Read e Edit seguem a especificação [gitignore](https://git-scm.com/docs/gitignore) com quatro tipos de padrão distintos:272As regras Read e Edit seguem a especificação [gitignore](https://git-scm.com/docs/gitignore) com quatro tipos de padrão distintos:

271 273 

272| Padrão | Significado | Exemplo | Corresponde |274| Padrão | Significado | Exemplo | Corresponde |

273| ------------------ | --------------------------------------------------- | -------------------------------- | ------------------------------- |275| ------------------ | ----------------------------------------------- | -------------------------------- | ------------------------------- |

274| `//path` | Caminho **absoluto** da raiz do sistema de arquivos | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |276| `//path` | Caminho absoluto da raiz do sistema de arquivos | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

275| `~/path` | Caminho do diretório **home** | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |277| `~/path` | Caminho do diretório home | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

276| `/path` | Caminho **relativo à raiz do projeto** | `Edit(/src/**/*.ts)` | `<raiz do projeto>/src/**/*.ts` |278| `/path` | Caminho relativo à raiz do projeto | `Edit(/src/**/*.ts)` | `<raiz do projeto>/src/**/*.ts` |

277| `path` ou `./path` | Caminho **relativo ao diretório atual** | `Read(*.env)` | `<cwd>/*.env` |279| `path` ou `./path` | Caminho relativo ao diretório atual | `Read(*.env)` | `<cwd>/*.env` |

278 280 

279<Warning>281<Warning>

280 Um padrão como `/Users/alice/file` NÃO é um caminho absoluto. É relativo à raiz do projeto. Use `//Users/alice/file` para caminhos absolutos.282 Um padrão como `/Users/alice/file` não é um caminho absoluto. É relativo à raiz do projeto. Use `//Users/alice/file` para caminhos absolutos.

281</Warning>283</Warning>

282 284 

283No Windows, os caminhos são normalizados para forma POSIX antes da correspondência. `C:\Users\alice` se torna `/c/Users/alice`, portanto use `//c/**/.env` para corresponder arquivos `.env` em qualquer lugar nessa unidade. Para corresponder em todas as unidades, use `//**/.env`.285No Windows, os caminhos são normalizados para forma POSIX antes da correspondência. `C:\Users\alice` se torna `/c/Users/alice`, portanto use `//c/**/.env` para corresponder arquivos `.env` em qualquer lugar nessa unidade. Para corresponder em todas as unidades, use `//**/.env`.

284 286 

285Exemplos:287Exemplos:

286 288 

287* `Edit(/docs/**)`: edita em `<projeto>/docs/` (NÃO `/docs/` e NÃO `<projeto>/.claude/docs/`)289* `Edit(/docs/**)`: edita em `<projeto>/docs/`, não `/docs/` ou `<projeto>/.claude/docs/`

288* `Read(~/.zshrc)`: lê o `.zshrc` do seu diretório home290* `Read(~/.zshrc)`: lê o `.zshrc` do seu diretório home

289* `Edit(//tmp/scratch.txt)`: edita o caminho absoluto `/tmp/scratch.txt`291* `Edit(//tmp/scratch.txt)`: edita o caminho absoluto `/tmp/scratch.txt`

290* `Read(src/**)`: lê de `<diretório-atual>/src/`292* `Read(src/**)`: lê de `<diretório-atual>/src/`


297| `Read(//**/.env)` | qualquer `.env` em qualquer lugar do sistema de arquivos | nada; a regra é ancorada na raiz do sistema de arquivos |299| `Read(//**/.env)` | qualquer `.env` em qualquer lugar do sistema de arquivos | nada; a regra é ancorada na raiz do sistema de arquivos |

298 300 

299<Note>301<Note>

300 Em padrões gitignore, `*` corresponde a arquivos em um único diretório enquanto `**` corresponde recursivamente entre diretórios. Para permitir acesso a todos os arquivos, use apenas o nome da ferramenta sem parênteses: `Read`, `Edit` ou `Write`.302 Em padrões gitignore, `*` corresponde dentro de um único segmento de caminho e pode aparecer em qualquer posição no padrão, enquanto `**` corresponde entre diretórios. Para permitir acesso a todos os arquivos, use apenas o nome da ferramenta sem parênteses: `Read`, `Edit` ou `Write`.

301</Note>303</Note>

302 304 

303Quando Claude acessa um symlink, as regras de permissão verificam dois caminhos: o próprio symlink e o arquivo para o qual ele se resolve. As regras allow e deny tratam esse par de forma diferente: as regras allow voltam a solicitar, enquanto as regras deny bloqueiam imediatamente.305Quando Claude acessa um symlink, as regras de permissão verificam dois caminhos: o próprio symlink e o arquivo para o qual ele se resolve. As regras allow e deny tratam esse par de forma diferente: as regras allow voltam a solicitar, enquanto as regras deny bloqueiam imediatamente.


323 MCP325 MCP

324</h3>326</h3>

325 327 

326* `mcp__puppeteer` corresponde a qualquer ferramenta fornecida pelo servidor `puppeteer` (nome configurado em Claude Code)328As regras MCP usam o nome do servidor conforme configurado em Claude Code, opcionalmente seguido pelo nome de uma ferramenta desse servidor.

327* `mcp__puppeteer__*` sintaxe com caracteres curinga que também corresponde a todas as ferramentas do servidor `puppeteer`329 

330* `mcp__puppeteer` corresponde a qualquer ferramenta fornecida pelo servidor `puppeteer`

331* `mcp__puppeteer__*` usa sintaxe com caracteres curinga e também corresponde a todas as ferramentas do servidor `puppeteer`

328* `mcp__puppeteer__puppeteer_navigate` corresponde à ferramenta `puppeteer_navigate` fornecida pelo servidor `puppeteer`332* `mcp__puppeteer__puppeteer_navigate` corresponde à ferramenta `puppeteer_navigate` fornecida pelo servidor `puppeteer`

329 333 

330<h3 id="agent-subagents">334<h3 id="agent-subagents">


418 422 

419Permissões e [sandboxing](/pt/sandboxing) são camadas de segurança complementares:423Permissões e [sandboxing](/pt/sandboxing) são camadas de segurança complementares:

420 424 

421* **Permissões** controlam quais ferramentas Claude Code pode usar e quais arquivos ou domínios pode acessar. Elas se aplicam a todas as ferramentas (Bash, Read, Edit, WebFetch, MCP e outras).425* **Permissões** controlam quais ferramentas Claude Code pode usar e quais arquivos ou domínios pode acessar. Elas se aplicam a todas as ferramentas, incluindo Bash, Read, Edit, WebFetch e MCP.

422* **Sandboxing** fornece imposição em nível de SO que restringe o acesso do Bash à rede e sistema de arquivos. Aplica-se apenas a comandos Bash e seus processos filhos.426* **Sandboxing** fornece imposição em nível de SO que restringe o acesso do Bash à rede e sistema de arquivos. Aplica-se apenas a comandos Bash e seus processos filhos.

423 427 

424Use ambos para defesa em profundidade:428Use ambos para defesa em profundidade:


428* As restrições de sistema de arquivos no sandbox combinam as configurações [`sandbox.filesystem`](/pt/sandboxing) com regras deny de Read e Edit; ambas são mescladas no limite final do sandbox432* As restrições de sistema de arquivos no sandbox combinam as configurações [`sandbox.filesystem`](/pt/sandboxing) com regras deny de Read e Edit; ambas são mescladas no limite final do sandbox

429* As restrições de rede combinam regras de permissão WebFetch com as listas `allowedDomains` e `deniedDomains` do sandbox433* As restrições de rede combinam regras de permissão WebFetch com as listas `allowedDomains` e `deniedDomains` do sandbox

430 434 

431Quando o sandboxing é ativado com `autoAllowBashIfSandboxed: true`, que é o padrão, comandos Bash em sandbox são executados sem solicitar mesmo se suas permissões incluem uma regra ask simples `Bash`, ou o [formulário equivalente `Bash(*)`](#match-all-uses-of-a-tool): o limite do sandbox substitui esse prompt de ferramenta inteira. Regras ask com escopo de conteúdo como `Bash(git push *)` ainda forçam um prompt, regras deny explícitas ainda se aplicam, e comandos `rm` ou `rmdir` que visam `/`, seu diretório inicial ou outros caminhos críticos do sistema ainda acionam um prompt. Comandos que não serão executados em sandbox, como comandos excluídos, respeitam a regra ask simples `Bash` como de costume. Veja [modos de sandbox](/pt/sandboxing#sandbox-modes) para alterar este comportamento.435Quando o sandboxing é ativado com `autoAllowBashIfSandboxed: true`, que é o padrão, comandos Bash em sandbox são executados sem solicitar mesmo se suas permissões incluem uma regra ask simples `Bash`, ou o [formulário equivalente `Bash(*)`](#match-all-uses-of-a-tool): o limite do sandbox substitui esse prompt de ferramenta inteira. Estas verificações ainda se aplicam:

436 

437* Regras ask com escopo de conteúdo como `Bash(git push *)` ainda forçam um prompt

438* Regras deny explícitas ainda se aplicam

439* Comandos `rm` ou `rmdir` que visam `/`, seu diretório inicial ou outros caminhos críticos do sistema ainda acionam um prompt

440 

441Comandos que não serão executados em sandbox, como comandos excluídos, respeitam a regra ask simples `Bash` como de costume. Veja [modos de sandbox](/pt/sandboxing#sandbox-modes) para alterar este comportamento.

432 442 

433<h2 id="managed-settings">443<h2 id="managed-settings">

434 Configurações gerenciadas444 Configurações gerenciadas

435</h2>445</h2>

436 446 

437Para organizações que precisam de controle centralizado sobre a configuração do Claude Code, administradores podem implantar configurações gerenciadas que não podem ser substituídas por configurações de usuário ou projeto. Estas configurações de política seguem o mesmo formato que arquivos de configuração regulares e podem ser entregues através de políticas MDM/nível de SO, arquivos de configuração gerenciados ou [configurações gerenciadas por servidor](/pt/server-managed-settings). Veja [arquivos de configuração](/pt/settings#settings-files) para mecanismos de entrega e locais de arquivo.447Para organizações que precisam de controle centralizado sobre a configuração do Claude Code, administradores podem implantar configurações gerenciadas que não podem ser substituídas por configurações de usuário ou projeto. Estas configurações de política seguem o mesmo formato que arquivos de configuração regulares e podem ser entregues através de políticas MDM/nível de SO, arquivos de configuração gerenciados, [configurações gerenciadas por servidor](/pt/server-managed-settings), ou um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado. Veja [arquivos de configuração](/pt/settings#settings-files) para mecanismos de entrega e locais de arquivo.

438 448 

439<h3 id="managed-only-settings">449<h3 id="managed-only-settings">

440 Configurações apenas gerenciadas450 Configurações apenas gerenciadas


443As seguintes configurações são lidas apenas de configurações gerenciadas. Colocá-las em arquivos de configuração de usuário ou projeto não tem efeito.453As seguintes configurações são lidas apenas de configurações gerenciadas. Colocá-las em arquivos de configuração de usuário ou projeto não tem efeito.

444 454 

445| Configuração | Descrição |455| Configuração | Descrição |

446| :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |456| :--------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

447| `allowAllClaudeAiMcps` | Quando `true`, conectores claude.ai carregam junto com um `managed-mcp.json` implantado em vez de serem suprimidos por seu controle exclusivo. Veja [Configuração MCP gerenciada](/pt/managed-mcp) |457| `allowAllClaudeAiMcps` | Quando `true`, conectores claude.ai carregam junto com um `managed-mcp.json` implantado em vez de serem suprimidos por seu controle exclusivo. Veja [Configuração MCP gerenciada](/pt/managed-mcp) |

448| `allowedChannelPlugins` | Lista de permissão de plugins de canal que podem enviar mensagens. Substitui a lista de permissão padrão da Anthropic quando definida. Requer `channelsEnabled: true`. Veja [Restringir quais plugins de canal podem ser executados](/pt/channels#restrict-which-channel-plugins-can-run) |458| `allowedChannelPlugins` | Lista de permissão de plugins de canal que podem enviar mensagens. Substitui a lista de permissão padrão da Anthropic quando definida. Requer `channelsEnabled: true`. Veja [Restringir quais plugins de canal podem ser executados](/pt/channels#restrict-which-channel-plugins-can-run) |

449| `allowManagedHooksOnly` | Quando `true`, apenas hooks gerenciados, hooks SDK e hooks de plugins força-ativados em configurações gerenciadas `enabledPlugins` são carregados. Hooks de usuário, projeto e todos os outros plugins são bloqueados |459| `allowManagedHooksOnly` | Quando `true`, apenas hooks gerenciados, hooks SDK e hooks de plugins força-ativados em configurações gerenciadas `enabledPlugins` são carregados. Hooks de usuário, projeto e todos os outros plugins são bloqueados |


451| `allowManagedPermissionRulesOnly` | Quando `true`, impede que configurações de usuário e projeto definam regras de permissão `allow`, `ask` ou `deny`. Apenas regras em configurações gerenciadas se aplicam. Não afeta a lista de permissão do servidor MCP; para isso, defina `allowManagedMcpServersOnly` |461| `allowManagedPermissionRulesOnly` | Quando `true`, impede que configurações de usuário e projeto definam regras de permissão `allow`, `ask` ou `deny`. Apenas regras em configurações gerenciadas se aplicam. Não afeta a lista de permissão do servidor MCP; para isso, defina `allowManagedMcpServersOnly` |

452| `blockedMarketplaces` | Lista de bloqueio de fontes de marketplace. Fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/pt/plugin-marketplaces#managed-marketplace-restrictions) |462| `blockedMarketplaces` | Lista de bloqueio de fontes de marketplace. Fontes bloqueadas são verificadas antes do download, portanto nunca tocam o sistema de arquivos. Veja [restrições de marketplace gerenciadas](/pt/plugin-marketplaces#managed-marketplace-restrictions) |

453| `channelsEnabled` | Permitir [channels](/pt/channels) para a organização. Veja [controles empresariais](/pt/channels#enterprise-controls) para o padrão em cada plano |463| `channelsEnabled` | Permitir [channels](/pt/channels) para a organização. Veja [controles empresariais](/pt/channels#enterprise-controls) para o padrão em cada plano |

464| `disableSideloadFlags` | {/* min-version: 2.1.193 */}Rejeitar os sinalizadores CLI `--plugin-dir`, `--plugin-url`, `--agents` e `--mcp-config` na inicialização. Sem isso, os usuários podem contornar `strictKnownMarketplaces` para uma única execução passando esses sinalizadores. Veja [`disableSideloadFlags`](/pt/settings#available-settings). Requer Claude Code v2.1.193 ou posterior |

454| `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 [imposição fail-closed](/pt/server-managed-settings#enforce-fail-closed-startup) |465| `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 [imposição fail-closed](/pt/server-managed-settings#enforce-fail-closed-startup) |

455| `pluginTrustMessage` | Mensagem personalizada anexada ao aviso de confiança de plugin mostrado antes da instalação |466| `pluginTrustMessage` | Mensagem personalizada anexada ao aviso de confiança de plugin mostrado antes da instalação |

456| `sandbox.filesystem.allowManagedReadPathsOnly` | Quando `true`, apenas caminhos `filesystem.allowRead` de configurações gerenciadas são respeitados. `denyRead` ainda se mescla de todas as fontes |467| `sandbox.filesystem.allowManagedReadPathsOnly` | Quando `true`, apenas caminhos `filesystem.allowRead` de configurações gerenciadas são respeitados. `denyRead` ainda se mescla de todas as fontes |


462`disableBypassPermissionsMode` é tipicamente colocado em configurações gerenciadas para impor política organizacional, mas funciona de qualquer escopo. Um usuário pode defini-lo em suas próprias configurações para se bloquear do modo bypass.473`disableBypassPermissionsMode` é tipicamente colocado em configurações gerenciadas para impor política organizacional, mas funciona de qualquer escopo. Um usuário pode defini-lo em suas próprias configurações para se bloquear do modo bypass.

463 474 

464<Note>475<Note>

465 Em planos Team e Enterprise, um Owner ativa ou desativa [Remote Control](/pt/remote-control) e [sessões web](/pt/claude-code-on-the-web) em toda a organização em [configurações de admin do Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control pode ser adicionalmente desativado por dispositivo com a configuração gerenciada [`disableRemoteControl`](/pt/settings#available-settings). Sessões web não têm chave de configurações gerenciadas por dispositivo.476 Em planos Team e Enterprise, um Owner ativa ou desativa [Remote Control](/pt/remote-control) e [sessões web](/pt/claude-code-on-the-web) em toda a organização em [configurações de admin do Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control pode ser adicionalmente desativado por dispositivo com a configuração [`disableRemoteControl`](/pt/settings#available-settings). Sessões web não têm chave de configurações gerenciadas por dispositivo.

466</Note>477</Note>

467 478 

468<h2 id="settings-precedence">479<h2 id="settings-precedence">


479 490 

480Se uma ferramenta for negada em qualquer nível, nenhum outro nível pode permitir. Por exemplo, uma negação de configurações gerenciadas não pode ser substituída por `--allowedTools`, e `--disallowedTools` pode adicionar restrições além do que as configurações gerenciadas definem.491Se uma ferramenta for negada em qualquer nível, nenhum outro nível pode permitir. Por exemplo, uma negação de configurações gerenciadas não pode ser substituída por `--allowedTools`, e `--disallowedTools` pode adicionar restrições além do que as configurações gerenciadas definem.

481 492 

482Os hosts de incorporação podem fornecer política gerenciada adicional por meio da opção `managedSettings` do SDK quando [`parentSettingsBehavior`](/pt/settings#settings-precedence) está definido como `"merge"`; os valores do incorporador podem apertar a política, mas não afrouxá-la.493O mesmo se aplica entre escopos de configurações: se as configurações de usuário permitirem uma permissão e as configurações de projeto a negarem, a regra de negação a bloqueia. O inverso também é verdadeiro: uma negação no nível de usuário bloqueia uma permissão no nível de projeto, porque as regras de negação de qualquer escopo são avaliadas antes das regras de permissão.

483 494 

484Por exemplo, se as configurações de usuário permitirem uma permissão e as configurações de projeto a negarem, a regra de negação a bloqueia. O inverso também é verdadeiro: uma negação no nível de usuário bloqueia uma permissão no nível de projeto, porque as regras de negação de qualquer escopo são avaliadas antes das regras de permissão.495Os hosts de incorporação podem fornecer política gerenciada adicional por meio da opção `managedSettings` do SDK quando [`parentSettingsBehavior`](/pt/settings#settings-precedence) está definido como `"merge"`; os valores do incorporador podem apertar a política, mas não afrouxá-la.

485 496 

486<h2 id="example-configurations">497<h2 id="example-configurations">

487 Configurações de exemplo498 Configurações de exemplo

Details

102 102 

103Quando você instala um plugin que declara `{ "name": "secrets-vault", "version": "~2.1.0" }`, Claude Code lista as tags do marketplace, filtra aquelas começando com `secrets-vault--v`, e busca a versão mais alta satisfazendo `~2.1.0`. Se nenhuma tag correspondente existir, o plugin dependente é desabilitado com um erro listando as versões disponíveis.103Quando você instala um plugin que declara `{ "name": "secrets-vault", "version": "~2.1.0" }`, Claude Code lista as tags do marketplace, filtra aquelas começando com `secrets-vault--v`, e busca a versão mais alta satisfazendo `~2.1.0`. Se nenhuma tag correspondente existir, o plugin dependente é desabilitado com um erro listando as versões disponíveis.

104 104 

105Um marketplace adicionado como um caminho de pasta local resolve tags da mesma forma quando a pasta é um repositório git. Isso requer Claude Code v2.1.196 ou posterior. Em dois casos Claude Code instala a dependência do conteúdo atual da pasta:

106 

107* Versões anteriores não leem tags de um marketplace de pasta local, portanto uma dependência restrita carrega apenas se essa cópia satisfaz o intervalo.

108* Uma pasta local que não é um repositório git não tem tags, independentemente da versão.

109 

105A semver da tag resolvida é registrada separadamente da `version` do `plugin.json`, portanto verificações de restrição usam a tag que foi realmente buscada mesmo se `plugin.json` naquele commit tiver um valor obsoleto. O nome do diretório de cache para uma instalação resolvida por tag inclui um sufixo de commit-SHA de 12 caracteres, portanto se um mantenedor move uma tag à força para um commit diferente, a próxima instalação obtém um diretório de cache fresco em vez de reutilizar conteúdo obsoleto.110A semver da tag resolvida é registrada separadamente da `version` do `plugin.json`, portanto verificações de restrição usam a tag que foi realmente buscada mesmo se `plugin.json` naquele commit tiver um valor obsoleto. O nome do diretório de cache para uma instalação resolvida por tag inclui um sufixo de commit-SHA de 12 caracteres, portanto se um mantenedor move uma tag à força para um commit diferente, a próxima instalação obtém um diretório de cache fresco em vez de reutilizar conteúdo obsoleto.

106 111 

107<Note>112<Note>

Details

6 6 

7> Crie e hospede marketplaces de plugins para distribuir extensões Claude Code em equipes e comunidades.7> Crie e hospede marketplaces de plugins para distribuir extensões Claude Code em equipes e comunidades.

8 8 

9Um **marketplace de plugins** é um catálogo que permite distribuir plugins para outros. Os marketplaces fornecem descoberta centralizada, rastreamento de versão, atualizações automáticas e suporte para múltiplos tipos de fonte (repositórios git, caminhos locais e muito mais). Este guia mostra como criar seu próprio marketplace para compartilhar plugins com sua equipe ou comunidade.9Um **marketplace de plugins** é um catálogo que permite distribuir plugins para outros. Os marketplaces fornecem descoberta centralizada, rastreamento de versão, atualizações automáticas e suporte para múltiplos tipos de fonte, incluindo repositórios git e caminhos locais. Este guia mostra como criar seu próprio marketplace para compartilhar plugins com sua equipe ou comunidade.

10 10 

11Procurando instalar plugins de um marketplace existente? Veja [Descobrir e instalar plugins pré-construídos](/pt/discover-plugins).11Procurando instalar plugins de um marketplace existente? Veja [Descobrir e instalar plugins pré-construídos](/pt/discover-plugins).

12 12 


17Criar e distribuir um marketplace envolve:17Criar e distribuir um marketplace envolve:

18 18 

191. **Criar plugins**: construir um ou mais plugins com skills, agents, hooks, MCP servers ou LSP servers. Este guia assume que você já tem plugins para distribuir; veja [Criar plugins](/pt/plugins) para detalhes sobre como criá-los.191. **Criar plugins**: construir um ou mais plugins com skills, agents, hooks, MCP servers ou LSP servers. Este guia assume que você já tem plugins para distribuir; veja [Criar plugins](/pt/plugins) para detalhes sobre como criá-los.

202. **Criar um arquivo de marketplace**: definir um `marketplace.json` que lista seus plugins e onde encontrá-los (veja [Criar o arquivo de marketplace](#create-the-marketplace-file)).202. **Criar o arquivo de marketplace**: definir um `marketplace.json` que lista seus plugins e onde encontrá-los. Veja [Criar o arquivo de marketplace](#create-the-marketplace-file).

213. **Hospedar o marketplace**: fazer push para GitHub, GitLab ou outro host git (veja [Hospedar e distribuir marketplaces](#host-and-distribute-marketplaces)).213. **Hospedar o marketplace**: fazer push para GitHub, GitLab ou outro host git. Veja [Hospedar e distribuir marketplaces](#host-and-distribute-marketplaces).

224. **Compartilhar com usuários**: usuários adicionam seu marketplace com `/plugin marketplace add` e instalam plugins individuais (veja [Descobrir e instalar plugins](/pt/discover-plugins)).224. **Compartilhar com usuários**: usuários adicionam seu marketplace com `/plugin marketplace add` e instalam plugins individuais. Veja [Descobrir e instalar plugins](/pt/discover-plugins).

23 23 

24Depois que seu marketplace estiver ativo, você pode atualizá-lo fazendo push de alterações para seu repositório. Os usuários atualizam sua cópia local com `/plugin marketplace update`.24Depois que seu marketplace estiver ativo, você pode atualizá-lo fazendo push de alterações para seu repositório. Os usuários atualizam sua cópia local com `/plugin marketplace update`.

25 25 


44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---45 ---

46 description: Revisar código para bugs, segurança e desempenho46 description: Revisar código para bugs, segurança e desempenho

47 disable-model-invocation: true

48 ---47 ---

49 48 

50 Revise o código que selecionei ou as alterações recentes para:49 Revise o código que selecionei ou as alterações recentes para:


125 124 

126Crie `.claude-plugin/marketplace.json` na raiz do seu repositório. Este arquivo define o nome do seu marketplace, informações do proprietário e uma lista de plugins com suas fontes.125Crie `.claude-plugin/marketplace.json` na raiz do seu repositório. Este arquivo define o nome do seu marketplace, informações do proprietário e uma lista de plugins com suas fontes.

127 126 

128Cada entrada de plugin precisa no mínimo de um `name` e `source` (onde buscá-lo). Veja o [esquema completo](#marketplace-schema) abaixo para todos os campos disponíveis.127Cada entrada de plugin precisa no mínimo de um `name` e um `source` que diz ao Claude Code onde buscá-lo. Veja o [esquema completo](#marketplace-schema) abaixo para todos os campos disponíveis.

129 128 

130```json theme={null}129```json theme={null}

131{130{


188</h3>187</h3>

189 188 

190| Campo | Tipo | Descrição |189| Campo | Tipo | Descrição |

191| :------------------------------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |190| :------------------------------------ | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

192| `$schema` | string | URL do JSON Schema para autocompletar e validação do editor. Claude Code ignora este campo no momento do carregamento. |191| `$schema` | string | URL do JSON Schema para autocompletar e validação do editor. Claude Code ignora este campo no momento do carregamento. |

193| `description` | string | Breve descrição do marketplace |192| `description` | string | Breve descrição do marketplace |

194| `version` | string | Versão do manifesto do marketplace |193| `version` | string | Versão do manifesto do marketplace |

195| `metadata.pluginRoot` | string | Diretório base adicionado aos caminhos de fonte de plugin relativos (por exemplo, `"./plugins"` permite escrever `"source": "formatter"` em vez de `"source": "./plugins/formatter"`) |194| `metadata.pluginRoot` | string | Diretório base adicionado aos caminhos de fonte de plugin relativos (por exemplo, `"./plugins"` permite escrever `"source": "formatter"` em vez de `"source": "./plugins/formatter"`) |

196| `allowCrossMarketplaceDependenciesOn` | array | Outros marketplaces que plugins neste marketplace podem depender. Dependências de um marketplace não listado aqui são bloqueadas na instalação. Veja [Depender de um plugin de outro marketplace](/pt/plugin-dependencies#depend-on-a-plugin-from-another-marketplace). |195| `allowCrossMarketplaceDependenciesOn` | array | Outros marketplaces que plugins neste marketplace podem depender. Dependências de um marketplace não listado aqui são bloqueadas na instalação. Veja [Depender de um plugin de outro marketplace](/pt/plugin-dependencies#depend-on-a-plugin-from-another-marketplace). |

196| `renames` | object | {/* min-version: 2.1.193 */}Mapa de um antigo `name` de plugin para seu nome atual, ou para `null` se o plugin foi removido. Permite que usuários existentes migrem automaticamente quando você renomeia ou remove uma entrada em `plugins`. Veja [Renomear ou remover um plugin](#rename-or-remove-a-plugin). Requer Claude Code v2.1.193 ou posterior. |

197 197 

198`description` e `version` também são aceitos sob `metadata` para compatibilidade com versões anteriores.198`description` e `version` também são aceitos sob `metadata` para compatibilidade com versões anteriores.

199 199 


201 Entradas de plugin201 Entradas de plugin

202</h2>202</h2>

203 203 

204Cada entrada de plugin no array `plugins` descreve um plugin e onde encontrá-lo. Você pode incluir qualquer campo do [esquema de manifesto de plugin](/pt/plugins-reference#plugin-manifest-schema) (como `description`, `version`, `author`, `commands`, `hooks`, etc.), além destes campos específicos do marketplace: `source`, `category`, `tags`, `strict` e `relevance`.204Cada entrada de plugin no array `plugins` descreve um plugin e onde encontrá-lo. Você pode incluir qualquer campo do [esquema de manifesto de plugin](/pt/plugins-reference#plugin-manifest-schema), como `description`, `version`, `author`, `commands` e `hooks`, além destes campos específicos do marketplace: `source`, `category`, `tags`, `strict` e `relevance`.

205 205 

206<h3 id="required-fields-1">206<h3 id="required-fields-1">

207 Campos obrigatórios207 Campos obrigatórios


264<Note>264<Note>

265 **Fontes de marketplace vs fontes de plugin**: Estes são conceitos diferentes que controlam coisas diferentes.265 **Fontes de marketplace vs fontes de plugin**: Estes são conceitos diferentes que controlam coisas diferentes.

266 266 

267 * **Fonte de marketplace** onde buscar o próprio catálogo `marketplace.json`. Definido quando os usuários executam `/plugin marketplace add` ou em configurações `extraKnownMarketplaces`. Suporta `ref` (branch/tag) mas não `sha`.267 * **Fonte de marketplace**: onde buscar o próprio catálogo `marketplace.json`. Definido quando os usuários executam `/plugin marketplace add` ou em configurações `extraKnownMarketplaces`. Suporta `ref` (branch/tag) mas não `sha`.

268 * **Fonte de plugin** onde buscar um plugin individual listado no marketplace. Definido no campo `source` de cada entrada de plugin dentro de `marketplace.json`. Suporta tanto `ref` (branch/tag) quanto `sha` (commit exato).268 * **Fonte de plugin**: onde buscar um plugin individual listado no marketplace. Definido no campo `source` de cada entrada de plugin dentro de `marketplace.json`. Suporta tanto `ref` (branch/tag) quanto `sha` (commit exato).

269 269 

270 Por exemplo, um marketplace hospedado em `acme-corp/plugin-catalog` (fonte de marketplace) pode listar um plugin buscado de `acme-corp/code-formatter` (fonte de plugin). A fonte de marketplace e a fonte de plugin apontam para repositórios diferentes e são fixadas independentemente.270 Por exemplo, um marketplace hospedado em `acme-corp/plugin-catalog` (fonte de marketplace) pode listar um plugin buscado de `acme-corp/code-formatter` (fonte de plugin). A fonte de marketplace e a fonte de plugin apontam para repositórios diferentes e são fixadas independentemente.

271</Note>271</Note>

272 272 

273Os tipos de fonte baseados em git abaixo são `github`, `url` e `git-subdir`. Quando tanto `ref` quanto `sha` são definidos em qualquer um deles, o `sha` é o pino efetivo. Claude Code busca e faz checkout do commit fixado diretamente. Na maioria dos hosts git, incluindo GitHub, GitLab e Bitbucket, isso significa que a instalação é bem-sucedida mesmo se o branch ou tag nomeado por `ref` tenha sido deletado upstream, desde que o commit ainda seja alcançável a partir do repositório. Alguns servidores, como AWS CodeCommit, não suportam busca de commits por SHA. Nesses servidores, o `ref` ainda deve existir e o commit fixado deve ser alcançável a partir dele.273Os tipos de fonte baseados em git abaixo são `github`, `url` e `git-subdir`. Quando tanto `ref` quanto `sha` são definidos em qualquer um deles, o `sha` é o pino efetivo. Claude Code busca e faz checkout do commit fixado diretamente.

274 

275Na maioria dos hosts git, incluindo GitHub, GitLab e Bitbucket, isso significa que a instalação é bem-sucedida mesmo se o branch ou tag nomeado por `ref` tenha sido deletado upstream, desde que o commit ainda seja alcançável a partir do repositório. Alguns servidores, como AWS CodeCommit, não suportam busca de commits por SHA. Nesses servidores, o `ref` ainda deve existir e o commit fixado deve ser alcançável a partir dele.

274 276 

275<h3 id="relative-paths">277<h3 id="relative-paths">

276 Caminhos relativos278 Caminhos relativos


288Os caminhos são resolvidos relativamente à raiz do marketplace, que é o diretório contendo `.claude-plugin/`. No exemplo acima, `./plugins/my-plugin` aponta para `<repo>/plugins/my-plugin`, mesmo que `marketplace.json` viva em `<repo>/.claude-plugin/marketplace.json`. Não use `../` para referenciar caminhos fora da raiz do marketplace.290Os caminhos são resolvidos relativamente à raiz do marketplace, que é o diretório contendo `.claude-plugin/`. No exemplo acima, `./plugins/my-plugin` aponta para `<repo>/plugins/my-plugin`, mesmo que `marketplace.json` viva em `<repo>/.claude-plugin/marketplace.json`. Não use `../` para referenciar caminhos fora da raiz do marketplace.

289 291 

290<Note>292<Note>

291 Caminhos relativos funcionam apenas quando os usuários adicionam seu marketplace via Git (GitHub, GitLab ou URL git). Se os usuários adicionarem seu marketplace via URL direta para o arquivo `marketplace.json`, caminhos relativos não serão resolvidos corretamente. Para distribuição baseada em URL, use fontes GitHub, npm ou URL git. Veja [Troubleshooting](#plugins-with-relative-paths-fail-in-url-based-marketplaces) para detalhes.293 Caminhos relativos são resolvidos contra uma cópia local do marketplace, então funcionam quando os usuários adicionam seu marketplace de uma fonte git ou um diretório local. Se os usuários adicionarem seu marketplace via URL direta para o arquivo `marketplace.json`, caminhos relativos não serão resolvidos, porque apenas esse arquivo é baixado. Para distribuição baseada em URL, use fontes GitHub, npm ou URL git. Veja [Troubleshooting](#plugins-with-relative-paths-fail-in-url-based-marketplaces) para detalhes.

292</Note>294</Note>

293 295 

294<h3 id="github-repositories">296<h3 id="github-repositories">


504 506 

505Coisas importantes a notar:507Coisas importantes a notar:

506 508 

507* **`commands` e `agents`**: Você pode especificar múltiplos diretórios ou arquivos individuais. Os caminhos são relativos à raiz do plugin.509* **`commands` e `agents`**: você pode especificar múltiplos diretórios ou arquivos individuais. Os caminhos são relativos à raiz do plugin.

508* **`${CLAUDE_PLUGIN_ROOT}`**: use esta variável em hooks e configurações de MCP server para referenciar arquivos dentro do diretório de instalação do plugin. Isso é necessário porque os plugins são copiados para um local de cache quando instalados. Para dependências ou estado que devem sobreviver a atualizações de plugin, use [`${CLAUDE_PLUGIN_DATA}`](/pt/plugins-reference#persistent-data-directory) em vez disso.510* **`${CLAUDE_PLUGIN_ROOT}`**: use esta variável em hooks e configurações de MCP server para referenciar arquivos dentro do diretório de instalação do plugin. Isso é necessário porque os plugins são copiados para um local de cache quando instalados. Para dependências ou estado que devem sobreviver a atualizações de plugin, use [`${CLAUDE_PLUGIN_DATA}`](/pt/plugins-reference#persistent-data-directory) em vez disso.

509* **`strict: false`**: Como isso está definido como false, o plugin não precisa de seu próprio `plugin.json`. A entrada de marketplace define tudo. Veja [Strict mode](#strict-mode) abaixo.511* **`strict: false`**: como isso está definido como false, o plugin não precisa de seu próprio `plugin.json`. A entrada de marketplace define tudo. Veja [Strict mode](#strict-mode) abaixo.

510 512 

511Por padrão, as skills de um plugin são carregadas do diretório `skills/` sob sua `source`. Os caminhos listados no campo `skills` adicionam a essa varredura:513Por padrão, as skills de um plugin são carregadas do diretório `skills/` sob sua `source`. Os caminhos listados no campo `skills` adicionam a essa varredura:

512 514 


547 Hospedar no GitHub (recomendado)549 Hospedar no GitHub (recomendado)

548</h3>550</h3>

549 551 

550GitHub fornece o método de distribuição mais fácil:552GitHub é a forma recomendada para hospedar e distribuir um marketplace:

551 553 

5521. **Criar um repositório**: Configure um novo repositório para seu marketplace5541. **Criar um repositório**: configure um novo repositório para seu marketplace

5532. **Adicionar arquivo de marketplace**: Crie `.claude-plugin/marketplace.json` com suas definições de plugin5552. **Adicionar arquivo de marketplace**: crie `.claude-plugin/marketplace.json` com suas definições de plugin

5543. **Compartilhar com equipes**: Os usuários adicionam seu marketplace com `/plugin marketplace add owner/repo`5563. **Compartilhar com equipes**: os usuários adicionam seu marketplace com `/plugin marketplace add owner/repo`

555 557 

556**Benefícios**: Controle de versão integrado, rastreamento de problemas e recursos de colaboração em equipe.558**Benefícios**: controle de versão integrado, rastreamento de problemas e recursos de colaboração em equipe.

557 559 

558<h3 id="host-on-other-git-services">560<h3 id="host-on-other-git-services">

559 Hospedar em outros serviços git561 Hospedar em outros serviços git


596Teste seu marketplace localmente antes de compartilhar:598Teste seu marketplace localmente antes de compartilhar:

597 599 

598```shell theme={null}600```shell theme={null}

599/plugin marketplace add ./my-local-marketplace601/plugin marketplace add ./my-marketplace

600/plugin install test-plugin@my-local-marketplace602/plugin install quality-review-plugin@my-plugins

601```603```

602 604 

603Para a gama completa de comandos add (GitHub, URLs Git, caminhos locais, URLs remotas), veja [Adicionar marketplaces](/pt/discover-plugins#add-marketplaces).605Para a gama completa de comandos add (GitHub, URLs Git, caminhos locais, URLs remotas), veja [Adicionar marketplaces](/pt/discover-plugins#add-marketplaces).


644 646 

645Para imagens de container e ambientes CI, você pode pré-popular um diretório de plugins no tempo de construção para que Claude Code inicie com marketplaces e plugins já disponíveis, sem clonar nada em tempo de execução. Defina a variável de ambiente `CLAUDE_CODE_PLUGIN_SEED_DIR` para apontar para este diretório.647Para imagens de container e ambientes CI, você pode pré-popular um diretório de plugins no tempo de construção para que Claude Code inicie com marketplaces e plugins já disponíveis, sem clonar nada em tempo de execução. Defina a variável de ambiente `CLAUDE_CODE_PLUGIN_SEED_DIR` para apontar para este diretório.

646 648 

647Para colocar em camadas múltiplos diretórios seed, separe caminhos com `:` em Unix ou `;` no Windows. Claude Code procura cada diretório em ordem, e o primeiro seed que contém um determinado marketplace ou cache de plugin vence.649Para colocar em camadas múltiplos diretórios seed, separe caminhos com `:` em Unix ou `;` no Windows. Claude Code procura cada diretório em ordem e usa o primeiro seed que contém um determinado marketplace ou cache de plugin.

648 650 

649O diretório seed espelha a estrutura de `~/.claude/plugins`:651O diretório seed espelha a estrutura de `~/.claude/plugins`:

650 652 


680 Restrições de marketplace gerenciado682 Restrições de marketplace gerenciado

681</h3>683</h3>

682 684 

683Para organizações que exigem controle rigoroso sobre fontes de plugin, administradores podem restringir quais marketplaces de plugin os usuários podem adicionar usando a configuração [`strictKnownMarketplaces`](/pt/settings#strictknownmarketplaces) em configurações gerenciadas.685Para organizações que exigem controle rigoroso sobre fontes de plugin, administradores podem restringir quais marketplaces de plugin os usuários podem adicionar usando a configuração [`strictKnownMarketplaces`](/pt/settings#strictknownmarketplaces) em configurações gerenciadas. Para também rejeitar as flags CLI que carregam plugins, agentes e servidores MCP para uma única execução, combine com [`disableSideloadFlags`](/pt/settings#available-settings).

684 686 

685Quando `strictKnownMarketplaces` é configurado em configurações gerenciadas, o comportamento de restrição depende do valor:687Quando `strictKnownMarketplaces` é configurado em configurações gerenciadas, o comportamento de restrição depende do valor:

686 688 


881 883 

882Um plugin pode restringir suas dependências a um intervalo semver para que atualizações de uma dependência não quebrem o plugin dependente. Veja [Restringir versões de dependência de plugin](/pt/plugin-dependencies) para a convenção de git-tag `{plugin-name}--v{version}`, sintaxe de intervalo e como múltiplas restrições na mesma dependência são combinadas.884Um plugin pode restringir suas dependências a um intervalo semver para que atualizações de uma dependência não quebrem o plugin dependente. Veja [Restringir versões de dependência de plugin](/pt/plugin-dependencies) para a convenção de git-tag `{plugin-name}--v{version}`, sintaxe de intervalo e como múltiplas restrições na mesma dependência são combinadas.

883 885 

886<h3 id="rename-or-remove-a-plugin">

887 Renomear ou remover um plugin

888</h3>

889 

890O `name` de um plugin é seu identificador estável. Os usuários o referenciam em `enabledPlugins`, `pluginConfigs` e comandos `/plugin install`, então alterá-lo quebra cada instalação existente. Para alterar o rótulo mostrado na UI sem quebrar instalações, defina [`displayName`](#optional-plugin-fields) e mantenha `name` inalterado.

891 

892Se você deve alterar o `name` de um plugin, ou remover um plugin do array `plugins`, adicione uma entrada de nível superior `renames` para que usuários existentes migrem em vez de ver um erro `plugin-not-found`. A migração automática requer Claude Code v2.1.193 ou posterior. Mapeie cada nome anterior para seu nome atual, ou para `null` se o plugin não existir mais. O exemplo a seguir renomeia `formatter` para `code-formatter` e registra que `legacy-linter` foi removido:

893 

894```json theme={null}

895{

896 "name": "acme-tools",

897 "owner": { "name": "Acme" },

898 "plugins": [

899 { "name": "code-formatter", "source": "./plugins/code-formatter" }

900 ],

901 "renames": {

902 "formatter": "code-formatter",

903 "legacy-linter": null

904 }

905}

906```

907 

908Quando um usuário inicia Claude Code com o nome antigo ainda em suas configurações, Claude Code segue o mapa `renames`:

909 

910* Se a entrada aponta para um novo nome, Claude Code carrega o plugin sob seu novo nome e mostra um aviso de uma linha como `Renamed to "code-formatter" in the "acme-tools" marketplace`. Ele então reescreve a chave antiga para a chave nova nos escopos de configurações do usuário, projeto e local para ambos `enabledPlugins` e `pluginConfigs`, para que o aviso apareça uma vez.

911* Para uma entrada `null`, Claude Code descarta a chave antiga e o aviso relata que o plugin foi removido do marketplace.

912* Se o plugin renomeado usa uma fonte remota como `github` ou `npm`, Claude Code relata `plugin-cache-miss` após o renome e o usuário deve executar `/plugin install` uma vez para buscá-lo sob o novo nome.

913 

914Trate `renames` como histórico apenas para anexação: mantenha entradas antigas no lugar mesmo depois que você espera que cada usuário tenha migrado. Claude Code segue cadeias, então se você depois renomear `code-formatter` para `formatter-pro`, adicione uma segunda entrada em vez de editar a primeira. Um usuário que ainda tem o `formatter` original habilitado então resolve através de ambas as entradas para `formatter-pro`.

915 

916Execute `claude plugin validate .` após editar o mapa; ele rejeita qualquer entrada cuja cadeia forma um ciclo ou não termina em `null` ou um nome listado em `plugins`.

917 

918<Note>

919 Configurações gerenciadas e de política são somente leitura para Claude Code, então plugins habilitados lá não podem ser reescritos automaticamente. O plugin renomeado ainda carrega cada sessão, mas o aviso de renome recorre até que um administrador atualize `enabledPlugins` no arquivo de configurações gerenciadas para usar o novo nome. O mesmo se aplica a plugins habilitados através de outras fontes somente leitura como `--add-dir`.

920</Note>

921 

922Versões anteriores de Claude Code ignoram o campo `renames` e relatam `plugin-not-found` para o nome antigo.

923 

884<h2 id="validation-and-testing">924<h2 id="validation-and-testing">

885 Validação e testes925 Validação e testes

886</h2>926</h2>


933 973 

934* `<source>`: Atalho GitHub `owner/repo`, URL git, URL remota para um arquivo `marketplace.json` ou caminho de diretório local. Para fixar a um branch ou tag, anexe `@ref` ao atalho GitHub ou `#ref` a uma URL git974* `<source>`: Atalho GitHub `owner/repo`, URL git, URL remota para um arquivo `marketplace.json` ou caminho de diretório local. Para fixar a um branch ou tag, anexe `@ref` ao atalho GitHub ou `#ref` a uma URL git

935 975 

976Uma URL deve incluir seu esquema. A partir de Claude Code v2.1.196, um host digitado sem um, como `gitlab.example.com/team/plugins`, é rejeitado como um atalho `owner/repo` inválido e o erro informa para adicionar `https://` ou usar `./` para um caminho local. Versões anteriores o interpretavam como um caminho de repositório GitHub e falham no momento do clone com um erro de não encontrado do GitHub.

977 

936**Opções:**978**Opções:**

937 979 

938| Opção | Descrição | Padrão |980| Opção | Descrição | Padrão |


1061 Erros de validação de marketplace1103 Erros de validação de marketplace

1062</h3>1104</h3>

1063 1105 

1064Execute `claude plugin validate .` ou `/plugin validate .` do seu diretório de marketplace para verificar problemas. Quando apontado para um diretório de marketplace, o validador verifica apenas `marketplace.json`: schema, nomes de plugin duplicados, travessia de caminho de fonte e incompatibilidades de versão contra cada `plugin.json` referenciado.1106Execute `claude plugin validate .` ou `/plugin validate .` do seu diretório de marketplace para verificar problemas. Quando apontado para um diretório de marketplace, o validador verifica `marketplace.json` para erros de schema, nomes de plugin duplicados e travessia de caminho de fonte. Para cada entrada cuja `source` é um caminho local, ele também valida o próprio `plugin.json` daquele plugin e avisa quando a `version` da entrada não corresponde à do `plugin.json`. Problemas encontrados no `plugin.json` de um plugin são prefixados com o índice da entrada, na forma `plugins[2] plugin.json →`.

1107 

1108A partir de Claude Code v2.1.196, a passagem por entrada também:

1109 

1110* inclui plugins cuja `source` é `.`

1111* executa quando `marketplace.json` está fora de um diretório `.claude-plugin`, resolvendo fontes contra o próprio diretório do arquivo

1112* relata os problemas de cada entrada mesmo quando outra parte do arquivo tem erros de schema

1113 

1114Versões anteriores pulam plugins na raiz do marketplace e apenas descem de um `.claude-plugin/marketplace.json`.

1065 1115 

1066Para validar o `plugin.json` de um plugin individual e seus arquivos de skill, agent, command e hook, execute o comando contra o diretório do plugin em si, por exemplo `claude plugin validate ./plugins/my-plugin`. Erros comuns:1116Para validar o `plugin.json` de um plugin individual e seus arquivos de skill, agent, command e hook, execute o comando contra o diretório do plugin em si, por exemplo `claude plugin validate ./plugins/my-plugin`. Erros comuns:

1067 1117 


1078 1128 

1079* `Marketplace has no plugins defined`: adicione pelo menos um plugin ao array `plugins`1129* `Marketplace has no plugins defined`: adicione pelo menos um plugin ao array `plugins`

1080* `No marketplace description provided`: adicione uma `description` de nível superior para ajudar os usuários a entender seu marketplace1130* `No marketplace description provided`: adicione uma `description` de nível superior para ajudar os usuários a entender seu marketplace

1081* `Plugin name "x" is not kebab-case`: o nome do plugin contém letras maiúsculas, espaços ou caracteres especiais. Renomeie para apenas letras minúsculas, dígitos e hífens (por exemplo, `my-plugin`). Claude Code aceita outras formas, mas a sincronização de marketplace do Claude.ai as rejeita.1131* `Plugin name "x" is not kebab-case`: o nome do plugin contém letras maiúsculas, espaços ou caracteres especiais. Renomeie para apenas letras minúsculas, dígitos e hífens (por exemplo, `my-plugin`). Claude Code aceita outras formas, mas a sincronização de marketplace do claude.ai as rejeita.

1082 1132 

1083<h3 id="plugin-installation-failures">1133<h3 id="plugin-installation-failures">

1084 Falhas de instalação de plugin1134 Falhas de instalação de plugin

Details

477Se você incluir um manifesto, `name` é o único campo obrigatório.477Se você incluir um manifesto, `name` é o único campo obrigatório.

478 478 

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

480| :----- | :----- | :-------------------------------------------- | :------------------- |480| :----- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

481| `name` | string | Identificador único (kebab-case, sem espaços) | `"deployment-tools"` |481| `name` | string | Identificador único (kebab-case, sem espaços). Quando uma [entrada do marketplace](/pt/plugin-marketplaces#plugin-entries) lista o plugin com um nome diferente, o nome da entrada do marketplace é o que `enabledPlugins` usa e `/plugin` usa | `"deployment-tools"` |

482 482 

483Este nome é usado para namespacing de componentes. Por exemplo, na UI, o agent `agent-creator` para o plugin com nome `plugin-dev` aparecerá como `plugin-dev:agent-creator`.483Este nome é usado para namespacing de componentes. Por exemplo, na UI, o agent `agent-creator` para o plugin com nome `plugin-dev` aparecerá como `plugin-dev:agent-creator`.

484 484 

quickstart.md +1 −0

Details

106* [Claude Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recomendado)106* [Claude Pro, Max, Team ou Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=quickstart_login) (recomendado)

107* [Claude Console](https://console.anthropic.com/) (acesso à API com créditos pré-pagos). No primeiro login, um workspace "Claude Code" é criado automaticamente no Console para rastreamento centralizado de custos.107* [Claude Console](https://console.anthropic.com/) (acesso à API com créditos pré-pagos). No primeiro login, um workspace "Claude Code" é criado automaticamente no Console para rastreamento centralizado de custos.

108* [Amazon Bedrock, Google Vertex AI ou Microsoft Foundry](/pt/third-party-integrations) (provedores de nuvem empresariais)108* [Amazon Bedrock, Google Vertex AI ou Microsoft Foundry](/pt/third-party-integrations) (provedores de nuvem empresariais)

109* Um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado, se sua organização executar um: seu administrador pré-configura a URL do gateway, e `/login` abre diretamente na tela **Cloud gateway** para você fazer login com SSO corporativo

109 110 

110Depois de fazer login, suas credenciais são armazenadas e você não precisará fazer login novamente.111Depois de fazer login, suas credenciais são armazenadas e você não precisará fazer login novamente.

111 112 

Details

34 34 

35* **Assinatura**: disponível nos planos Pro, Max, Team e Enterprise. Chaves de API não são suportadas. Em Team e Enterprise, um Owner deve primeiro ativar o toggle Remote Control nas [configurações de administrador do Claude Code](https://claude.ai/admin-settings/claude-code).35* **Assinatura**: disponível nos planos Pro, Max, Team e Enterprise. Chaves de API não são suportadas. Em Team e Enterprise, um Owner deve primeiro ativar o toggle Remote Control nas [configurações de administrador do Claude Code](https://claude.ai/admin-settings/claude-code).

36* **Autenticação**: execute `claude` e use `/login` para fazer login através de claude.ai se você ainda não fez isso.36* **Autenticação**: execute `claude` e use `/login` para fazer login através de claude.ai se você ainda não fez isso.

37* **Endpoint de API**: não disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. {/* min-version: 2.1.196 */}A partir da v2.1.196, Remote Control também é desabilitado quando [`ANTHROPIC_BASE_URL`](/pt/env-vars) aponta para um host diferente de `api.anthropic.com`, como um [gateway LLM](/pt/llm-gateway) ou proxy. Desative a variável para usar Remote Control.

37* **Confiança do workspace**: execute `claude` no diretório do seu projeto pelo menos uma vez para aceitar o diálogo de confiança do workspace.38* **Confiança do workspace**: execute `claude` no diretório do seu projeto pelo menos uma vez para aceitar o diálogo de confiança do workspace.

38 39 

39<h2 id="start-a-remote-control-session">40<h2 id="start-a-remote-control-session">


148 Ativar Remote Control para todas as sessões149 Ativar Remote Control para todas as sessões

149</h3>150</h3>

150 151 

151Por padrão, Remote Control só é ativado quando você executa explicitamente `claude remote-control`, `claude --remote-control` ou `/remote-control`. Para ativá-lo automaticamente para cada sessão interativa, execute `/config` dentro do Claude Code e defina **Enable Remote Control for all sessions** como `true`. Defina-o de volta para `false` para desativar. No aplicativo Desktop, você também pode alternar isso em **Settings → Claude Code → Enable remote control by default**.152Remote Control só é ativado quando você executa explicitamente `claude remote-control`, `claude --remote-control` ou `/remote-control`, a menos que a conexão automática esteja ativada. Para ativá-lo automaticamente para cada sessão interativa, execute `/config` dentro do Claude Code e defina **Enable Remote Control for all sessions** como `true`. Defina-o como `false` para nunca conectar automaticamente, ou deixe-o não definido para seguir o padrão da sua organização. No aplicativo Desktop, você também pode alternar isso em **Settings → Claude Code → Enable remote control by default**.

152 153 

153Com essa configuração ativada, cada processo interativo do Claude Code registra uma sessão remota. Se você executar várias instâncias, cada uma obtém seu próprio ambiente e sessão. Para executar várias sessões simultâneas a partir de um único processo, use o [modo servidor](#start-a-remote-control-session) em vez disso.154Com essa configuração ativada, cada processo interativo do Claude Code registra uma sessão remota. Se você executar várias instâncias, cada uma obtém seu próprio ambiente e sessão. Para executar várias sessões simultâneas a partir de um único processo, use o [modo servidor](#start-a-remote-control-session) em vez disso.

154 155 


318 319 

319Claude Code não conseguiu alcançar o serviço de sinalizador de recurso para verificar se Remote Control está habilitado para sua conta, normalmente porque você está offline ou um proxy está bloqueando a solicitação. Tente novamente quando tiver acesso à rede, ou execute `claude doctor` para obter detalhes. A mensagem relacionada "Couldn't verify your organization's Remote Control policy" tem a mesma causa e a mesma solução. Ambas as mensagens foram adicionadas na v2.1.178.320Claude Code não conseguiu alcançar o serviço de sinalizador de recurso para verificar se Remote Control está habilitado para sua conta, normalmente porque você está offline ou um proxy está bloqueando a solicitação. Tente novamente quando tiver acesso à rede, ou execute `claude doctor` para obter detalhes. A mensagem relacionada "Couldn't verify your organization's Remote Control policy" tem a mesma causa e a mesma solução. Ambas as mensagens foram adicionadas na v2.1.178.

320 321 

322<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">

323 "Remote Control is only available when using Claude via api.anthropic.com"

324</h3>

325 

326A sessão não está se comunicando diretamente com a API Anthropic, portanto não há backend claude.ai para emparelhar. Isso acontece no Amazon Bedrock, Google Vertex AI e Microsoft Foundry. {/* min-version: 2.1.196 */}A partir da v2.1.196, também acontece quando [`ANTHROPIC_BASE_URL`](/pt/env-vars) aponta para um host diferente de `api.anthropic.com`, como um [gateway LLM](/pt/llm-gateway) ou proxy, mesmo se você entrar com claude.ai. Desative `ANTHROPIC_BASE_URL` e reinicie a sessão para usar Remote Control.

327 

321<h3 id="remote-control-is-disabled-by-your-organization’s-policy">328<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

322 "Remote Control is disabled by your organization's policy"329 "Remote Control is disabled by your organization's policy"

323</h3>330</h3>

Details

48| Apenas prompt | `/loop check the deploy` | Seu prompt é executado em um [intervalo que Claude escolhe](#let-claude-choose-the-interval) a cada iteração |48| Apenas prompt | `/loop check the deploy` | Seu prompt é executado em um [intervalo que Claude escolhe](#let-claude-choose-the-interval) a cada iteração |

49| Apenas intervalo, ou nada | `/loop` | O [prompt de manutenção integrado](#run-the-built-in-maintenance-prompt) é executado, ou seu `loop.md` se existir |49| Apenas intervalo, ou nada | `/loop` | O [prompt de manutenção integrado](#run-the-built-in-maintenance-prompt) é executado, ou seu `loop.md` se existir |

50 50 

51Você também pode passar outro comando como o prompt, por exemplo `/loop 20m /review-pr 1234`, para re-executar uma skill salva ou comando a cada iteração.51Você também pode passar uma skill como o prompt, por exemplo `/loop 20m /review-pr 1234`, para re-executar essa skill a cada iteração. {/* min-version: 2.1.196 */}A partir da v2.1.196, um disparo agendado executa apenas skills que Claude [tem permissão para invocar por conta própria](/pt/skills#control-who-invokes-a-skill). Os seguintes chegam a Claude como texto simples em vez de executar:

52 

53* comandos integrados como `/permissions`, `/model`, ou `/clear`

54* skills marcadas [`disable-model-invocation: true`](/pt/skills#frontmatter-reference)

55* skills retidas de Claude por uma configuração [`skillOverrides`](/pt/skills#override-skill-visibility-from-settings) ou uma regra de [negação](/pt/skills#restrict-claude’s-skill-access) de `Skill`

56* [prompts MCP](/pt/mcp#use-mcp-prompts-as-commands) como `/mcp__github__list_prs`; skills que um servidor MCP expõe ainda são executadas

52 57 

53<h3 id="run-on-a-fixed-interval">58<h3 id="run-on-a-fixed-interval">

54 Execute em um intervalo fixo59 Execute em um intervalo fixo


238 243 

239O agendamento com escopo de sessão tem limitações inerentes:244O agendamento com escopo de sessão tem limitações inerentes:

240 245 

241* As tarefas só são acionadas enquanto Claude Code está em execução e ocioso. Fechar o terminal ou deixar a sessão sair para tudo.246* As tarefas só são acionadas enquanto Claude Code está em execução e ocioso. Fechar o terminal ou deixar a sessão sair para tudo. [Colocar a sessão em segundo plano](/pt/agent-view#from-inside-a-session) leva tarefas `/loop` para uma sessão em segundo plano, que continua em execução sem um terminal.

242* Sem recuperação para disparos perdidos. Se o tempo agendado de uma tarefa passar enquanto Claude está ocupado em uma solicitação de longa duração, ela dispara uma vez quando Claude fica ocioso, não uma vez por intervalo perdido.247* Sem recuperação para disparos perdidos. Se o tempo agendado de uma tarefa passar enquanto Claude está ocupado em uma solicitação de longa duração, ela dispara uma vez quando Claude fica ocioso, não uma vez por intervalo perdido.

243* Iniciar uma conversa nova limpa todas as tarefas com escopo de sessão. Retomar com `claude --resume` ou `claude --continue` restaura tarefas que não expiraram: tarefas recorrentes dentro de sete dias de criação, e tarefas únicas cujo tempo agendado ainda não passou. Tarefas de Bash em segundo plano e tarefas de monitor nunca são restauradas ao retomar.248* Iniciar uma conversa nova limpa todas as tarefas com escopo de sessão. Retomar com `claude --resume` ou `claude --continue` restaura tarefas que não expiraram: tarefas recorrentes dentro de sete dias de criação, e tarefas únicas cujo tempo agendado ainda não passou. Tarefas de Bash em segundo plano e tarefas de monitor nunca são restauradas ao retomar.

244 249 

Details

153 153 

154As configurações gerenciadas pelo servidor e as [configurações gerenciadas pelo endpoint](/pt/settings#settings-files) ocupam o nível mais alto na [hierarquia de configurações](/pt/settings#settings-precedence) do Claude Code. Nenhum outro nível de configurações pode substituí-las, incluindo argumentos de linha de comando.154As configurações gerenciadas pelo servidor e as [configurações gerenciadas pelo endpoint](/pt/settings#settings-files) ocupam o nível mais alto na [hierarquia de configurações](/pt/settings#settings-precedence) do Claude Code. Nenhum outro nível de configurações pode substituí-las, incluindo argumentos de linha de comando.

155 155 

156Dentro do nível gerenciado, a primeira fonte que entrega uma configuração não vazia vence. As configurações gerenciadas pelo servidor são verificadas primeiro, depois as configurações gerenciadas pelo endpoint. As fontes não se mesclam: se as configurações gerenciadas pelo servidor entregarem qualquer chave, as configurações gerenciadas pelo endpoint são ignoradas completamente. Se as configurações gerenciadas pelo servidor não entregarem nada, as configurações gerenciadas pelo endpoint se aplicam.156Dentro do nível gerenciado, um [`policyHelper`](/pt/settings#compute-managed-settings-with-a-policy-helper) configurado preempta todas as outras fontes gerenciadas, incluindo configurações gerenciadas pelo servidor: sua saída se torna a única configuração gerenciada para a execução. Caso contrário, a primeira fonte que entrega uma configuração não vazia vence. As configurações gerenciadas pelo servidor são verificadas primeiro, depois as configurações gerenciadas pelo endpoint. As fontes não se mesclam: se as configurações gerenciadas pelo servidor entregarem qualquer chave, as configurações gerenciadas pelo endpoint são ignoradas completamente. Uma exceção se aplica: um pequeno conjunto de [chaves de bloqueio entre fontes](/pt/settings#settings-precedence), como os bloqueios da lista de permissão de sandbox, é honrado quando qualquer fonte gerenciada controlada por administrador os define; o nível de registro HKCU gravável pelo usuário é excluído. Se as configurações gerenciadas pelo servidor não entregarem nada, as configurações gerenciadas pelo endpoint se aplicam.

157 157 

158Se você limpar sua configuração gerenciada pelo servidor no console de administração com a intenção de voltar a uma plist gerenciada pelo endpoint ou política de registro, esteja ciente de que [configurações em cache](#fetch-and-caching-behavior) persistem em máquinas cliente até a próxima busca bem-sucedida. Execute `/status` para ver qual fonte gerenciada está ativa.158Se você limpar sua configuração gerenciada pelo servidor no console de administração com a intenção de voltar a uma plist gerenciada pelo endpoint ou política de registro, esteja ciente de que [configurações em cache](#fetch-and-caching-behavior) persistem em máquinas cliente até a próxima busca bem-sucedida. Execute `/status` para ver qual fonte gerenciada está ativa.

159 159 


222* **Configurações de comando shell**: configurações que executam comandos shell222* **Configurações de comando shell**: configurações que executam comandos shell

223* **Variáveis de ambiente personalizadas**: variáveis não na lista de permissão segura conhecida223* **Variáveis de ambiente personalizadas**: variáveis não na lista de permissão segura conhecida

224* **Configurações de hooks**: qualquer definição de hook224* **Configurações de hooks**: qualquer definição de hook

225* **Conteúdo CLAUDE.md gerenciado**: um valor `claudeMd` entregue através de configurações gerenciadas

225 226 

226Quando essas configurações estão presentes, os usuários veem uma caixa de diálogo de segurança explicando o que está sendo configurado. Os usuários devem aprovar para prosseguir. Se um usuário rejeitar as configurações, o Claude Code sai.227Quando essas configurações estão presentes, os usuários veem uma caixa de diálogo de segurança explicando o que está sendo configurado. Os usuários devem aprovar para prosseguir. Se um usuário rejeitar as configurações, o Claude Code sai.

227 228 


241* [Claude Platform on AWS](/pt/claude-platform-on-aws)242* [Claude Platform on AWS](/pt/claude-platform-on-aws)

242* Endpoints de API personalizados via `ANTHROPIC_BASE_URL` ou [gateways LLM](/pt/llm-gateway)243* Endpoints de API personalizados via `ANTHROPIC_BASE_URL` ou [gateways LLM](/pt/llm-gateway)

243 244 

245Para implantações do Bedrock, Vertex AI e Foundry, um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado fornece a entrega equivalente de configurações gerenciadas remotamente: clientes assinados no gateway buscam configurações gerenciadas do gateway em vez de `api.anthropic.com`. A semântica de falha difere na inicialização: um cliente de gateway que não consegue alcançar o gateway sai com um erro em vez de fazer fallback para configurações em cache, enquanto a atualização de fundo por hora é fail-open em ambos os canais.

246 

244<h2 id="audit-logging">247<h2 id="audit-logging">

245 Auditoria de logs248 Auditoria de logs

246</h2>249</h2>


253 Considerações de segurança256 Considerações de segurança

254</h2>257</h2>

255 258 

256As configurações gerenciadas pelo servidor fornecem aplicação de política centralizada, mas funcionam como um controle do lado do cliente. Em dispositivos não gerenciados, usuários com acesso de administrador ou sudo podem modificar o binário do Claude Code, sistema de arquivos ou configuração de rede.259As configurações gerenciadas pelo servidor fornecem aplicação de política centralizada, mas funcionam como um controle do lado do cliente, não como um limite de segurança. Em dispositivos não gerenciados, um usuário não precisa de acesso de administrador ou sudo para contorná-las.

257 260 

258| Cenário | Comportamento |261| Cenário | Comportamento |

259| :----------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |262| :----------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

260| Usuário edita o arquivo de configurações em cache | O arquivo adulterado se aplica na inicialização, mas as configurações corretas são restauradas na próxima busca do servidor |263| Usuário edita o arquivo de configurações em cache | O arquivo adulterado se aplica na inicialização, mas as configurações corretas são restauradas na próxima busca do servidor |

261| Usuário deleta o arquivo de configurações em cache | Comportamento de primeiro lançamento ocorre: configurações são buscadas de forma assíncrona com uma breve janela não aplicada |264| Usuário deleta o arquivo de configurações em cache | Comportamento de primeiro lançamento ocorre: configurações são buscadas de forma assíncrona com uma breve janela não aplicada |

265| Usuário executa um binário Claude Code modificado | Um usuário que pode executar um cliente modificado pode contornar qualquer controle do lado do cliente |

266| Usuário executa uma versão anterior do Claude Code | Versões que antecedem as configurações gerenciadas pelo servidor não as buscam ou aplicam |

262| API está indisponível | As configurações em cache se aplicam se disponíveis, caso contrário, as configurações gerenciadas não são aplicadas até a próxima busca bem-sucedida. Com `forceRemoteSettingsRefresh: true`, a CLI sai em vez de continuar, exceto para [subcomandos `claude auth`](#enforce-fail-closed-startup) |267| API está indisponível | As configurações em cache se aplicam se disponíveis, caso contrário, as configurações gerenciadas não são aplicadas até a próxima busca bem-sucedida. Com `forceRemoteSettingsRefresh: true`, a CLI sai em vez de continuar, exceto para [subcomandos `claude auth`](#enforce-fail-closed-startup) |

263| Usuário se autentica com uma organização diferente | As configurações não são entregues para contas fora da organização gerenciada |268| Usuário se autentica com uma organização diferente | As configurações não são entregues para contas fora da organização gerenciada |

264| Usuário configura um [provedor de modelo de terceiros](#platform-availability) | As configurações gerenciadas pelo servidor são ignoradas. Isso inclui definir `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS`, ou um `ANTHROPIC_BASE_URL` não padrão |269| Usuário configura um [provedor de modelo de terceiros](#platform-availability) | As configurações gerenciadas pelo servidor são ignoradas. Isso inclui definir `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS`, ou um `ANTHROPIC_BASE_URL` não padrão |

270| Tráfego de rede é interceptado ou redirecionado | Validação TLS desabilitada ou tráfego interceptado pode alterar as configurações que o cliente recebe |

265 271 

266Para detectar alterações de configuração em tempo de execução, use [hooks `ConfigChange`](/pt/hooks#configchange) para registrar modificações ou bloquear alterações não autorizadas antes que entrem em vigor.272Para detectar alterações de configuração em tempo de execução, use [hooks `ConfigChange`](/pt/hooks#configchange) para registrar modificações ou bloquear alterações não autorizadas antes que entrem em vigor.

267 273 

268Para garantias de aplicação mais fortes, use [configurações gerenciadas pelo endpoint](/pt/settings#settings-files) em dispositivos inscritos em uma solução MDM.274Para restringir quais organizações seus usuários podem acessar com as credenciais que o cliente fornece, consulte [Enforce network-level access control with Tenant Restrictions](https://support.claude.com/en/articles/13198485-enforce-network-level-access-control-with-tenant-restrictions) no Claude Help Center. Para garantias de aplicação mais fortes, use [configurações gerenciadas pelo endpoint](/pt/settings#settings-files) em dispositivos inscritos em uma solução MDM.

269 275 

270<h2 id="see-also">276<h2 id="see-also">

271 Veja também277 Veja também

sessions.md +8 −2

Details

30 Onde o seletor de sessão procura30 Onde o seletor de sessão procura

31</h3>31</h3>

32 32 

33As sessões são armazenadas por diretório de projeto. Por padrão, o seletor de sessão mostra sessões interativas da worktree atual, além de sessões iniciadas em outro lugar que adicionaram o diretório atual com `/add-dir`. A partir da v2.1.169, mover uma sessão com [`/cd`](/pt/commands) a relocata para o armazenamento de projeto do novo diretório, para que apareça no seletor desse diretório depois. Use `Ctrl+W` para expandir para todas as worktrees do repositório ou `Ctrl+A` para expandir para cada projeto nesta máquina.33As sessões são armazenadas por diretório de projeto. Por padrão, o seletor de sessão mostra sessões interativas da worktree atual, além de sessões iniciadas em outro lugar que adicionaram o diretório atual com `/add-dir`. Use `Ctrl+W` para expandir para todas as worktrees do repositório ou `Ctrl+A` para expandir para cada projeto nesta máquina.

34 

35{/* min-version: 2.1.169 */}A partir da v2.1.169, mover uma sessão com [`/cd`](/pt/commands) a relocata para o armazenamento de projeto do novo diretório, para que apareça no seletor desse diretório depois. {/* min-version: 2.1.196 */}A partir da v2.1.196, uma sessão movida fica fora do seletor do diretório antigo mesmo após uma falha ou saída forçada. Em versões anteriores, ela também poderia reaparecer na lista do diretório antigo após uma saída que não foi limpa quando o caminho antigo continha caracteres especiais como sublinhados.

34 36 

35Selecionar uma sessão de outra worktree do mesmo repositório a retoma no local. Selecionar uma sessão de um projeto não relacionado copia um comando `cd` e retoma para sua área de transferência.37Selecionar uma sessão de outra worktree do mesmo repositório a retoma no local. Selecionar uma sessão de um projeto não relacionado copia um comando `cd` e retoma para sua área de transferência.

36 38 


56 58 

57Depois que uma sessão é nomeada, retorne a ela com `claude --resume <name>` ou `/resume <name>`. Veja [Retomar uma sessão](#resume-a-session) para saber como a resolução de nomes se comporta entre worktrees.59Depois que uma sessão é nomeada, retorne a ela com `claude --resume <name>` ou `/resume <name>`. Veja [Retomar uma sessão](#resume-a-session) para saber como a resolução de nomes se comporta entre worktrees.

58 60 

61{/* min-version: 2.1.196 */}As sessões interativas que você nunca nomeia ainda recebem um nome de exibição padrão quando iniciam. Requer Claude Code v2.1.196 ou posterior. O padrão combina o nome do diretório de trabalho com um sufixo de dois caracteres, por exemplo `my-app-3f`, e identifica a sessão em listagens de sessões em execução, como [agent view](/pt/agent-view) e saída de `claude agents --json`.

62 

63O padrão não é um identificador de retomada: `claude --resume <name>`, `/resume <name>` e o seletor de sessão correspondem apenas aos nomes que você definiu. Nomear a sessão substitui o padrão.

64 

59<h2 id="use-the-session-picker">65<h2 id="use-the-session-picker">

60 Use o seletor de sessão66 Use o seletor de sessão

61</h2>67</h2>


117 Exportar e localizar dados de sessão123 Exportar e localizar dados de sessão

118</h2>124</h2>

119 125 

120Execute `/export` para copiar a conversa atual para sua área de transferência ou salvá-la como um arquivo de texto simples, com mensagens e saídas de ferramentas renderizadas como texto legível. Passe um nome de arquivo para escrever diretamente nesse arquivo.126Execute `/export` para abrir um menu que permite copiar a conversa atual para sua área de transferência ou salvá-la como um arquivo de texto simples, com mensagens e saídas de ferramentas renderizadas como texto legível. Passe um nome de arquivo para pular o menu e escrever diretamente nesse arquivo.

121 127 

122<h3 id="access-conversations-from-scripts">128<h3 id="access-conversations-from-scripts">

123 Acessar conversas a partir de scripts129 Acessar conversas a partir de scripts

settings.md +45 −37

Details

12 Escopos de configuração12 Escopos de configuração

13</h2>13</h2>

14 14 

15O Claude Code usa um **sistema de escopo** para determinar onde as configurações se aplicam e com quem são compartilhadas. Compreender os escopos ajuda você a decidir como configurar o Claude Code para uso pessoal, colaboração em equipe ou implantação empresarial.15O Claude Code usa um sistema de escopo para determinar onde as configurações se aplicam e com quem são compartilhadas. Compreender os escopos ajuda você a decidir como configurar o Claude Code para uso pessoal, colaboração em equipe ou implantação empresarial.

16 16 

17<h3 id="available-scopes">17<h3 id="available-scopes">

18 Escopos disponíveis18 Escopos disponíveis


59 59 

60Quando a mesma configuração aparece em vários escopos, o Claude Code as aplica em ordem de prioridade:60Quando a mesma configuração aparece em vários escopos, o Claude Code as aplica em ordem de prioridade:

61 61 

621. **Managed** (mais alta) - não pode ser substituída por nada621. **Managed** (mais alta): não pode ser substituída por nada

632. **Argumentos de linha de comando** - substituições de sessão temporárias632. **Argumentos de linha de comando**: substituições de sessão temporárias

643. **Local** - substitui configurações de projeto e usuário643. **Local**: substitui configurações de projeto e usuário

654. **Project** - substitui configurações de usuário654. **Project**: substitui configurações de usuário

665. **User** (mais baixa) - se aplica quando nada mais especifica a configuração665. **User** (mais baixa): se aplica quando nada mais especifica a configuração

67 67 

68Por exemplo, se suas configurações de usuário definem `spinnerTipsEnabled` como `true` e as configurações de projeto a definem como `false`, o valor do projeto se aplica. As regras de permissão se comportam de forma diferente porque se mesclam entre escopos em vez de substituir. Veja [Precedência de configurações](#settings-precedence).68Por exemplo, se suas configurações de usuário definem `spinnerTipsEnabled` como `true` e as configurações de projeto a definem como `false`, o valor do projeto se aplica. As regras de permissão se comportam de forma diferente porque se mesclam entre escopos em vez de substituir. Veja [Precedência de configurações](#settings-precedence).

69 69 


97 * `.claude/settings.local.json` para configurações que não são verificadas, úteis para preferências pessoais e experimentação. Quando o Claude Code cria `.claude/settings.local.json`, ele configura o git para ignorar o arquivo. Se você criar o arquivo você mesmo, adicione-o ao seu gitignore manualmente.97 * `.claude/settings.local.json` para configurações que não são verificadas, úteis para preferências pessoais e experimentação. Quando o Claude Code cria `.claude/settings.local.json`, ele configura o git para ignorar o arquivo. Se você criar o arquivo você mesmo, adicione-o ao seu gitignore manualmente.

98* **Configurações gerenciadas**: Para organizações que precisam de controle centralizado, o Claude Code suporta múltiplos mecanismos de entrega para configurações gerenciadas. Todos usam o mesmo formato JSON e não podem ser substituídos por configurações de usuário ou projeto:98* **Configurações gerenciadas**: Para organizações que precisam de controle centralizado, o Claude Code suporta múltiplos mecanismos de entrega para configurações gerenciadas. Todos usam o mesmo formato JSON e não podem ser substituídos por configurações de usuário ou projeto:

99 99 

100 * **Configurações gerenciadas pelo servidor**: entregues dos servidores da Anthropic através do console de administração do Claude.ai. Veja [configurações gerenciadas pelo servidor](/pt/server-managed-settings).100 * **Configurações gerenciadas pelo servidor**: entregues remotamente na entrada, seja dos servidores da Anthropic através do console de administração do claude.ai ou de um [gateway de aplicativos Claude](/pt/claude-apps-gateway) auto-hospedado. Veja [configurações gerenciadas pelo servidor](/pt/server-managed-settings).

101 * **Políticas de nível MDM/SO**: entregues através do gerenciamento nativo de dispositivos no macOS e Windows:101 * **Políticas de nível MDM/SO**: entregues através do gerenciamento nativo de dispositivos no macOS e Windows:

102 * macOS: domínio de preferências gerenciadas `com.anthropic.claudecode`. As chaves de nível superior do plist espelham `managed-settings.json`, com configurações aninhadas como dicionários e arrays como arrays de plist. Implante via perfis de configuração em Jamf, Iru (Kandji), ou ferramentas MDM similares.102 * macOS: domínio de preferências gerenciadas `com.anthropic.claudecode`. As chaves de nível superior do plist espelham `managed-settings.json`, com configurações aninhadas como dicionários e arrays como arrays de plist. Implante via perfis de configuração em Jamf, Iru (Kandji), ou ferramentas MDM similares.

103 * Windows: chave de registro `HKLM\SOFTWARE\Policies\ClaudeCode` com um valor `Settings` (REG\_SZ ou REG\_EXPAND\_SZ) contendo JSON (implantado via Política de Grupo ou Intune)103 * Windows: chave de registro `HKLM\SOFTWARE\Policies\ClaudeCode` com um valor `Settings` (REG\_SZ ou REG\_EXPAND\_SZ) contendo JSON (implantado via Política de Grupo ou Intune)


114 114 

115 Configurações gerenciadas baseadas em arquivo também suportam um diretório drop-in em `managed-settings.d/` no mesmo diretório do sistema ao lado de `managed-settings.json`. Isto permite que equipes separadas implantem fragmentos de política independentes sem coordenar edições em um único arquivo.115 Configurações gerenciadas baseadas em arquivo também suportam um diretório drop-in em `managed-settings.d/` no mesmo diretório do sistema ao lado de `managed-settings.json`. Isto permite que equipes separadas implantem fragmentos de política independentes sem coordenar edições em um único arquivo.

116 116 

117 Seguindo a convenção systemd, `managed-settings.json` é mesclado primeiro como base, então todos os arquivos `*.json` no diretório drop-in são classificados alfabeticamente e mesclados por cima. Arquivos posteriores substituem anteriores para valores escalares; arrays são concatenados e desduplicados; objetos são mesclados profundamente. Arquivos ocultos começando com `.` são ignorados.117 Seguindo a convenção systemd, `managed-settings.json` é mesclado primeiro como base, então todos os arquivos `*.json` no diretório drop-in são classificados alfabeticamente e mesclados por cima. Arquivos posteriores substituem anteriores para valores escalares, arrays são concatenados e desduplicados, e objetos são mesclados profundamente. Arquivos ocultos começando com `.` são ignorados.

118 118 

119 Use prefixos numéricos para controlar a ordem de mesclagem, por exemplo `10-telemetry.json` e `20-security.json`.119 Use prefixos numéricos para controlar a ordem de mesclagem, por exemplo `10-telemetry.json` e `20-security.json`.

120 120 


229| `autoMemoryDirectory` | Diretório personalizado para armazenamento de [memória automática](/pt/memory#storage-location). Aceita um caminho absoluto ou um caminho com prefixo `~/`. A partir de configurações de projeto ou local, isto é honrado apenas após você aceitar o diálogo de confiança do workspace, já que um repositório clonado pode fornecer este arquivo | `"~/my-memory-dir"` |229| `autoMemoryDirectory` | Diretório personalizado para armazenamento de [memória automática](/pt/memory#storage-location). Aceita um caminho absoluto ou um caminho com prefixo `~/`. A partir de configurações de projeto ou local, isto é honrado apenas após você aceitar o diálogo de confiança do workspace, já que um repositório clonado pode fornecer este arquivo | `"~/my-memory-dir"` |

230| `autoMemoryEnabled` | **Padrão**: `true`. Ativar [memória automática](/pt/memory#enable-or-disable-auto-memory). Quando `false`, Claude não lê ou escreve no diretório de memória automática. Você também pode alternar isto com `/memory` durante uma sessão. Para desabilitar via variável de ambiente, defina [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/pt/env-vars) em `env` | `false` |230| `autoMemoryEnabled` | **Padrão**: `true`. Ativar [memória automática](/pt/memory#enable-or-disable-auto-memory). Quando `false`, Claude não lê ou escreve no diretório de memória automática. Você também pode alternar isto com `/memory` durante uma sessão. Para desabilitar via variável de ambiente, defina [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/pt/env-vars) em `env` | `false` |

231| `autoMode` | Personalizar o que o classificador de [modo automático](/pt/permission-modes#eliminate-prompts-with-auto-mode) bloqueia e permite. Contém arrays `environment`, `allow`, `soft_deny`, e `hard_deny` de regras em prosa. Inclua a string literal `"$defaults"` em um array para herdar as regras integradas nessa posição. Veja [Configurar modo automático](/pt/auto-mode-config). Não lido de configurações de projeto compartilhadas | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |231| `autoMode` | Personalizar o que o classificador de [modo automático](/pt/permission-modes#eliminate-prompts-with-auto-mode) bloqueia e permite. Contém arrays `environment`, `allow`, `soft_deny`, e `hard_deny` de regras em prosa. Inclua a string literal `"$defaults"` em um array para herdar as regras integradas nessa posição. Veja [Configurar modo automático](/pt/auto-mode-config). Não lido de configurações de projeto compartilhadas | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

232| `autoMode.classifyAllShell` | {/* min-version: 2.1.193 */}**Padrão**: `false`. Quando `true`, suspende cada regra allow de Bash e PowerShell enquanto o modo automático está ativo para que todos os comandos shell sejam roteados através do classificador, não apenas regras que correspondem a padrões de execução de código arbitrário. Veja [Rotear todos os comandos shell através do classificador](/pt/auto-mode-config#route-all-shell-commands-through-the-classifier). Requer Claude Code v2.1.193 ou posterior | `true` |

232| `autoScrollEnabled` | **Padrão**: `true`. Em [renderização fullscreen](/pt/fullscreen), seguir nova saída até o fundo da conversa. Aparece em `/config` como **Auto-scroll**. Prompts de permissão ainda rolam para a vista quando isto está desligado | `false` |233| `autoScrollEnabled` | **Padrão**: `true`. Em [renderização fullscreen](/pt/fullscreen), seguir nova saída até o fundo da conversa. Aparece em `/config` como **Auto-scroll**. Prompts de permissão ainda rolam para a vista quando isto está desligado | `false` |

233| `autoUpdatesChannel` | **Padrão**: `"latest"`. Canal de lançamento a seguir para atualizações. Use `"stable"` para uma versão que é tipicamente cerca de uma semana antiga e pula versões com regressões maiores, ou `"latest"` para o lançamento mais recente. Para desabilitar auto-atualizações completamente, defina [`DISABLE_AUTOUPDATER`](/pt/setup#disable-auto-updates) em `env` | `"stable"` |234| `autoUpdatesChannel` | **Padrão**: `"latest"`. Canal de lançamento a seguir para atualizações. Use `"stable"` para uma versão que é tipicamente cerca de uma semana antiga e pula versões com regressões maiores, ou `"latest"` para o lançamento mais recente. Para desabilitar auto-atualizações completamente, defina [`DISABLE_AUTOUPDATER`](/pt/setup#disable-auto-updates) em `env` | `"stable"` |

234| `availableModels` | Restringir quais modelos os usuários podem selecionar para a sessão principal, [subagents](/pt/sub-agents), [skills](/pt/skills), e o [advisor](/pt/advisor). Não afeta a opção Padrão a menos que `enforceAvailableModels` também esteja definido. Veja [Restringir seleção de modelo](/pt/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |235| `availableModels` | Restringir quais modelos os usuários podem selecionar para a sessão principal, [subagents](/pt/sub-agents), [skills](/pt/skills), e o [advisor](/pt/advisor). Não afeta a opção Padrão a menos que `enforceAvailableModels` também esteja definido. Veja [Restringir seleção de modelo](/pt/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |


253| `disableDeepLinkRegistration` | Defina como `"disable"` para impedir que o Claude Code registre o manipulador de protocolo `claude-cli://` com o sistema operacional na inicialização. [Deep links](/pt/deep-links) permitem que ferramentas externas abram uma sessão do Claude Code com um prompt pré-preenchido. Útil em ambientes onde o registro de manipulador de protocolo é restrito ou gerenciado separadamente | `"disable"` |254| `disableDeepLinkRegistration` | Defina como `"disable"` para impedir que o Claude Code registre o manipulador de protocolo `claude-cli://` com o sistema operacional na inicialização. [Deep links](/pt/deep-links) permitem que ferramentas externas abram uma sessão do Claude Code com um prompt pré-preenchido. Útil em ambientes onde o registro de manipulador de protocolo é restrito ou gerenciado separadamente | `"disable"` |

254| `disabledMcpjsonServers` | Lista de MCP servers específicos de arquivos `.mcp.json` para rejeitar | `["filesystem"]` |255| `disabledMcpjsonServers` | Lista de MCP servers específicos de arquivos `.mcp.json` para rejeitar | `["filesystem"]` |

255| `disableRemoteControl` | {/* min-version: 2.1.128 */}Desabilitar [Controle Remoto](/pt/remote-control): bloqueia `claude remote-control`, a flag `--remote-control`, auto-start, e o toggle em sessão. Tipicamente colocado em [configurações gerenciadas](/pt/permissions#managed-settings) para aplicação de MDM por dispositivo, mas funciona de qualquer escopo. Requer Claude Code v2.1.128 ou posterior | `true` |256| `disableRemoteControl` | {/* min-version: 2.1.128 */}Desabilitar [Controle Remoto](/pt/remote-control): bloqueia `claude remote-control`, a flag `--remote-control`, auto-start, e o toggle em sessão. Tipicamente colocado em [configurações gerenciadas](/pt/permissions#managed-settings) para aplicação de MDM por dispositivo, mas funciona de qualquer escopo. Requer Claude Code v2.1.128 ou posterior | `true` |

257| `disableSideloadFlags` | {/* min-version: 2.1.193 */}(Apenas configurações gerenciadas) Rejeitar as flags CLI `--plugin-dir`, `--plugin-url`, `--agents`, e `--mcp-config` na inicialização, que os usuários poderiam passar para contornar [`strictKnownMarketplaces`](#strictknownmarketplaces) para uma única execução. Também rejeita estas flags de qualquer superfície que gera a CLI com elas internamente, atualmente [Cowork](/pt/desktop) sessões locais no aplicativo desktop. Um `--mcp-config` cujos servers são todas entradas `type: "sdk"` em processo ainda é aceito, então o Agent SDK e a extensão VS Code continuam funcionando. Não bloqueia `claude mcp add`, `.mcp.json`, ou SDK `setMcpServers()`; emparelhe com [`allowedMcpServers`](/pt/managed-mcp) para controle de MCP por servidor. Requer Claude Code v2.1.193 ou posterior | `true` |

256| `disableSkillShellExecution` | Desabilitar execução de shell inline para blocos `` !`...` `` e ` ```! ` em [skills](/pt/skills) e comandos personalizados de fontes de usuário, projeto, plugin ou diretório adicional. Comandos são substituídos por `[shell command execution disabled by policy]` em vez de serem executados. Skills agrupadas e gerenciadas não são afetadas. Mais útil em [configurações gerenciadas](/pt/permissions#managed-settings) onde os usuários não podem substituir | `true` |258| `disableSkillShellExecution` | Desabilitar execução de shell inline para blocos `` !`...` `` e ` ```! ` em [skills](/pt/skills) e comandos personalizados de fontes de usuário, projeto, plugin ou diretório adicional. Comandos são substituídos por `[shell command execution disabled by policy]` em vez de serem executados. Skills agrupadas e gerenciadas não são afetadas. Mais útil em [configurações gerenciadas](/pt/permissions#managed-settings) onde os usuários não podem substituir | `true` |

257| `disableWorkflows` | **Padrão**: `false`. Desabilitar [workflows dinâmicos](/pt/workflows#turn-workflows-off) e os comandos de workflow agrupados. Equivalente a definir `CLAUDE_CODE_DISABLE_WORKFLOWS` como `1` | `true` |259| `disableWorkflows` | **Padrão**: `false`. Desabilitar [workflows dinâmicos](/pt/workflows#turn-workflows-off) e os comandos de workflow agrupados. Equivalente a definir `CLAUDE_CODE_DISABLE_WORKFLOWS` como `1` | `true` |

258| `editorMode` | **Padrão**: `"normal"`. Modo de atalho de teclado para o prompt de entrada: `"normal"` ou `"vim"`. Aparece em `/config` como **Editor mode** | `"vim"` |260| `editorMode` | **Padrão**: `"normal"`. Modo de atalho de teclado para o prompt de entrada: `"normal"` ou `"vim"`. Aparece em `/config` como **Editor mode** | `"vim"` |

259| `effortLevel` | Persistir o [nível de esforço](/pt/model-config#adjust-effort-level) entre sessões. Aceita `"low"`, `"medium"`, `"high"`, ou `"xhigh"`. Escrito automaticamente quando você executa `/effort` com um desses valores. `--effort` e [`CLAUDE_CODE_EFFORT_LEVEL`](/pt/env-vars) substituem isto para uma sessão. Veja [Ajustar nível de esforço](/pt/model-config#adjust-effort-level) para modelos suportados | `"xhigh"` |261| `effortLevel` | Persistir o [nível de esforço](/pt/model-config#adjust-effort-level) entre sessões. Aceita `"low"`, `"medium"`, `"high"`, ou `"xhigh"`. Escrito automaticamente quando você executa `/effort` com um desses valores. `--effort` e [`CLAUDE_CODE_EFFORT_LEVEL`](/pt/env-vars) substituem isto para uma sessão. Veja [Ajustar nível de esforço](/pt/model-config#adjust-effort-level) para modelos suportados | `"xhigh"` |

260| `enableAllProjectMcpServers` | Aprovar automaticamente todos os MCP servers definidos em arquivos `.mcp.json` do projeto | `true` |262| `enableAllProjectMcpServers` | Aprovar automaticamente todos os MCP servers definidos em arquivos `.mcp.json` do projeto. {/* min-version: 2.1.196 */}A partir de v2.1.196, `claude mcp list` e `claude mcp get` honram esta chave em uma pasta não confiável apenas de [arquivos de configuração que não são verificados no repositório](/pt/mcp#managing-your-servers) | `true` |

261| `enabledMcpjsonServers` | Lista de MCP servers específicos de arquivos `.mcp.json` para aprovar | `["memory", "github"]` |263| `enableArtifact` | {/* min-version: 2.1.196 */}Ativar ou desabilitar a ferramenta [Artifact](/pt/artifacts) para este usuário. Quando indefinido, o padrão segue a [disponibilidade](/pt/artifacts#availability) do recurso para sua conta. A linha **Artifacts** em `/config` escreve esta chave. Um `disableArtifact` gerenciado e sua [configuração de administrador](/pt/artifacts#manage-artifacts-for-your-organization) da organização têm precedência, e a chave é ignorada em configurações de projeto e local (`.claude/settings.json`, `.claude/settings.local.json`), que um repositório poderia de outra forma confirmar. Requer Claude Code v2.1.196 ou posterior | `true` |

262| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Estender a lista de permissões `availableModels` para o modelo Padrão. Quando `true` em configurações gerenciadas e `availableModels` é uma lista não-vazia, a opção Padrão volta para a primeira entrada na lista de permissões que está disponível. Não tem efeito quando `availableModels` está indefinido ou vazio. Veja [Aplicar a lista de permissões para o modelo Padrão](/pt/model-config#enforce-the-allowlist-for-the-default-model). Requer Claude Code v2.1.175 ou posterior | `true` |264| `enabledMcpjsonServers` | Lista de MCP servers específicos de arquivos `.mcp.json` para aprovar. {/* min-version: 2.1.196 */}A partir de v2.1.196, `claude mcp list` e `claude mcp get` honram esta chave em uma pasta não confiável apenas de [arquivos de configuração que não são verificados no repositório](/pt/mcp#managing-your-servers) | `["memory", "github"]` |

263| `env` | Variáveis de ambiente aplicadas a cada sessão e a subprocessos que Claude Code gera a partir dela. {/* min-version: 2.1.143 */}A partir da v2.1.143, `NO_COLOR` e `FORCE_COLOR` definidos aqui são passados para subprocessos mas não mudam as cores da interface do Claude Code. Defina estes em seu shell antes de lançar `claude` para mudar as cores da interface | `{"FOO": "bar"}` |265| `enforceAvailableModels` | {/* min-version: 2.1.175 */}Estender a lista de permissões `availableModels` para o modelo Padrão. Quando `true` em configurações gerenciadas e `availableModels` é uma lista não-vazia, a opção Padrão volta para a primeira entrada na lista de permissões que está disponível, mas apenas quando o modelo padrão para o tipo de conta do usuário não está na lista de permissões; um padrão na lista de permissões é mantido como está. Não tem efeito quando `availableModels` está indefinido ou vazio. Veja [Aplicar a lista de permissões para o modelo Padrão](/pt/model-config#enforce-the-allowlist-for-the-default-model). Requer Claude Code v2.1.175 ou posterior | `true` |

264| `fallbackModel` | Modelo(s) de fallback para tentar em ordem quando o modelo primário está sobrecarregado ou indisponível. O Claude Code muda para o próximo modelo disponível na cadeia para o resto do turno e mostra um aviso. `"default"` expande para o modelo padrão. Cadeias são limitadas a três modelos; entradas extras são ignoradas. Ao contrário da maioria das configurações de array, esta chave não se mescla entre arquivos de configuração: o arquivo de precedência mais alta que a define fornece a cadeia inteira. A flag [`--fallback-model`](/pt/cli-reference#cli-flags) substitui isto para uma sessão. Veja [Cadeias de modelo de fallback](/pt/model-config#fallback-model-chains) | `["claude-sonnet-4-6", "claude-haiku-4-5"]` |266| `env` | Variáveis de ambiente aplicadas a cada sessão e a subprocessos que Claude Code gera a partir dela. {/* min-version: 2.1.143 */}A partir da v2.1.143, `NO_COLOR` e `FORCE_COLOR` definidos aqui são passados para subprocessos mas não mudam as cores da interface do Claude Code. Defina estes em seu shell antes de lançar `claude` para mudar as cores da interface. {/* min-version: 2.1.195 */}A partir de v2.1.195, variáveis de identidade que ambientes de hospedagem do Claude Code definem, por exemplo `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, são ignoradas quando definidas aqui | `{"FOO": "bar"}` |

267| `fallbackModel` | Modelo(s) de fallback para tentar em ordem quando o modelo primário está sobrecarregado ou indisponível. O Claude Code muda para o próximo modelo disponível na cadeia para o resto do turno e mostra um aviso. `"default"` expande para o modelo padrão. Cadeias são limitadas a três modelos; entradas extras são ignoradas. Ao contrário da maioria das configurações de array, esta chave não se mescla entre arquivos de configuração: o arquivo de precedência mais alta que a define fornece a cadeia inteira. A flag [`--fallback-model`](/pt/cli-reference#cli-flags) substitui isto para uma sessão. Veja [Cadeias de modelo de fallback](/pt/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` |

265| `fastModePerSessionOptIn` | Quando `true`, o modo rápido não persiste entre sessões. Cada sessão começa com modo rápido desligado, exigindo que os usuários o habilitem com `/fast`. A preferência de modo rápido do usuário ainda é salva. Veja [Exigir opt-in por sessão](/pt/fast-mode#require-per-session-opt-in) | `true` |268| `fastModePerSessionOptIn` | Quando `true`, o modo rápido não persiste entre sessões. Cada sessão começa com modo rápido desligado, exigindo que os usuários o habilitem com `/fast`. A preferência de modo rápido do usuário ainda é salva. Veja [Exigir opt-in por sessão](/pt/fast-mode#require-per-session-opt-in) | `true` |

266| `feedbackSurveyRate` | Probabilidade (0–1) que a [pesquisa de qualidade de sessão](/pt/data-usage#session-quality-surveys) aparece quando elegível. Defina como `0` para suprimir completamente, ou defina [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/pt/env-vars) em `env`. Útil ao usar Bedrock, Vertex, ou Foundry onde a taxa de amostra padrão não se aplica | `0.05` |269| `feedbackSurveyRate` | Probabilidade (0–1) que a [pesquisa de qualidade de sessão](/pt/data-usage#session-quality-surveys) aparece quando elegível. Defina como `0` para suprimir completamente, ou defina [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/pt/env-vars) em `env`. Útil ao usar Bedrock, Vertex, ou Foundry onde a taxa de amostra padrão não se aplica | `0.05` |

267| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**Padrão**: `true`. Fazer snapshot de arquivos antes de cada edição para que [`/rewind`](/pt/checkpointing) possa restaurá-los. Aparece em `/config` como **Rewind code (checkpoints)**. Para desabilitar via variável de ambiente, defina [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/pt/env-vars) em `env` | `false` |270| `fileCheckpointingEnabled` | {/* min-version: 2.1.119 */}**Padrão**: `true`. Fazer snapshot de arquivos antes de cada edição para que [`/rewind`](/pt/checkpointing) possa restaurá-los. Aparece em `/config` como **Rewind code (checkpoints)**. Para desabilitar via variável de ambiente, defina [`CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING`](/pt/env-vars) em `env` | `false` |

268| `fileSuggestion` | Configure um script personalizado para preenchimento automático de arquivo `@`. Veja [Configurações de sugestão de arquivo](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |271| `fileSuggestion` | Configure um script personalizado para preenchimento automático de arquivo `@`. Veja [Configurações de sugestão de arquivo](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

269| `footerLinksRegexes` | {/* min-version: 2.1.176 */}Renderizar badges clicáveis extras no rodapé quando uma regex corresponde à saída de turno. Cada entrada tem um `pattern`, um modelo de URL `url` com placeholders `{name}` preenchidos de grupos de captura nomeados, e um `label` opcional. Lido apenas de configurações de usuário, flag `--settings`, e configurações gerenciadas. Veja [Badges de link de rodapé](#footer-link-badges) para restrições de URL, lista de permissões de esquema, e limites. Requer Claude Code v2.1.176 ou posterior | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |272| `footerLinksRegexes` | {/* min-version: 2.1.176 */}Renderizar badges clicáveis extras no rodapé quando uma regex corresponde à saída de turno. Cada entrada tem um `pattern`, um modelo de URL `url` com placeholders `{name}` preenchidos de grupos de captura nomeados, e um `label` opcional. Lido apenas de configurações de usuário, flag `--settings`, e configurações gerenciadas. Veja [Badges de link de rodapé](#footer-link-badges) para restrições de URL, lista de permissões de esquema, e limites. Requer Claude Code v2.1.176 ou posterior | `[{"type": "regex", "pattern": "\\b(?<key>PROJ-\\d+)\\b", "url": "https://issues.example.com/browse/{key}", "label": "{key}"}]` |

270| `forceLoginMethod` | Use `claudeai` para restringir login a contas Claude.ai, `console` para restringir login a contas Claude Console. Quando definido em configurações gerenciadas, sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização, já que nenhum valor pode ser satisfeito sem OAuth de primeira parte. Sessões de provedor de terceiros como Bedrock, Vertex, e Foundry não são bloqueadas: elas autenticam contra seu provedor de nuvem em vez de Anthropic | `claudeai` |273| `forceLoginMethod` | Use `claudeai` para restringir login a contas Claude.ai, `console` para restringir login a contas Claude Console, ou `gateway` para restringir login a um gateway de nuvem; veja [gateway de aplicativos Claude](/pt/claude-apps-gateway). Quando definido em qualquer valor em configurações gerenciadas, sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização, já que uma credencial de ambiente não pode satisfazer o método de login necessário. Sessões de provedor de terceiros como Bedrock, Vertex, e Foundry não são bloqueadas: elas autenticam contra seu provedor de nuvem em vez de Anthropic | `claudeai` |

274| `forceLoginGatewayUrl` | Pré-preenche e bloqueia a URL do gateway na tela `/login` Cloud gateway. Ou esta chave ou `forceLoginMethod: "gateway"` superficializa essa tela; defina ambas para que a URL seja preenchida. Honrado apenas no nível de política gerenciada; ignorado em configurações de usuário e projeto. Veja [gateway de aplicativos Claude](/pt/claude-apps-gateway#set-the-gateway-url) | `"https://claude-gateway.example.com"` |

271| `forceLoginOrgUUID` | Exigir que o login pertença a uma organização Anthropic específica. Aceita uma string UUID única, que também pré-seleciona essa organização durante o login, ou um array de UUIDs onde qualquer organização listada é aceita sem pré-seleção. Quando definido em configurações gerenciadas, o login falha se a conta autenticada não pertencer a uma organização listada, e sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização já que a associação à organização não pode ser verificada para elas. Sessões de provedor de terceiros como Bedrock, Vertex, e Foundry não são bloqueadas: use seu IAM de nuvem para restringir quais contas de nuvem podem ser usadas. Um array vazio falha fechado e bloqueia o login com uma mensagem de configuração incorreta | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` ou `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |275| `forceLoginOrgUUID` | Exigir que o login pertença a uma organização Anthropic específica. Aceita uma string UUID única, que também pré-seleciona essa organização durante o login, ou um array de UUIDs onde qualquer organização listada é aceita sem pré-seleção. Quando definido em configurações gerenciadas, o login falha se a conta autenticada não pertencer a uma organização listada, e sessões autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, ou `apiKeyHelper` são bloqueadas na inicialização já que a associação à organização não pode ser verificada para elas. Sessões de provedor de terceiros como Bedrock, Vertex, e Foundry não são bloqueadas: use seu IAM de nuvem para restringir quais contas de nuvem podem ser usadas. Um array vazio falha fechado e bloqueia o login com uma mensagem de configuração incorreta | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` ou `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

272| `forceRemoteSettingsRefresh` | (Apenas configurações gerenciadas) Bloquear inicialização da CLI até que configurações gerenciadas remotas sejam buscadas recentemente do servidor. Se a busca falhar, a CLI sai em vez de continuar com configurações em cache ou sem configurações. Quando não definido, a inicialização continua sem esperar por configurações remotas. Veja [aplicação fail-closed](/pt/server-managed-settings#enforce-fail-closed-startup) | `true` |276| `forceRemoteSettingsRefresh` | (Apenas configurações gerenciadas) Bloquear inicialização da CLI até que configurações gerenciadas remotas sejam buscadas recentemente do servidor. Se a busca falhar, a CLI sai em vez de continuar com configurações em cache ou sem configurações. Quando não definido, a inicialização continua sem esperar por configurações remotas. Veja [aplicação fail-closed](/pt/server-managed-settings#enforce-fail-closed-startup) | `true` |

273| `gcpAuthRefresh` | Script personalizado que atualiza as Credenciais Padrão de Aplicação GCP quando expiram ou não podem ser carregadas. Veja [configuração avançada de credenciais](/pt/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |277| `gcpAuthRefresh` | Script personalizado que atualiza as Credenciais Padrão de Aplicação GCP quando expiram ou não podem ser carregadas. Veja [configuração avançada de credenciais](/pt/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |


276| `includeGitInstructions` | **Padrão**: `true`. Incluir instruções de workflow de commit e PR integradas e o snapshot de status git no prompt do sistema do Claude. Defina como `false` para remover ambos, por exemplo ao usar suas próprias skills de workflow git. A variável de ambiente `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` tem precedência sobre esta configuração quando definida | `false` |280| `includeGitInstructions` | **Padrão**: `true`. Incluir instruções de workflow de commit e PR integradas e o snapshot de status git no prompt do sistema do Claude. Defina como `false` para remover ambos, por exemplo ao usar suas próprias skills de workflow git. A variável de ambiente `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` tem precedência sobre esta configuração quando definida | `false` |

277| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}**Padrão**: `false`. Quando [Controle Remoto](/pt/remote-control) está conectado, enviar uma notificação push para seu telefone quando um prompt de permissão ou pergunta está aguardando sua entrada. Aparece em `/config` como **Push when actions required**. Veja [Notificações push móveis](/pt/remote-control#mobile-push-notifications). Requer Claude Code v2.1.119 ou posterior | `true` |281| `inputNeededNotifEnabled` | {/* min-version: 2.1.119 */}**Padrão**: `false`. Quando [Controle Remoto](/pt/remote-control) está conectado, enviar uma notificação push para seu telefone quando um prompt de permissão ou pergunta está aguardando sua entrada. Aparece em `/config` como **Push when actions required**. Veja [Notificações push móveis](/pt/remote-control#mobile-push-notifications). Requer Claude Code v2.1.119 ou posterior | `true` |

278| `language` | Configure o idioma de resposta preferido do Claude (por exemplo, `"japanese"`, `"spanish"`, `"french"`). Claude responderá neste idioma por padrão. Também define o idioma de [ditado por voz](/pt/voice-dictation#change-the-dictation-language) e títulos de sessão gerados automaticamente. {/* min-version: 2.1.176 */}A partir de v2.1.176, quando não definido, títulos de sessão correspondem ao idioma de sua conversa | `"japanese"` |282| `language` | Configure o idioma de resposta preferido do Claude (por exemplo, `"japanese"`, `"spanish"`, `"french"`). Claude responderá neste idioma por padrão. Também define o idioma de [ditado por voz](/pt/voice-dictation#change-the-dictation-language) e títulos de sessão gerados automaticamente. {/* min-version: 2.1.176 */}A partir de v2.1.176, quando não definido, títulos de sessão correspondem ao idioma de sua conversa | `"japanese"` |

279| `maxSkillDescriptionChars` | {/* min-version: 2.1.105 */}**Padrão**: `1536`. Limite de caracteres por skill no texto combinado `description` e `when_to_use` na [listagem de skills](/pt/skills#skill-descriptions-are-cut-short) que Claude vê a cada turno. Texto mais longo que isto é truncado. Aumente para manter descrições longas intactas ao custo de mais contexto por turno; diminua para caber mais skills sob [`skillListingBudgetFraction`](#available-settings). Requer Claude Code v2.1.105 ou posterior | `2048` |

280| `minimumVersion` | Piso que impede auto-atualizações em background e `claude update` de instalar uma versão abaixo desta. Mudar do canal `"latest"` para `"stable"` via `/config` solicita que você fique na versão atual ou permita o downgrade. Escolher ficar define este valor. Também útil em [configurações gerenciadas](/pt/permissions#managed-settings) para fixar um mínimo em toda a organização. Para um piso duro que bloqueia a inicialização completamente, veja `requiredMinimumVersion` | `"2.1.100"` |283| `minimumVersion` | Piso que impede auto-atualizações em background e `claude update` de instalar uma versão abaixo desta. Mudar do canal `"latest"` para `"stable"` via `/config` solicita que você fique na versão atual ou permita o downgrade. Escolher ficar define este valor. Também útil em [configurações gerenciadas](/pt/permissions#managed-settings) para fixar um mínimo em toda a organização. Para um piso duro que bloqueia a inicialização completamente, veja `requiredMinimumVersion` | `"2.1.100"` |

281| `model` | Substituir o modelo padrão a usar para Claude Code. `--model` e [`ANTHROPIC_MODEL`](/pt/model-config#environment-variables) substituem isto para uma sessão | `"claude-sonnet-4-6"` |284| `model` | Substituir o modelo padrão a usar para Claude Code. `--model` e [`ANTHROPIC_MODEL`](/pt/model-config#environment-variables) substituem isto para uma sessão | `"claude-sonnet-5"` |

282| `modelOverrides` | Mapear IDs de modelo Anthropic para IDs de modelo específicos do provedor, como ARNs de perfil de inferência Bedrock. Cada entrada do seletor de modelo usa seu valor mapeado ao chamar a API do provedor. Veja [Substituir IDs de modelo por versão](/pt/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |285| `modelOverrides` | Mapear IDs de modelo Anthropic para IDs de modelo específicos do provedor, como ARNs de perfil de inferência Bedrock. Cada entrada do seletor de modelo usa seu valor mapeado ao chamar a API do provedor. Veja [Substituir IDs de modelo por versão](/pt/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

283| `otelHeadersHelper` | Script para gerar cabeçalhos OpenTelemetry dinâmicos. Executa na inicialização e periodicamente. Defina o intervalo de atualização com [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/pt/env-vars). Veja [Cabeçalhos dinâmicos](/pt/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |286| `otelHeadersHelper` | Script para gerar cabeçalhos OpenTelemetry dinâmicos. Executa na inicialização e periodicamente. Defina o intervalo de atualização com [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/pt/env-vars). Veja [Cabeçalhos dinâmicos](/pt/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |

284| `outputStyle` | Configure um estilo de saída para ajustar o prompt do sistema. Veja [documentação de estilos de saída](/pt/output-styles) | `"Explanatory"` |287| `outputStyle` | Configure um estilo de saída para ajustar o prompt do sistema. Veja [documentação de estilos de saída](/pt/output-styles) | `"Explanatory"` |


300| `showThinkingSummaries` | **Padrão**: `false`. Mostrar resumos de [pensamento estendido](/pt/model-config#extended-thinking) em sessões interativas. Quando indefinido ou `false`, blocos de pensamento são redatados pela API e mostrados como um stub recolhido. A redação apenas muda o que você vê, não o que o modelo gera: para reduzir gastos de pensamento, [reduza o orçamento ou desabilite o pensamento](/pt/model-config#extended-thinking) em vez disso. Esta configuração não tem efeito em modo não interativo (`-p`), no Agent SDK, ou em extensões IDE como VS Code | `true` |303| `showThinkingSummaries` | **Padrão**: `false`. Mostrar resumos de [pensamento estendido](/pt/model-config#extended-thinking) em sessões interativas. Quando indefinido ou `false`, blocos de pensamento são redatados pela API e mostrados como um stub recolhido. A redação apenas muda o que você vê, não o que o modelo gera: para reduzir gastos de pensamento, [reduza o orçamento ou desabilite o pensamento](/pt/model-config#extended-thinking) em vez disso. Esta configuração não tem efeito em modo não interativo (`-p`), no Agent SDK, ou em extensões IDE como VS Code | `true` |

301| `showTurnDuration` | **Padrão**: `true`. Mostrar mensagens de duração de turno após respostas, por exemplo "Cooked for 1m 6s". Aparece em `/config` como **Show turn duration** | `false` |304| `showTurnDuration` | **Padrão**: `true`. Mostrar mensagens de duração de turno após respostas, por exemplo "Cooked for 1m 6s". Aparece em `/config` como **Show turn duration** | `false` |

302| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}**Padrão**: `0.01` (1%). Fração da janela de contexto do modelo reservada para a [listagem de skills](/pt/skills#skill-descriptions-are-cut-short) que Claude vê a cada turno. Quando a listagem excede o orçamento, descrições para as skills menos usadas são recolhidas para nomes simples para que Claude ainda possa invocá-las mas não verá por quê. Aumente para manter mais descrições visíveis ao custo de mais contexto por turno. `/doctor` mostra a contagem de truncamento atual e quais skills são afetadas. Requer Claude Code v2.1.105 ou posterior | `0.02` |305| `skillListingBudgetFraction` | {/* min-version: 2.1.105 */}**Padrão**: `0.01` (1%). Fração da janela de contexto do modelo reservada para a [listagem de skills](/pt/skills#skill-descriptions-are-cut-short) que Claude vê a cada turno. Quando a listagem excede o orçamento, descrições para as skills menos usadas são recolhidas para nomes simples para que Claude ainda possa invocá-las mas não verá por quê. Aumente para manter mais descrições visíveis ao custo de mais contexto por turno. `/doctor` mostra a contagem de truncamento atual e quais skills são afetadas. Requer Claude Code v2.1.105 ou posterior | `0.02` |

306| `skillListingMaxDescChars` | {/* min-version: 2.1.105 */}**Padrão**: `1536`. Limite de caracteres por skill no texto combinado `description` e `when_to_use` na [listagem de skills](/pt/skills#skill-descriptions-are-cut-short) que Claude vê a cada turno. Texto mais longo que isto é truncado. Aumente para manter descrições longas intactas ao custo de mais contexto por turno; diminua para caber mais skills sob [`skillListingBudgetFraction`](#available-settings). Requer Claude Code v2.1.105 ou posterior | `2048` |

303| `skillOverrides` | {/* min-version: 2.1.129 */}Substituições de visibilidade por skill com chave de nome de skill. O valor é `"on"`, `"name-only"`, `"user-invocable-only"`, ou `"off"`. Permite ocultar ou recolher uma skill sem editar seu SKILL.md. Não se aplica a skills de plugin, que são gerenciadas através de `/plugin`. O menu `/skills` escreve estes em `.claude/settings.local.json`. Veja [Substituir visibilidade de skill a partir de configurações](/pt/skills#override-skill-visibility-from-settings). Requer Claude Code v2.1.129 ou posterior | `{"legacy-context": "name-only", "deploy": "off"}` |307| `skillOverrides` | {/* min-version: 2.1.129 */}Substituições de visibilidade por skill com chave de nome de skill. O valor é `"on"`, `"name-only"`, `"user-invocable-only"`, ou `"off"`. Permite ocultar ou recolher uma skill sem editar seu SKILL.md. Não se aplica a skills de plugin, que são gerenciadas através de `/plugin`. O menu `/skills` escreve estes em `.claude/settings.local.json`. Veja [Substituir visibilidade de skill a partir de configurações](/pt/skills#override-skill-visibility-from-settings). Requer Claude Code v2.1.129 ou posterior | `{"legacy-context": "name-only", "deploy": "off"}` |

304| `skipWebFetchPreflight` | Pular a [verificação de segurança de domínio WebFetch](/pt/data-usage#webfetch-domain-safety-check) que envia cada nome de host solicitado para `api.anthropic.com` antes de buscar. Defina como `true` em ambientes que bloqueiam tráfego para Anthropic, como implantações Bedrock, Vertex AI, ou Foundry com egresso restritivo. Quando pulado, WebFetch tenta qualquer URL sem consultar a lista de bloqueio | `true` |308| `skipWebFetchPreflight` | Pular a [verificação de segurança de domínio WebFetch](/pt/data-usage#webfetch-domain-safety-check) que envia cada nome de host solicitado para `api.anthropic.com` antes de buscar. Defina como `true` em ambientes que bloqueiam tráfego para Anthropic, como implantações Bedrock, Vertex AI, ou Foundry com egresso restritivo. Quando pulado, WebFetch tenta qualquer URL sem consultar a lista de bloqueio | `true` |

305| `spinnerTipsEnabled` | **Padrão**: `true`. Mostrar dicas no spinner enquanto Claude está trabalhando. Defina como `false` para desabilitar dicas | `false` |309| `spinnerTipsEnabled` | **Padrão**: `true`. Mostrar dicas no spinner enquanto Claude está trabalhando. Defina como `false` para desabilitar dicas | `false` |

306| `spinnerTipsOverride` | Substituir dicas do spinner com strings personalizadas. `tips`: array de strings de dica. `excludeDefault`: se `true`, mostrar apenas dicas personalizadas; se `false` ou ausente, dicas personalizadas são mescladas com dicas integradas | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |310| `spinnerTipsOverride` | Substituir dicas do spinner com strings personalizadas. `tips`: array de strings de dica. `excludeDefault`: se `true`, mostrar apenas dicas personalizadas; se `false` ou ausente, dicas personalizadas são mescladas com dicas integradas | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |

307| `spinnerVerbs` | Personalizar os verbos de ação mostrados enquanto um turno está em progresso. Defina `mode` como `"replace"` para usar apenas seus verbos, ou `"append"` para adicioná-los aos padrões | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |311| `spinnerVerbs` | Personalizar os verbos de ação mostrados enquanto um turno está em progresso. Defina `mode` como `"replace"` para usar apenas seus verbos, ou `"append"` para adicioná-los aos padrões | `{"mode": "append", "verbs": ["Pondering", "Crafting"]}` |

308| `sshConfigs` | Conexões SSH para mostrar no dropdown de ambiente [Desktop](/pt/desktop#pre-configure-ssh-connections-for-your-team). Cada entrada requer `id`, `name`, e `sshHost`; `sshPort`, `sshIdentityFile`, e `startDirectory` são opcionais. Quando definido em configurações gerenciadas, conexões são somente leitura para usuários. Lido apenas de configurações gerenciadas e de usuário | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |312| `sshConfigs` | Conexões SSH para mostrar no dropdown de ambiente [Desktop](/pt/desktop#pre-configure-ssh-connections-for-your-team). Cada entrada requer `id`, `name`, e `sshHost`; `sshPort`, `sshIdentityFile`, e `startDirectory` são opcionais. Quando definido em configurações gerenciadas, conexões são somente leitura para usuários. Lido apenas de configurações gerenciadas e de usuário | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

309| `statusLine` | Configure uma linha de status personalizada para exibir contexto. Veja [documentação de `statusLine`](/pt/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |313| `statusLine` | Configure uma linha de status personalizada para exibir contexto. O objeto opcional tem campos `padding`, `refreshInterval`, e `hideVimModeIndicator` que controlam espaçamento, re-execuções periódicas, e se o indicador de modo vim integrado abaixo do prompt está oculto. Veja [documentação de `statusLine`](/pt/statusline#manually-configure-a-status-line) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

310| `strictKnownMarketplaces` | (Apenas configurações gerenciadas) Lista de permissões de marketplaces de plugin. Indefinido = sem restrições, array vazio = bloqueio. Aplicado em adição de marketplace e em instalação, atualização, atualização e auto-atualização de plugin, então um marketplace adicionado antes da política ser definida não pode ser usado para buscar plugins. Veja [Restrições de marketplace gerenciado](/pt/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |314| `strictKnownMarketplaces` | (Apenas configurações gerenciadas) Lista de permissões de marketplaces de plugin. Indefinido = sem restrições, array vazio = bloqueio. Aplicado em adição de marketplace e em instalação, atualização, atualização e auto-atualização de plugin, então um marketplace adicionado antes da política ser definida não pode ser usado para buscar plugins. Veja [Restrições de marketplace gerenciado](/pt/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

311| `strictPluginOnlyCustomization` | (Apenas configurações gerenciadas) Bloquear skills, agents, hooks, e MCP servers de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas. `true` bloqueia todas as quatro superfícies; um array bloqueia apenas as nomeadas. Veja [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |315| `strictPluginOnlyCustomization` | (Apenas configurações gerenciadas) Bloquear skills, agents, hooks, e MCP servers de fontes de usuário e projeto, para que possam vir apenas de plugins ou configurações gerenciadas. `true` bloqueia todas as quatro superfícies; um array bloqueia apenas as nomeadas. Veja [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | `["skills", "hooks"]` |

312| `syntaxHighlightingDisabled` | Desabilitar destaque de sintaxe em diffs, blocos de código e visualizações de arquivo | `true` |316| `syntaxHighlightingDisabled` | Desabilitar destaque de sintaxe em diffs, blocos de código e visualizações de arquivo | `true` |


483**Atribuição de commit padrão:**487**Atribuição de commit padrão:**

484 488 

485```text theme={null}489```text theme={null}

486Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>490Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

487```491```

488 492 

489O nome do modelo no trailer reflete o modelo ativo para a sessão.493O nome do modelo no trailer reflete o modelo ativo para a sessão.


6561. **Configurações gerenciadas** ([gerenciadas pelo servidor](/pt/server-managed-settings), [políticas de nível MDM/SO](#configuration-scopes), ou [configurações gerenciadas](/pt/settings#settings-files))6601. **Configurações gerenciadas** ([gerenciadas pelo servidor](/pt/server-managed-settings), [políticas de nível MDM/SO](#configuration-scopes), ou [configurações gerenciadas](/pt/settings#settings-files))

657 * Políticas implantadas por TI através de entrega de servidor, perfis de configuração MDM, políticas de registro, ou arquivos de configurações gerenciadas661 * Políticas implantadas por TI através de entrega de servidor, perfis de configuração MDM, políticas de registro, ou arquivos de configurações gerenciadas

658 * Não podem ser substituídas por qualquer outro nível, incluindo argumentos de linha de comando662 * Não podem ser substituídas por qualquer outro nível, incluindo argumentos de linha de comando

659 * Dentro do nível gerenciado, a precedência é: gerenciadas pelo servidor > políticas de nível MDM/SO > baseadas em arquivo (`managed-settings.d/*.json` + `managed-settings.json`) > registro HKCU (apenas Windows). Apenas uma fonte gerenciada é usada; fontes não se mesclam entre camadas. Dentro da camada baseada em arquivo, arquivos drop-in e o arquivo base são mesclados juntos.663 * Dentro do nível gerenciado, a precedência é: saída [`policyHelper`](#compute-managed-settings-with-a-policy-helper), que quando configurada é a única fonte gerenciada usada > remota (configurações gerenciadas pelo servidor do [claude.ai](/pt/server-managed-settings) ou [gateway de aplicativos Claude](/pt/claude-apps-gateway)-entregues) > políticas de nível MDM/SO > baseadas em arquivo (`managed-settings.d/*.json` + `managed-settings.json`) > registro HKCU (apenas Windows). Apenas uma fonte gerenciada é usada; fontes não se mesclam entre camadas, com uma exceção: as chaves de bloqueio de sandbox `sandbox.network.allowManagedDomainsOnly` e `sandbox.filesystem.allowManagedReadPathsOnly`, com suas listas de permissões associadas, `allowAllClaudeAiMcps`, e os caminhos binários de sandbox `sandbox.bwrapPath` e `sandbox.socatPath` são honrados quando qualquer fonte gerenciada controlada por administrador os define; a camada HKCU gravável pelo usuário é excluída. Dentro da camada baseada em arquivo, arquivos drop-in e o arquivo base são mesclados juntos.

660 * Hosts de incorporação como Claude Desktop podem fornecer política via opção SDK `managedSettings`. Por padrão isto é ignorado quando qualquer nível gerenciado está presente. Administradores podem optar por definir [`parentSettingsBehavior`](#available-settings) como `"merge"`. Os valores do incorporador são filtrados para que possam apertar a política gerenciada mas não afrouxá-la.664 * Hosts de incorporação como Claude Desktop podem fornecer política via opção SDK `managedSettings`. Por padrão isto é ignorado quando qualquer fonte gerenciada controlada por administrador está presente: configurações gerenciadas pelo servidor, uma política MDM ou SO, ou um arquivo de configurações gerenciadas. O fallback de registro HKCU gravável pelo usuário não conta como uma fonte gerenciada controlada por administrador. Administradores podem optar por definir [`parentSettingsBehavior`](#available-settings) como `"merge"`. Os valores do incorporador são filtrados para que possam apertar a política gerenciada mas não afrouxá-la.

661 665 

6622. **Argumentos de linha de comando**6662. **Argumentos de linha de comando**

663 * Substituições temporárias para uma sessão específica. JSON passado via `--settings <file-or-json>` se mescla com configurações baseadas em arquivo usando as mesmas regras que as outras camadas: uma chave definida aqui substitui a mesma chave em configurações local, projeto, ou usuário, e omitir uma chave deixa o valor da camada inferior no lugar667 * Substituições temporárias para uma sessão específica. JSON passado via `--settings <file-or-json>` se mescla com configurações baseadas em arquivo usando as mesmas regras que as outras camadas: uma chave definida aqui substitui a mesma chave em configurações local, projeto, ou usuário, e omitir uma chave deixa o valor da camada inferior no lugar


676Por exemplo, se suas configurações de usuário definem `permissions.defaultMode` como `acceptEdits` e as configurações compartilhadas de um projeto definem como `default`, o valor do projeto se aplica. O exemplo abaixo cobre como configurações com valor de array como regras de permissão se combinam em vez disso.680Por exemplo, se suas configurações de usuário definem `permissions.defaultMode` como `acceptEdits` e as configurações compartilhadas de um projeto definem como `default`, o valor do projeto se aplica. O exemplo abaixo cobre como configurações com valor de array como regras de permissão se combinam em vez disso.

677 681 

678<Note>682<Note>

679 **Configurações de array se mesclam entre escopos.** Quando a mesma configuração com valor de array (como `sandbox.filesystem.allowWrite` ou `permissions.allow`) aparece em múltiplos escopos, os arrays são **concatenados e desduplicados**, não substituídos. Isto significa que escopos de prioridade mais baixa podem adicionar entradas sem substituir aquelas definidas por escopos de prioridade mais alta, e vice-versa. Por exemplo, se configurações gerenciadas definem `allowWrite` como `["/opt/company-tools"]` e um usuário adiciona `["~/.kube"]`, ambos os caminhos são incluídos na configuração final. Duas configurações de array não se mesclam desta forma:683 **Configurações de array se mesclam entre escopos.** Quando a mesma configuração com valor de array (como `sandbox.filesystem.allowWrite` ou `permissions.allow`) aparece em múltiplos escopos, os arrays são **concatenados e desduplicados**, não substituídos. Isto significa que escopos de prioridade mais baixa podem adicionar entradas sem substituir aquelas definidas por escopos de prioridade mais alta, e vice-versa. Por exemplo, se configurações gerenciadas definem `allowWrite` como `["/opt/company-tools"]` e um usuário adiciona `["~/.kube"]`, ambos os caminhos são incluídos na configuração final.

680 684 

681 * [`fallbackModel`](#available-settings) é uma cadeia ordenada onde a posição carrega significado então o arquivo de precedência mais alta que a define fornece o valor inteiro.685 Duas configurações de array não se mesclam desta forma:

686 

687 * [`fallbackModel`](#available-settings) é uma cadeia ordenada onde a posição carrega significado: o arquivo de precedência mais alta que a define fornece o valor inteiro.

682 * [`availableModels`](#available-settings): {/* min-version: 2.1.175 */}quando a [fonte gerenciada de precedência mais alta](/pt/server-managed-settings#settings-precedence) a define, essa lista se aplica como está e entradas de usuário, projeto e local não podem estendê-la. Entre escopos não gerenciados os arrays se mesclam como usual. Veja [Comportamento de mesclagem](/pt/model-config#merge-behavior).688 * [`availableModels`](#available-settings): {/* min-version: 2.1.175 */}quando a [fonte gerenciada de precedência mais alta](/pt/server-managed-settings#settings-precedence) a define, essa lista se aplica como está e entradas de usuário, projeto e local não podem estendê-la. Entre escopos não gerenciados os arrays se mesclam como usual. Veja [Comportamento de mesclagem](/pt/model-config#merge-behavior).

683</Note>689</Note>

684 690 


686 Verificar configurações ativas692 Verificar configurações ativas

687</h3>693</h3>

688 694 

689Execute `/status` dentro do Claude Code para ver quais fontes de configuração estão ativas. Dentro do menu, a aba **Status** inclui uma linha `Setting sources` que lista cada camada que Claude Code carregou para a sessão atual, como `User settings` ou `Project local settings`. Quando [configurações gerenciadas](/pt/admin-setup#decide-how-settings-reach-devices) estão em efeito, a entrada mostra o canal de entrega entre parênteses, por exemplo `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, ou `(file)`. Uma camada aparece na lista apenas quando essa fonte é carregada com pelo menos uma chave, então uma lista vazia significa que nenhuma fonte de configuração foi encontrada.695Execute `/status` dentro do Claude Code para ver quais fontes de configuração estão ativas. Dentro do menu, a aba **Status** inclui uma linha `Setting sources` que lista cada camada que Claude Code carregou para a sessão atual, como `User settings` ou `Project local settings`. Quando [configurações gerenciadas](/pt/admin-setup#decide-how-settings-reach-devices) estão em efeito, a entrada mostra o canal de entrega entre parênteses, por exemplo `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)`, ou `(file)`. O canal `remote` cobre configurações gerenciadas pelo servidor do claude.ai e políticas [gateway de aplicativos Claude](/pt/claude-apps-gateway)-entregues. Uma camada aparece na lista apenas quando essa fonte é carregada com pelo menos uma chave, então uma lista vazia significa que nenhuma fonte de configuração foi encontrada.

690 696 

691A linha `Setting sources` confirma quais fontes estão sendo lidas. Ela não mostra qual camada forneceu cada chave individual. A aba **Config** no mesmo diálogo é um editor para um conjunto fixo de toggles como tema e saída verbose, não uma visualização do conteúdo do seu `settings.json`.697A linha `Setting sources` confirma quais fontes estão sendo lidas. Ela não mostra qual camada forneceu cada chave individual. A aba **Config** no mesmo diálogo é um editor para um conjunto fixo de toggles como tema e saída verbose, não uma visualização do conteúdo do seu `settings.json`.

692 698 


709 715 

710O prompt do sistema interno do Claude Code não é publicado. Para adicionar instruções personalizadas, use arquivos `CLAUDE.md` ou a flag `--append-system-prompt`.716O prompt do sistema interno do Claude Code não é publicado. Para adicionar instruções personalizadas, use arquivos `CLAUDE.md` ou a flag `--append-system-prompt`.

711 717 

712<h3 id="excluding-sensitive-files">718<h3 id="exclude-sensitive-files">

713 Excluindo arquivos sensíveis719 Excluindo arquivos sensíveis

714</h3>720</h3>

715 721 


737 743 

738O Claude Code suporta subagents de IA personalizados que podem ser configurados em níveis de usuário e projeto. Estes subagents são armazenados como arquivos Markdown com frontmatter YAML:744O Claude Code suporta subagents de IA personalizados que podem ser configurados em níveis de usuário e projeto. Estes subagents são armazenados como arquivos Markdown com frontmatter YAML:

739 745 

740* **Subagents de usuário**: `~/.claude/agents/` - Disponíveis em todos os seus projetos746* **Subagents de usuário**: `~/.claude/agents/`, disponíveis em todos os seus projetos

741* **Subagents de projeto**: `.claude/agents/` - Específicos ao seu projeto e podem ser compartilhados com sua equipe747* **Subagents de projeto**: `.claude/agents/`, específicos ao seu projeto e compartilháveis com sua equipe

742 748 

743Arquivos de subagent definem assistentes de IA especializados com prompts personalizados e permissões de ferramenta. Saiba mais sobre criação e uso de subagents na [documentação de subagents](/pt/sub-agents).749Arquivos de subagent definem assistentes de IA especializados com prompts personalizados e permissões de ferramenta. Saiba mais sobre criação e uso de subagents na [documentação de subagents](/pt/sub-agents).

744 750 


789 As configurações de projeto têm precedência sobre as configurações de usuário, portanto, definir um plugin como `false` em `~/.claude/settings.json` não desabilita um plugin que o `.claude/settings.json` do projeto habilita. Para optar por não usar um plugin habilitado pelo projeto em sua máquina, defina-o como `false` em `.claude/settings.local.json` em vez disso.795 As configurações de projeto têm precedência sobre as configurações de usuário, portanto, definir um plugin como `false` em `~/.claude/settings.json` não desabilita um plugin que o `.claude/settings.json` do projeto habilita. Para optar por não usar um plugin habilitado pelo projeto em sua máquina, defina-o como `false` em `.claude/settings.local.json` em vez disso.

790 796 

791 Plugins forçadamente habilitados por configurações gerenciadas não podem ser desabilitados desta forma, pois as configurações gerenciadas substituem as configurações locais.797 Plugins forçadamente habilitados por configurações gerenciadas não podem ser desabilitados desta forma, pois as configurações gerenciadas substituem as configurações locais.

798 

799 Habilitar um plugin de uma fonte externa como um repositório GitHub ou pacote npm em um `.claude/settings.json` de projeto não o instala para outras pessoas. A partir de Claude Code v2.1.195, cada caminho que carrega plugins pede a cada usuário para [instalar e confiar no plugin](/pt/discover-plugins#configure-team-marketplaces) antes de executá-lo.

792</Note>800</Note>

793 801 

794**Exemplo**:802**Exemplo**:


891 899 

892* Apenas disponível em configurações gerenciadas (`managed-settings.json`)900* Apenas disponível em configurações gerenciadas (`managed-settings.json`)

893* Não pode ser substituída por configurações de usuário ou projeto (precedência mais alta)901* Não pode ser substituída por configurações de usuário ou projeto (precedência mais alta)

894* Aplicada ANTES de operações de rede/sistema de arquivos (fontes bloqueadas nunca executam)902* Aplicada antes de operações de rede e sistema de arquivos, portanto fontes bloqueadas nunca executam

895* Usa correspondência exata para especificações de fonte (incluindo `ref`, `path` para fontes git), exceto `hostPattern` e `pathPattern`, que usam correspondência regex903* Usa correspondência exata para especificações de fonte (incluindo `ref`, `path` para fontes git), exceto `hostPattern` e `pathPattern`, que usam correspondência regex

896 904 

897**Comportamento de lista de permissões**:905**Comportamento de lista de permissões**:

898 906 

899* `undefined` (padrão): Sem restrições - usuários podem adicionar qualquer marketplace907* `undefined` (padrão): sem restrições, portanto usuários podem adicionar qualquer marketplace

900* Array vazio `[]`: Bloqueio completo - usuários não podem adicionar novos marketplaces908* Array vazio `[]`: bloqueio completo, portanto usuários não podem adicionar novos marketplaces

901* Lista de fontes: Usuários podem apenas adicionar marketplaces que correspondem exatamente909* Lista de fontes: usuários podem apenas adicionar marketplaces que correspondem exatamente

902 910 

903**Todos os tipos de fonte suportados**:911**Todos os tipos de fonte suportados**:

904 912 


912{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }920{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }

913```921```

914 922 

915Campos: `repo` (obrigatório), `ref` (opcional: branch/tag/SHA), `path` (opcional: subdiretório)923Campos: `repo` (obrigatório), `ref` (opcional: branch ou tag), `path` (opcional: subdiretório)

916 924 

9172. **Repositórios Git**:9252. **Repositórios Git**:

918 926 


922{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }930{ "source": "git", "url": "ssh://git@git.example.com/plugins.git", "ref": "v3.1", "path": "approved" }

923```931```

924 932 

925Campos: `url` (obrigatório), `ref` (opcional: branch/tag/SHA), `path` (opcional: subdiretório)933Campos: `url` (obrigatório), `ref` (opcional: branch ou tag), `path` (opcional: subdiretório)

926 934 

9273. **Marketplaces baseados em URL**:9353. **Marketplaces baseados em URL**:

928 936 


1021}1029}

1022```1030```

1023 1031 

1024Exemplo - Desabilitar todas as adições de marketplace:1032Exemplo: desabilitar todas as adições de marketplace:

1025 1033 

1026```json theme={null}1034```json theme={null}

1027{1035{


1044 1052 

1045**Requisitos de correspondência exata**:1053**Requisitos de correspondência exata**:

1046 1054 

1047Fontes de marketplace devem corresponder **exatamente** para que a adição de um usuário seja permitida. Para fontes baseadas em git (`github` e `git`), isto inclui todos os campos opcionais:1055Fontes de marketplace devem corresponder exatamente para que a adição de um usuário seja permitida. Para fontes baseadas em git (`github` e `git`), isto inclui todos os campos opcionais:

1048 1056 

1049* O `repo` ou `url` deve corresponder exatamente1057* O `repo` ou `url` deve corresponder exatamente

1050* O campo `ref` deve corresponder exatamente (ou ambos serem indefinidos)1058* O campo `ref` deve corresponder exatamente (ou ambos serem indefinidos)

1051* O campo `path` deve corresponder exatamente (ou ambos serem indefinidos)1059* O campo `path` deve corresponder exatamente (ou ambos serem indefinidos)

1052 1060 

1053Exemplos de fontes que **NÃO correspondem**:1061Exemplos de fontes que não correspondem:

1054 1062 

1055```json theme={null}1063```json theme={null}

1056// Estas são DIFERENTES fontes:1064// Estas são DIFERENTES fontes:


1119 1127 

1120**Notas importantes**:1128**Notas importantes**:

1121 1129 

1122* Restrições são verificadas ANTES de qualquer solicitação de rede ou operação de sistema de arquivos1130* Restrições são verificadas antes de qualquer solicitação de rede ou operação de sistema de arquivos

1123* Quando bloqueado, usuários veem mensagens de erro claras indicando que a fonte é bloqueada por política gerenciada1131* Quando bloqueado, usuários veem mensagens de erro claras indicando que a fonte é bloqueada por política gerenciada

1124* A restrição é aplicada em adição de marketplace e em instalação, atualização, atualização e auto-atualização de plugin. Um marketplace adicionado antes da política ser definida não pode ser usado para instalar ou atualizar plugins uma vez que sua fonte não corresponde mais à lista de permissões1132* A restrição é aplicada em adição de marketplace e em instalação, atualização, atualização e auto-atualização de plugin. Um marketplace adicionado antes da política ser definida não pode ser usado para instalar ou atualizar plugins uma vez que sua fonte não corresponde mais à lista de permissões

1125* Configurações gerenciadas têm a precedência mais alta e não podem ser substituídas1133* Configurações gerenciadas têm a precedência mais alta e não podem ser substituídas


1155 1163 

1156Nomes de superfície que uma versão de Claude Code não reconhece são ignorados em vez de falhar no arquivo de configurações, portanto você pode adicionar novos nomes de superfície antes que todos os clientes tenham atualizado.1164Nomes de superfície que uma versão de Claude Code não reconhece são ignorados em vez de falhar no arquivo de configurações, portanto você pode adicionar novos nomes de superfície antes que todos os clientes tenham atualizado.

1157 1165 

1158<h3 id="managing-plugins">1166<h3 id="manage-plugins">

1159 Gerenciando plugins1167 Gerenciando plugins

1160</h3>1168</h3>

1161 1169 

setup.md +1 −1

Details

36</h2>36</h2>

37 37 

38<Tip>38<Tip>

39 Prefere uma interface gráfica? O [aplicativo de desktop](/pt/desktop-quickstart) permite que você use Claude Code sem o terminal. Baixe-o para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) ou [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs).39 Prefere uma interface gráfica? O [aplicativo de desktop](/pt/desktop-quickstart) permite que você use Claude Code sem o terminal. Baixe-o para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) ou [Linux](https://claude.com/download?utm_source=claude_code\&utm_medium=docs).

40 40 

41 Novo no terminal? Consulte o [guia de terminal](/pt/terminal-guide) para instruções passo a passo.41 Novo no terminal? Consulte o [guia de terminal](/pt/terminal-guide) para instruções passo a passo.

42</Tip>42</Tip>

skills.md +8 −3

Details

251| `when_to_use` | Não | Contexto adicional para quando Claude deve invocar a skill, como frases de gatilho ou solicitações de exemplo. Anexado a `description` na listagem de skills e conta para o limite de 1.536 caracteres. |251| `when_to_use` | Não | Contexto adicional para quando Claude deve invocar a skill, como frases de gatilho ou solicitações de exemplo. Anexado a `description` na listagem de skills e conta para o limite de 1.536 caracteres. |

252| `argument-hint` | Não | Dica mostrada durante autocomplete para indicar argumentos esperados. Exemplo: `[issue-number]` ou `[filename] [format]`. |252| `argument-hint` | Não | Dica mostrada durante autocomplete para indicar argumentos esperados. Exemplo: `[issue-number]` ou `[filename] [format]`. |

253| `arguments` | Não | Argumentos posicionais nomeados para [substituição `$name`](#available-string-substitutions) no conteúdo da skill. Aceita uma string separada por espaços ou uma lista YAML. Nomes mapeiam para posições de argumento em ordem. |253| `arguments` | Não | Argumentos posicionais nomeados para [substituição `$name`](#available-string-substitutions) no conteúdo da skill. Aceita uma string separada por espaços ou uma lista YAML. Nomes mapeiam para posições de argumento em ordem. |

254| `disable-model-invocation` | Não | Defina como `true` para evitar que Claude carregue automaticamente esta skill. Use para fluxos de trabalho que você quer disparar manualmente com `/name`. Também evita que a skill seja [pré-carregada em subagents](/pt/sub-agents#preload-skills-into-subagents). Padrão: `false`. |254| `disable-model-invocation` | Não | Defina como `true` para evitar que Claude carregue automaticamente esta skill. Use para fluxos de trabalho que você quer disparar manualmente com `/name`. Também evita que a skill seja [pré-carregada em subagents](/pt/sub-agents#preload-skills-into-subagents). A partir da v2.1.196, também evita que a skill seja executada quando uma [tarefa agendada](/pt/scheduled-tasks) dispara com a skill como seu prompt. Padrão: `false`. |

255| `user-invocable` | Não | Defina como `false` para ocultar do menu `/`. Use para conhecimento de fundo que usuários não devem invocar diretamente. Padrão: `true`. |255| `user-invocable` | Não | Defina como `false` para ocultar do menu `/`. Use para conhecimento de fundo que usuários não devem invocar diretamente. Padrão: `true`. |

256| `allowed-tools` | Não | Ferramentas que Claude pode usar sem pedir permissão quando esta skill está ativa. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. |256| `allowed-tools` | Não | Ferramentas que Claude pode usar sem pedir permissão quando esta skill está ativa. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. |

257| `disallowed-tools` | Não | Ferramentas removidas do pool disponível de Claude enquanto esta skill está ativa. Use para skills autônomas que nunca devem chamar certas ferramentas, como `AskUserQuestion` para um loop de fundo. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. A restrição é limpa quando você envia sua próxima mensagem. |257| `disallowed-tools` | Não | Ferramentas removidas do pool disponível de Claude enquanto esta skill está ativa. Use para skills autônomas que nunca devem chamar certas ferramentas, como `AskUserQuestion` para um loop de fundo. Aceita uma string separada por espaços ou vírgulas, ou uma lista YAML. A restrição é limpa quando você envia sua próxima mensagem. |


288Skills suportam substituição de string para valores dinâmicos no conteúdo da skill:288Skills suportam substituição de string para valores dinâmicos no conteúdo da skill:

289 289 

290| Variável | Descrição |290| Variável | Descrição |

291| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |291| :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

292| `$ARGUMENTS` | Todos os argumentos passados ao invocar a skill. Se `$ARGUMENTS` não estiver presente no conteúdo, argumentos são anexados como `ARGUMENTS: <value>`. |292| `$ARGUMENTS` | Todos os argumentos passados ao invocar a skill. Se `$ARGUMENTS` não estiver presente no conteúdo, argumentos são anexados como `ARGUMENTS: <value>`. |

293| `$ARGUMENTS[N]` | Acesse um argumento específico por índice baseado em 0, como `$ARGUMENTS[0]` para o primeiro argumento. |293| `$ARGUMENTS[N]` | Acesse um argumento específico por índice baseado em 0, como `$ARGUMENTS[0]` para o primeiro argumento. |

294| `$N` | Abreviação para `$ARGUMENTS[N]`, como `$0` para o primeiro argumento ou `$1` para o segundo. |294| `$N` | Abreviação para `$ARGUMENTS[N]`, como `$0` para o primeiro argumento ou `$1` para o segundo. |


296| `${CLAUDE_SESSION_ID}` | O ID da sessão atual. Útil para logging, criação de arquivos específicos da sessão, ou correlação de saída de skill com sessões. |296| `${CLAUDE_SESSION_ID}` | O ID da sessão atual. Útil para logging, criação de arquivos específicos da sessão, ou correlação de saída de skill com sessões. |

297| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh`, ou `max`. Ultracode não é um nível distinto e é relatado como `xhigh`. Use isso para adaptar instruções de skill à configuração de esforço ativo. |297| `${CLAUDE_EFFORT}` | O nível de esforço atual: `low`, `medium`, `high`, `xhigh`, ou `max`. Ultracode não é um nível distinto e é relatado como `xhigh`. Use isso para adaptar instruções de skill à configuração de esforço ativo. |

298| `${CLAUDE_SKILL_DIR}` | O diretório contendo o arquivo `SKILL.md` da skill. Para skills de plugin, este é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use isso em comandos de injeção bash para referenciar scripts ou arquivos agrupados com a skill, independentemente do diretório de trabalho atual. |298| `${CLAUDE_SKILL_DIR}` | O diretório contendo o arquivo `SKILL.md` da skill. Para skills de plugin, este é o subdiretório da skill dentro do plugin, não a raiz do plugin. Use isso em comandos de injeção bash para referenciar scripts ou arquivos agrupados com a skill, independentemente do diretório de trabalho atual. |

299| `${CLAUDE_PROJECT_DIR}` | O diretório raiz do projeto. Este é o mesmo caminho que [hooks](/pt/hooks#reference-scripts-by-path) e servidores MCP recebem como `CLAUDE_PROJECT_DIR`. Use isso para referenciar scripts ou arquivos locais do projeto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independentemente de onde a skill está instalada. |

300 

301A substituição `${CLAUDE_PROJECT_DIR}` requer Claude Code v2.1.196 ou posterior. Ela se aplica tanto ao corpo da skill quanto ao frontmatter [`allowed-tools`](#frontmatter-reference), para que uma regra de permissão como `Bash(${CLAUDE_PROJECT_DIR}/scripts/lint.sh *)` se resolva para o mesmo caminho que o corpo da skill usa.

299 302 

300Argumentos indexados usam quoting no estilo shell, então envolva valores de múltiplas palavras em aspas para passá-los como um único argumento. Por exemplo, `/my-skill "hello world" second` faz `$0` expandir para `hello world` e `$1` para `second`. O placeholder `$ARGUMENTS` sempre expande para a string de argumento completa conforme digitada.303Argumentos indexados usam quoting no estilo shell, então envolva valores de múltiplas palavras em aspas para passá-los como um único argumento. Por exemplo, `/my-skill "hello world" second` faz `$0` expandir para `hello world` e `$1` para `second`. O placeholder `$ARGUMENTS` sempre expande para a string de argumento completa conforme digitada.

301 304 


899 902 

900Descrições de skills são carregadas em contexto para que Claude saiba o que está disponível. Todos os nomes de skills são sempre incluídos, mas se você tem muitas skills, descrições são encurtadas para caber no orçamento de caracteres, o que pode remover as palavras-chave que Claude precisa para corresponder sua solicitação. O orçamento escala em 1% da janela de contexto do modelo. Quando transborda, descrições para as skills que você invoca menos são removidas primeiro, então as skills que você realmente usa mantêm seu texto completo. Execute `/doctor` para ver quantas descrições de skills estão sendo encurtadas ou removidas e quais skills são afetadas.903Descrições de skills são carregadas em contexto para que Claude saiba o que está disponível. Todos os nomes de skills são sempre incluídos, mas se você tem muitas skills, descrições são encurtadas para caber no orçamento de caracteres, o que pode remover as palavras-chave que Claude precisa para corresponder sua solicitação. O orçamento escala em 1% da janela de contexto do modelo. Quando transborda, descrições para as skills que você invoca menos são removidas primeiro, então as skills que você realmente usa mantêm seu texto completo. Execute `/doctor` para ver quantas descrições de skills estão sendo encurtadas ou removidas e quais skills são afetadas.

901 904 

902Para aumentar o orçamento, defina a configuração [`skillListingBudgetFraction`](/pt/settings#available-settings) (por exemplo, `0.02` = 2%) ou a variável de ambiente `SLASH_COMMAND_TOOL_CHAR_BUDGET` para uma contagem de caracteres fixa. Para liberar orçamento para outras skills, defina entradas de baixa prioridade como `"name-only"` em [`skillOverrides`](#override-skill-visibility-from-settings) para que sejam listadas sem uma descrição. Você também pode aparar o texto de `description` e `when_to_use` na fonte: coloque o caso de uso principal na frente, já que o texto combinado de cada entrada é limitado a 1.536 caracteres independentemente do orçamento. O limite é configurável com [`maxSkillDescriptionChars`](/pt/settings#available-settings).905A partir da v2.1.196, a linha Skills em `/context` relata o tamanho da listagem após o orçamento ser aplicado, então corresponde ao que o modelo recebe. Versões anteriores contavam o texto completo de cada descrição, então a linha poderia mostrar um valor várias vezes maior do que o orçamento `/doctor` relata.

906 

907Para aumentar o orçamento, defina a configuração [`skillListingBudgetFraction`](/pt/settings#available-settings) (por exemplo, `0.02` = 2%) ou a variável de ambiente `SLASH_COMMAND_TOOL_CHAR_BUDGET` para uma contagem de caracteres fixa. Para liberar orçamento para outras skills, defina entradas de baixa prioridade como `"name-only"` em [`skillOverrides`](#override-skill-visibility-from-settings) para que sejam listadas sem uma descrição. Você também pode aparar o texto de `description` e `when_to_use` na fonte: coloque o caso de uso principal na frente, já que o texto combinado de cada entrada é limitado a 1.536 caracteres independentemente do orçamento. O limite é configurável com [`skillListingMaxDescChars`](/pt/settings#available-settings).

903 908 

904<h2 id="related-resources">909<h2 id="related-resources">

905 Recursos relacionados910 Recursos relacionados

statusline.md +3 −0

Details

194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Segundos de época Unix quando a janela de limite de taxa de 5 horas ou 7 dias é redefinida |194| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Segundos de época Unix quando a janela de limite de taxa de 5 horas ou 7 dias é redefinida |

195| `session_id` | Identificador único de sessão |195| `session_id` | Identificador único de sessão |

196| `session_name` | Nome de sessão personalizado definido com a flag `--name` ou `/rename`. Ausente se nenhum nome personalizado foi definido |196| `session_name` | Nome de sessão personalizado definido com a flag `--name` ou `/rename`. Ausente se nenhum nome personalizado foi definido |

197| `prompt_id` | UUID identificando o prompt do usuário sendo processado no momento. Corresponde ao atributo [`prompt.id` em eventos OpenTelemetry](/pt/monitoring-usage#event-correlation-attributes). Ausente até a primeira entrada do usuário. {/* min-version: 2.1.196 */}Requer Claude Code v2.1.196 ou posterior |

197| `transcript_path` | Caminho para o arquivo de transcrição de conversa |198| `transcript_path` | Caminho para o arquivo de transcrição de conversa |

198| `version` | Versão do Claude Code |199| `version` | Versão do Claude Code |

199| `output_style.name` | Nome do estilo de saída atual |200| `output_style.name` | Nome do estilo de saída atual |


215 "cwd": "/current/working/directory",216 "cwd": "/current/working/directory",

216 "session_id": "abc123...",217 "session_id": "abc123...",

217 "session_name": "my-session",218 "session_name": "my-session",

219 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

218 "transcript_path": "/path/to/transcript.jsonl",220 "transcript_path": "/path/to/transcript.jsonl",

219 "model": {221 "model": {

220 "id": "claude-opus-4-8",222 "id": "claude-opus-4-8",


296 **Campos que podem estar ausentes** (não presentes em JSON):298 **Campos que podem estar ausentes** (não presentes em JSON):

297 299 

298 * `session_name`: aparece apenas quando um nome personalizado foi definido com `--name` ou `/rename`300 * `session_name`: aparece apenas quando um nome personalizado foi definido com `--name` ou `/rename`

301 * `prompt_id`: aparece apenas após a primeira entrada do usuário

299 * `workspace.git_worktree`: aparece apenas quando o diretório atual está dentro de uma git worktree vinculada302 * `workspace.git_worktree`: aparece apenas quando o diretório atual está dentro de uma git worktree vinculada

300 * `workspace.repo`: aparece apenas dentro de um repositório git com um remote `origin` configurado303 * `workspace.repo`: aparece apenas dentro de um repositório git com um remote `origin` configurado

301 * `effort`: aparece apenas quando o modelo atual suporta o parâmetro de esforço de raciocínio304 * `effort`: aparece apenas quando o modelo atual suporta o parâmetro de esforço de raciocínio

sub-agents.md +50 −34

Details

38 <Tab title="Explore">38 <Tab title="Explore">

39 Um agente rápido e somente leitura otimizado para pesquisar e analisar bases de código.39 Um agente rápido e somente leitura otimizado para pesquisar e analisar bases de código.

40 40 

41 * **Model**: Haiku (rápido, baixa latência)41 * **Model**: Haiku, que é rápido e de baixa latência

42 * **Tools**: Ferramentas somente leitura (acesso negado a ferramentas Write e Edit)42 * **Tools**: ferramentas somente leitura; Write e Edit são negados

43 * **Purpose**: Descoberta de arquivos, pesquisa de código, exploração de base de código43 * **Purpose**: descoberta de arquivos, pesquisa de código, exploração de base de código

44 44 

45 Claude delega para Explore quando precisa pesquisar ou entender uma base de código sem fazer alterações. Isso mantém os resultados da exploração fora do contexto da sua conversa principal.45 Claude delega para Explore quando precisa pesquisar ou entender uma base de código sem fazer alterações. Isso mantém os resultados da exploração fora do contexto da sua conversa principal.

46 46 


50 <Tab title="Plan">50 <Tab title="Plan">

51 Um agente de pesquisa usado durante [plan mode](/pt/permission-modes#analyze-before-you-edit-with-plan-mode) para reunir contexto antes de apresentar um plano.51 Um agente de pesquisa usado durante [plan mode](/pt/permission-modes#analyze-before-you-edit-with-plan-mode) para reunir contexto antes de apresentar um plano.

52 52 

53 * **Model**: Herda da conversa principal53 * **Model**: herda da conversa principal

54 * **Tools**: Ferramentas somente leitura (acesso negado a ferramentas Write e Edit)54 * **Tools**: ferramentas somente leitura; Write e Edit são negados

55 * **Purpose**: Pesquisa de base de código para planejamento55 * **Purpose**: pesquisa de base de código para planejamento

56 56 

57 Quando você está em plan mode e Claude precisa entender sua base de código, ele delega a pesquisa para o subagente Plan para que a saída de exploração permaneça em uma janela de contexto separada enquanto a conversa principal permanece somente leitura.57 Quando você está em plan mode e Claude precisa entender sua base de código, ele delega a pesquisa para o subagente Plan para que a saída de exploração permaneça em uma janela de contexto separada enquanto a conversa principal permanece somente leitura.

58 </Tab>58 </Tab>


60 <Tab title="General-purpose">60 <Tab title="General-purpose">

61 Um agente capaz para tarefas complexas e multi-etapas que requerem exploração e ação.61 Um agente capaz para tarefas complexas e multi-etapas que requerem exploração e ação.

62 62 

63 * **Model**: Herda da conversa principal63 * **Model**: herda da conversa principal

64 * **Tools**: Todas as ferramentas64 * **Tools**: todas as ferramentas

65 * **Purpose**: Pesquisa complexa, operações multi-etapas, modificações de código65 * **Purpose**: pesquisa complexa, operações multi-etapas, modificações de código

66 66 

67 Claude delega para general-purpose quando a tarefa requer exploração e modificação, raciocínio complexo para interpretar resultados, ou múltiplas etapas dependentes.67 Claude delega para general-purpose quando a tarefa requer exploração e modificação, raciocínio complexo para interpretar resultados, ou múltiplas etapas dependentes.

68 </Tab>68 </Tab>


77 </Tab>77 </Tab>

78</Tabs>78</Tabs>

79 79 

80Os subagentes integrados são sempre registrados em sessões interativas. Para bloquear um tipo integrado específico, adicione-o a `permissions.deny` conforme mostrado em [Desabilitar subagentes específicos](#disable-specific-subagents). Para impedir que Claude delegue a qualquer subagente, negue a ferramenta `Agent` em si com [`permissions.deny`](/pt/permissions#tool-specific-permission-rules). Em [modo não interativo](/pt/headless) e no [Agent SDK](/pt/agent-sdk/overview), defina [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/pt/env-vars) para remover todos os tipos integrados e fornecer apenas os seus próprios.80Os subagentes integrados são sempre registrados em sessões interativas. Para restringi-los:

81 

82* Para bloquear um tipo integrado específico, adicione-o a `permissions.deny` conforme mostrado em [Desabilitar subagentes específicos](#disable-specific-subagents).

83* Para impedir que Claude delegue a qualquer subagente, negue a ferramenta `Agent` em si com [`permissions.deny`](/pt/permissions#tool-specific-permission-rules).

84* Em [modo não interativo](/pt/headless) e no [Agent SDK](/pt/agent-sdk/overview), defina [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/pt/env-vars) para remover todos os tipos integrados e fornecer apenas os seus próprios.

81 85 

82Além desses subagentes integrados, você pode criar os seus próprios com prompts personalizados, restrições de ferramentas, modos de permissão, hooks e skills. As seções a seguir mostram como começar e personalizar subagentes.86Além desses subagentes integrados, você pode criar os seus próprios com prompts personalizados, restrições de ferramentas, modos de permissão, hooks e skills. As seções a seguir mostram como começar e personalizar subagentes.

83 87 


93 <Step title="Abrir a interface de subagentes">97 <Step title="Abrir a interface de subagentes">

94 No Claude Code, execute:98 No Claude Code, execute:

95 99 

96 ```text theme={null}100 ```text wrap theme={null}

97 /agents101 /agents

98 ```102 ```

99 </Step>103 </Step>


105 <Step title="Gerar com Claude">109 <Step title="Gerar com Claude">

106 Selecione **Generate with Claude**. Quando solicitado, descreva o subagente:110 Selecione **Generate with Claude**. Quando solicitado, descreva o subagente:

107 111 

108 ```text theme={null}112 ```text wrap theme={null}

109 A code improvement agent that scans files and suggests improvements113 A code improvement agent that scans files and suggests improvements

110 for readability, performance, and best practices. It should explain114 for readability, performance, and best practices. It should explain

111 each issue, show the current code, and provide an improved version.115 each issue, show the current code, and provide an improved version.


133 <Step title="Salvar e testar">137 <Step title="Salvar e testar">

134 Revise o resumo de configuração. Pressione `s` ou `Enter` para salvar, ou pressione `e` para salvar e editar o arquivo em seu editor. O subagente está disponível imediatamente. Teste-o:138 Revise o resumo de configuração. Pressione `s` ou `Enter` para salvar, ou pressione `e` para salvar e editar o arquivo em seu editor. O subagente está disponível imediatamente. Teste-o:

135 139 

136 ```text theme={null}140 ```text wrap theme={null}

137 Use the code-improver agent to suggest improvements in this project141 Use the code-improver agent to suggest improvements in this project

138 ```142 ```

139 143 


167 Escolher o escopo do subagente171 Escolher o escopo do subagente

168</h3>172</h3>

169 173 

170Subagentes são arquivos Markdown com frontmatter YAML. Armazene-os em locais diferentes dependendo do escopo. Quando múltiplos subagentes compartilham o mesmo nome, o local de prioridade mais alta vence.174Subagentes são arquivos Markdown com frontmatter YAML. Armazene-os em locais diferentes dependendo do escopo. Quando múltiplos subagentes compartilham o mesmo nome, Claude Code usa o que está no local de prioridade mais alta.

171 175 

172| Location | Scope | Priority | How to create |176| Location | Scope | Priority | How to create |

173| :--------------------------- | :---------------------- | :---------- | :-------------------------------------------- |177| :--------------------------- | :---------------------- | :---------- | :-------------------------------------------- |


185 189 

186**Subagentes de usuário** (`~/.claude/agents/`) são subagentes pessoais disponíveis em todos os seus projetos.190**Subagentes de usuário** (`~/.claude/agents/`) são subagentes pessoais disponíveis em todos os seus projetos.

187 191 

188Claude Code verifica `.claude/agents/` e `~/.claude/agents/` recursivamente, para que você possa organizar definições em subpastas como `agents/review/` ou `agents/research/`. O caminho do subdiretório não afeta como um subagente é identificado ou invocado, porque a identidade vem apenas do campo `name` do frontmatter. Mantenha valores de `name` únicos em toda a árvore: se dois arquivos dentro de um escopo declaram o mesmo nome, Claude Code mantém um e descarta o outro sem aviso.192Claude Code verifica `.claude/agents/` e `~/.claude/agents/` recursivamente, para que você possa organizar definições em subpastas como `agents/review/` ou `agents/research/`. O caminho do subdiretório não afeta como um subagente é identificado ou invocado, porque a identidade vem apenas do campo `name` do frontmatter.

193 

194Mantenha valores de `name` únicos em toda a árvore: se dois arquivos dentro de um escopo declaram o mesmo nome, Claude Code carrega apenas um deles. {/* min-version: 2.1.196 */}A partir da v2.1.196, executar `/doctor` relata nomes de agentes duplicados no mesmo escopo e mostra qual definição está ativa.

189 195 

190Diretórios `agents/` de plugin também são verificados recursivamente. Diferentemente dos escopos de projeto e usuário, uma subpasta dentro do diretório `agents/` de um plugin se torna parte do [identificador com escopo](#invoke-subagents-explicitly): um arquivo em `agents/review/security.md` no plugin `my-plugin` se registra como `my-plugin:review:security`.196Diretórios `agents/` de plugin também são verificados recursivamente. Diferentemente dos escopos de projeto e usuário, uma subpasta dentro do diretório `agents/` de um plugin se torna parte do [identificador com escopo](#invoke-subagents-explicitly): um arquivo em `agents/review/security.md` no plugin `my-plugin` se registra como `my-plugin:review:security`.

191 197 


263specific, actionable feedback on quality, security, and best practices.269specific, actionable feedback on quality, security, and best practices.

264```270```

265 271 

266O frontmatter define os metadados e configuração do subagente. O corpo se torna o prompt de sistema que guia o comportamento do subagente. Subagentes recebem apenas este prompt de sistema (mais detalhes básicos de ambiente como diretório de trabalho), não o prompt de sistema completo do Claude Code.272O frontmatter define os metadados e configuração do subagente. O corpo se torna o prompt de sistema que guia o comportamento do subagente. Subagentes recebem apenas este prompt de sistema mais detalhes básicos de ambiente como diretório de trabalho, não o prompt de sistema completo do Claude Code.

267 273 

268Um subagente começa no diretório de trabalho atual da conversa principal. Dentro de um subagente, comandos `cd` não persistem entre chamadas de ferramentas Bash ou PowerShell e não afetam o diretório de trabalho da conversa principal. Para dar ao subagente uma cópia isolada do repositório em vez disso, defina [`isolation: worktree`](#supported-frontmatter-fields).274Um subagente começa no diretório de trabalho atual da conversa principal. Dentro de um subagente, comandos `cd` não persistem entre chamadas de ferramentas Bash ou PowerShell e não afetam o diretório de trabalho da conversa principal. Para dar ao subagente uma cópia isolada do repositório em vez disso, defina [`isolation: worktree`](#supported-frontmatter-fields).

269 275 


299O campo `model` controla qual [modelo de IA](/pt/model-config) o subagente usa:305O campo `model` controla qual [modelo de IA](/pt/model-config) o subagente usa:

300 306 

301* **Alias de modelo**: Use um dos aliases disponíveis: `sonnet`, `opus`, `haiku`, ou `fable`307* **Alias de modelo**: Use um dos aliases disponíveis: `sonnet`, `opus`, `haiku`, ou `fable`

302* **ID de modelo completo**: Use um ID de modelo completo como `claude-opus-4-8` ou `claude-sonnet-4-6`. Aceita os mesmos valores que o flag `--model`308* **ID de modelo completo**: Use um ID de modelo completo como `claude-opus-4-8` ou `claude-sonnet-5`. Aceita os mesmos valores que o flag `--model`

303* **inherit**: Use o mesmo modelo que a conversa principal309* **inherit**: Use o mesmo modelo que a conversa principal

304* **Omitido**: Se não especificado, padrão é `inherit` (usa o mesmo modelo que a conversa principal)310* **Omitido**: Se não especificado, padrão é `inherit` (usa o mesmo modelo que a conversa principal)

305 311 

306Quando Claude invoca um subagente, ele também pode passar um parâmetro `model` para essa invocação específica. Claude Code resolve o modelo do subagente nesta ordem:312Quando Claude invoca um subagente, ele também pode passar um parâmetro `model` para essa invocação específica. Claude Code resolve o modelo do subagente nesta ordem:

307 313 

3081. A variável de ambiente [`CLAUDE_CODE_SUBAGENT_MODEL`](/pt/model-config#environment-variables), se definida3141. A variável de ambiente [`CLAUDE_CODE_SUBAGENT_MODEL`](/pt/model-config#environment-variables), quando definida para um alias de modelo ou ID de modelo

3092. O parâmetro `model` por invocação3152. O parâmetro `model` por invocação

3103. O frontmatter `model` da definição do subagente3163. O frontmatter `model` da definição do subagente

3114. O modelo da conversa principal3174. O modelo da conversa principal

312 318 

319{/* min-version: 2.1.196 */}A partir da v2.1.196, definir `CLAUDE_CODE_SUBAGENT_MODEL` para `inherit` é o mesmo que deixá-lo indefinido: a resolução continua com o parâmetro `model` por invocação, depois o frontmatter. Em versões anteriores, `inherit` forçava subagentes para o modelo da conversa principal e ignorava ambas essas fontes.

320 

313O valor da variável de ambiente, parâmetro por invocação e valores de frontmatter são verificados contra a lista de permissões [`availableModels`](/pt/model-config#restrict-model-selection) da sua organização. Um valor que se resolve para um modelo excluído não é usado e o subagente é executado no modelo herdado em vez disso.321O valor da variável de ambiente, parâmetro por invocação e valores de frontmatter são verificados contra a lista de permissões [`availableModels`](/pt/model-config#restrict-model-selection) da sua organização. Um valor que se resolve para um modelo excluído não é usado e o subagente é executado no modelo herdado em vez disso.

314 322 

315<h3 id="control-subagent-capabilities">323<h3 id="control-subagent-capabilities">


602 610 

603Subagentes podem definir [hooks](/pt/hooks) que são executados durante o ciclo de vida do subagente. Existem duas formas de configurar hooks:611Subagentes podem definir [hooks](/pt/hooks) que são executados durante o ciclo de vida do subagente. Existem duas formas de configurar hooks:

604 612 

6051. **No frontmatter do subagente**: Defina hooks que são executados apenas enquanto esse subagente específico está ativo613* **No frontmatter do subagente**: defina hooks que são executados apenas enquanto esse subagente específico está ativo

6062. **Em `settings.json`**: Defina hooks que são executados na sessão principal quando subagentes iniciam ou param614* **Em `settings.json`**: defina hooks que são executados na sessão principal quando subagentes iniciam ou param

607 615 

608<h4 id="hooks-in-subagent-frontmatter">616<h4 id="hooks-in-subagent-frontmatter">

609 Hooks no frontmatter do subagente617 Hooks no frontmatter do subagente


656| `SubagentStart` | Nome do tipo de agente | Quando um subagente começa a execução |664| `SubagentStart` | Nome do tipo de agente | Quando um subagente começa a execução |

657| `SubagentStop` | Nome do tipo de agente | Quando um subagente completa |665| `SubagentStop` | Nome do tipo de agente | Quando um subagente completa |

658 666 

659Ambos os eventos suportam matchers para direcionar tipos de agente específicos por nome. Este exemplo executa um script de configuração apenas quando o subagente `db-agent` inicia, e um script de limpeza quando qualquer subagente para:667Ambos os eventos suportam matchers para direcionar tipos de agente específicos por nome. O valor do matcher é o `name` do frontmatter do agente para subagentes no nível de projeto e usuário, ou o identificador com escopo de plugin como `my-plugin:db-agent` para [subagentes de plugin](/pt/plugins). Um nome com escopo contém dois-pontos, portanto é avaliado como uma [expressão regular sem âncora](/pt/hooks#matcher-patterns); ancorá-lo com `^` e `$`, como em `^my-plugin:db-agent$`, para corresponder apenas a esse agente.

668 

669Este exemplo executa um script de configuração apenas quando o subagente `db-agent` inicia, e um script de limpeza quando qualquer subagente para:

660 670 

661```json theme={null}671```json theme={null}

662{672{


680}690}

681```691```

682 692 

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

694 

683Veja [Hooks](/pt/hooks) para o formato de configuração de hook completo.695Veja [Hooks](/pt/hooks) para o formato de configuração de hook completo.

684 696 

685<h2 id="work-with-subagents">697<h2 id="work-with-subagents">


704 716 

705Para linguagem natural, não há sintaxe especial. Nomeie o subagente e Claude normalmente delega:717Para linguagem natural, não há sintaxe especial. Nomeie o subagente e Claude normalmente delega:

706 718 

707```text theme={null}719```text wrap theme={null}

708Use the test-runner subagent to fix failing tests720Use the test-runner subagent to fix failing tests

709Have the code-reviewer subagent look at my recent changes721Have the code-reviewer subagent look at my recent changes

710```722```

711 723 

712**@-mention o subagente.** Digite `@` e escolha o subagente do typeahead, da mesma forma que você @-menciona arquivos. Isso garante que esse subagente específico seja executado em vez de deixar a escolha para Claude:724**@-mention o subagente.** Digite `@` e escolha o subagente do typeahead, da mesma forma que você @-menciona arquivos. Isso garante que esse subagente específico seja executado em vez de deixar a escolha para Claude:

713 725 

714```text theme={null}726```text wrap theme={null}

715@"code-reviewer (agent)" look at the auth changes727@"code-reviewer (agent)" look at the auth changes

716```728```

717 729 

718Sua mensagem completa ainda vai para Claude, que escreve o prompt de tarefa do subagente baseado no que você pediu. O @-mention controla qual subagente Claude invoca, não qual prompt ele recebe.730Sua mensagem completa ainda vai para Claude, que escreve o prompt de tarefa do subagente baseado no que você pediu. O @-mention controla qual subagente Claude invoca, não qual prompt ele recebe.

719 731 

720Subagentes fornecidos por um [plugin](/pt/plugins) habilitado aparecem no typeahead sob seu nome com escopo, como `my-plugin:code-reviewer` ou `my-plugin:review:security` quando o plugin [organiza agentes em subpastas](#choose-the-subagent-scope). Subagentes em background nomeados atualmente em execução na sessão também aparecem no typeahead, mostrando seu status ao lado do nome. Você também pode digitar a menção manualmente sem usar o picker: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`.732Subagentes fornecidos por um [plugin](/pt/plugins) habilitado aparecem no typeahead sob seu nome com escopo, como `my-plugin:code-reviewer` ou `my-plugin:review:security` quando o plugin [organiza agentes em subpastas](#choose-the-subagent-scope). Subagentes em background nomeados atualmente em execução na sessão também aparecem no typeahead, mostrando seu status ao lado do nome.

733 

734Você também pode digitar a menção manualmente sem usar o picker: `@agent-<name>` para subagentes locais, ou `@agent-` seguido pelo nome com escopo para subagentes de plugin, por exemplo `@agent-my-plugin:code-reviewer`.

721 735 

722**Execute toda a sessão como um subagente.** Passe [`--agent <name>`](/pt/cli-reference) para iniciar uma sessão onde a thread principal em si assume o prompt de sistema, restrições de ferramentas e modelo do subagente:736**Execute toda a sessão como um subagente.** Passe [`--agent <name>`](/pt/cli-reference) para iniciar uma sessão onde a thread principal em si assume o prompt de sistema, restrições de ferramentas e modelo do subagente:

723 737 


757 Executar subagentes em foreground ou background771 Executar subagentes em foreground ou background

758</h3>772</h3>

759 773 

760Subagentes podem ser executados em foreground (bloqueante) ou background (concorrente):774Subagentes podem ser executados em foreground ou background:

761 775 

762* **Subagentes em foreground** bloqueiam a conversa principal até completar. Prompts de permissão são passados para você conforme surgem.776* **Subagentes em foreground** bloqueiam a conversa principal até completar. Prompts de permissão são passados para você conforme surgem.

763* **Subagentes em background** são executados concorrentemente enquanto você continua trabalhando. {/* min-version: 2.1.186 */}A partir da v2.1.186, quando um subagente em background atinge uma chamada de ferramenta que precisa de permissão, o prompt aparece em sua sessão principal e nomeia o subagente que está pedindo. Aprove para deixar o subagente continuar, ou pressione Esc para negar essa chamada de ferramenta sem parar o subagente. Antes da v2.1.186, subagentes em background auto-negavam qualquer chamada de ferramenta que teria solicitado.777* **Subagentes em background** são executados concorrentemente enquanto você continua trabalhando. {/* min-version: 2.1.186 */}A partir da v2.1.186, quando um subagente em background atinge uma chamada de ferramenta que precisa de permissão, o prompt aparece em sua sessão principal e nomeia o subagente que está pedindo. Aprove para deixar o subagente continuar, ou pressione Esc para negar essa chamada de ferramenta sem parar o subagente. Antes da v2.1.186, subagentes em background auto-negavam qualquer chamada de ferramenta que teria solicitado.


781 795 

782Um dos usos mais eficazes para subagentes é isolar operações que produzem grandes quantidades de saída. Executar testes, buscar documentação ou processar arquivos de log podem consumir contexto significativo. Ao delegar esses para um subagente, a saída verbosa fica no contexto do subagente enquanto apenas o resumo relevante retorna para sua conversa principal.796Um dos usos mais eficazes para subagentes é isolar operações que produzem grandes quantidades de saída. Executar testes, buscar documentação ou processar arquivos de log podem consumir contexto significativo. Ao delegar esses para um subagente, a saída verbosa fica no contexto do subagente enquanto apenas o resumo relevante retorna para sua conversa principal.

783 797 

784```text theme={null}798```text wrap theme={null}

785Use a subagent to run the test suite and report only the failing tests with their error messages799Use a subagent to run the test suite and report only the failing tests with their error messages

786```800```

787 801 


791 805 

792Para investigações independentes, gere múltiplos subagentes para trabalhar simultaneamente:806Para investigações independentes, gere múltiplos subagentes para trabalhar simultaneamente:

793 807 

794```text theme={null}808```text wrap theme={null}

795Research the authentication, database, and API modules in parallel using separate subagents809Research the authentication, database, and API modules in parallel using separate subagents

796```810```

797 811 


809 823 

810Para fluxos de trabalho multi-etapas, peça a Claude para usar subagentes em sequência. Cada subagente completa sua tarefa e retorna resultados para Claude, que então passa contexto relevante para o próximo subagente.824Para fluxos de trabalho multi-etapas, peça a Claude para usar subagentes em sequência. Cada subagente completa sua tarefa e retorna resultados para Claude, que então passa contexto relevante para o próximo subagente.

811 825 

812```text theme={null}826```text wrap theme={null}

813Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them827Use the code-reviewer subagent to find performance issues, then use the optimizer subagent to fix them

814```828```

815 829 


820Use a **conversa principal** quando:834Use a **conversa principal** quando:

821 835 

822* A tarefa precisa de frequente ida e volta ou refinamento iterativo836* A tarefa precisa de frequente ida e volta ou refinamento iterativo

823* Múltiplas fases compartilham contexto significativo (planejamento implementação testes)837* Múltiplas fases compartilham contexto significativo, como planejamento, implementação e testes

824* Você está fazendo uma mudança rápida e direcionada838* Você está fazendo uma mudança rápida e direcionada

825* Latência importa. Subagentes começam do zero e podem precisar de tempo para reunir contexto839* Latência importa. Subagentes começam do zero e podem precisar de tempo para reunir contexto

826 840 


840 854 

841{/* min-version: 2.1.172 */}A partir do Claude Code v2.1.172, um subagente pode gerar seus próprios subagentes. Use isso quando uma tarefa delegada em si se divide em subtarefas paralelas, como um subagente revisor que distribui um verificador por descoberta, para que a saída intermediária nunca alcance sua conversa principal. Apenas o resumo do subagente de nível superior retorna para você.855{/* min-version: 2.1.172 */}A partir do Claude Code v2.1.172, um subagente pode gerar seus próprios subagentes. Use isso quando uma tarefa delegada em si se divide em subtarefas paralelas, como um subagente revisor que distribui um verificador por descoberta, para que a saída intermediária nunca alcance sua conversa principal. Apenas o resumo do subagente de nível superior retorna para você.

842 856 

843Um subagente aninhado é configurado da mesma forma que um de nível superior e é resolvido dos mesmos [escopos](#choose-the-subagent-scope). O painel de subagente abaixo da entrada de prompt mostra a árvore completa: cada linha exibe uma contagem `(+N)` de descendentes, e abrir uma linha mostra os filhos diretos desse subagente com um caminho de volta para `main`. A aba Running em [`/agents`](#use-the-%2Fagents-command) lista subagentes em execução como uma lista plana.857Um subagente aninhado é configurado da mesma forma que um de nível superior e é resolvido dos mesmos [escopos](#choose-the-subagent-scope). O painel de subagente abaixo da entrada de prompt mostra a árvore completa: cada linha exibe uma contagem `(+N)` de descendentes, e {/* min-version: 2.1.193 */}a partir da v2.1.193, abrir uma linha mostra os irmãos desse subagente e filhos diretos com um caminho de volta para `main`. A aba Running em [`/agents`](#use-the-%2Fagents-command) lista subagentes em execução como uma lista plana.

844 858 

845A profundidade é contada como o número de níveis de subagente abaixo da conversa principal, independentemente de cada nível ser executado em [foreground ou background](#run-subagents-in-foreground-or-background). Um subagente na profundidade cinco não recebe a ferramenta Agent e não pode gerar mais. O limite é fixo e não configurável.859A profundidade é contada como o número de níveis de subagente abaixo da conversa principal, independentemente de cada nível ser executado em [foreground ou background](#run-subagents-in-foreground-or-background). Um subagente na profundidade cinco não recebe a ferramenta Agent e não pode gerar mais. O limite é fixo e não configurável.

846 860 


880 894 

881Subagentes retomados retêm seu histórico de conversa completo, incluindo todas as chamadas de ferramentas anteriores, resultados e raciocínio. O subagente continua exatamente de onde parou em vez de começar do zero.895Subagentes retomados retêm seu histórico de conversa completo, incluindo todas as chamadas de ferramentas anteriores, resultados e raciocínio. O subagente continua exatamente de onde parou em vez de começar do zero.

882 896 

883Quando um subagente completa, Claude recebe seu ID de agente. Os agentes integrados Explore e Plan são de uma única execução e não retornam ID de agente, então eles não podem ser retomados; use `general-purpose` ou um subagente personalizado quando você precisar continuar o trabalho. Claude usa a ferramenta `SendMessage` com o ID do agente como campo `to` para retomá-lo. A ferramenta `SendMessage` está sempre disponível para retomar subagentes por ID ou nome de agente. Mensagens de protocolo de equipe estruturadas como `shutdown_request` e `plan_approval_response` exigem que [equipes de agentes](/pt/agent-teams) estejam habilitadas.897Quando um subagente completa, Claude recebe seu ID de agente. Os agentes integrados Explore e Plan são de uma única execução e não retornam ID de agente, então eles não podem ser retomados; use `general-purpose` ou um subagente personalizado quando você precisar continuar o trabalho.

898 

899Claude usa a ferramenta `SendMessage` com o ID do agente como campo `to` para retomá-lo. A ferramenta `SendMessage` está sempre disponível para retomar subagentes por ID ou nome de agente. Mensagens de protocolo de equipe estruturadas como `shutdown_request` e `plan_approval_response` exigem que [equipes de agentes](/pt/agent-teams) estejam habilitadas.

884 900 

885Para retomar um subagente, peça a Claude para continuar o trabalho anterior:901Para retomar um subagente, peça a Claude para continuar o trabalho anterior:

886 902 

887```text theme={null}903```text wrap theme={null}

888Use the code-reviewer subagent to review the authentication module904Use the code-reviewer subagent to review the authentication module

889[Agent completes]905[Agent completes]

890 906 


900 916 

901* **Compactação da conversa principal**: Quando a conversa principal se compacta, transcrições de subagente não são afetadas. Elas são armazenadas em arquivos separados.917* **Compactação da conversa principal**: Quando a conversa principal se compacta, transcrições de subagente não são afetadas. Elas são armazenadas em arquivos separados.

902* **Persistência de sessão**: Transcrições de subagente persistem dentro de sua sessão. Você pode [retomar um subagente](#resume-subagents) após reiniciar Claude Code retomando a mesma sessão.918* **Persistência de sessão**: Transcrições de subagente persistem dentro de sua sessão. Você pode [retomar um subagente](#resume-subagents) após reiniciar Claude Code retomando a mesma sessão.

903* **Limpeza automática**: Transcrições são limpas baseado na configuração `cleanupPeriodDays` (padrão: 30 dias).919* **Limpeza automática**: Transcrições são limpas baseado na configuração `cleanupPeriodDays`, que padrão é 30 dias.

904 920 

905<h4 id="auto-compaction">921<h4 id="auto-compaction">

906 Auto-compactação922 Auto-compactação


942 958 

943Você pode iniciar uma bifurcação você mesmo com `/fork` seguido de uma diretiva, com ou sem a variável definida. Claude Code nomeia a bifurcação a partir das primeiras palavras da diretiva. O exemplo a seguir bifurca a conversa para rascunhar casos de teste enquanto você continua com a implementação na sessão principal:959Você pode iniciar uma bifurcação você mesmo com `/fork` seguido de uma diretiva, com ou sem a variável definida. Claude Code nomeia a bifurcação a partir das primeiras palavras da diretiva. O exemplo a seguir bifurca a conversa para rascunhar casos de teste enquanto você continua com a implementação na sessão principal:

944 960 

945```text theme={null}961```text wrap theme={null}

946/fork draft unit tests for the parser changes so far962/fork draft unit tests for the parser changes so far

947```963```

948 964 

Details

196 196 

197* [Claude for Teams ou Enterprise](/pt/authentication#claude-for-teams-or-enterprise)197* [Claude for Teams ou Enterprise](/pt/authentication#claude-for-teams-or-enterprise)

198* [Anthropic Console](/pt/authentication#claude-console-authentication)198* [Anthropic Console](/pt/authentication#claude-console-authentication)

199* [Claude apps gateway](/pt/claude-apps-gateway), um gateway auto-hospedado que adiciona entrada de IdP na frente do Amazon Bedrock, Google Vertex AI, Microsoft Foundry ou da API Anthropic

199* [Amazon Bedrock](/pt/amazon-bedrock)200* [Amazon Bedrock](/pt/amazon-bedrock)

200* [Claude Platform on AWS](/pt/claude-platform-on-aws)201* [Claude Platform on AWS](/pt/claude-platform-on-aws)

201* [Google Vertex AI](/pt/google-vertex-ai)202* [Google Vertex AI](/pt/google-vertex-ai)

Details

11Para adicionar ferramentas personalizadas, conecte um [servidor MCP](/pt/mcp). Para estender Claude com fluxos de trabalho baseados em prompts reutilizáveis, escreva uma [skill](/pt/skills), que é executada através da ferramenta `Skill` existente em vez de adicionar uma nova entrada de ferramenta.11Para adicionar ferramentas personalizadas, conecte um [servidor MCP](/pt/mcp). Para estender Claude com fluxos de trabalho baseados em prompts reutilizáveis, escreva uma [skill](/pt/skills), que é executada através da ferramenta `Skill` existente em vez de adicionar uma nova entrada de ferramenta.

12 12 

13| Ferramenta | Descrição | Permissão Necessária |13| Ferramenta | Descrição | Permissão Necessária |

14| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |14| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------- |

15| `Agent` | Cria um [subagent](/pt/sub-agents) com sua própria janela de contexto para lidar com uma tarefa. Veja [comportamento da ferramenta Agent](#agent-tool-behavior) | Não |15| `Agent` | Cria um [subagent](/pt/sub-agents) com sua própria janela de contexto para lidar com uma tarefa. Veja [comportamento da ferramenta Agent](#agent-tool-behavior) | Não |

16| `Artifact` | Publica um arquivo HTML ou Markdown como um [artifact](/pt/artifacts): uma página privada e interativa no claude.ai que você pode compartilhar dentro de sua organização. {/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}Requer um plano Team ou Enterprise e autenticação `/login`; veja [Disponibilidade](/pt/artifacts#availability) | Sim |16| `Artifact` | Publica um arquivo HTML ou Markdown como um [artifact](/pt/artifacts): uma página privada e interativa no claude.ai que você pode compartilhar dentro de sua organização. {/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}Requer um plano Team ou Enterprise e autenticação `/login`; veja [Disponibilidade](/pt/artifacts#availability) | Sim |

17| `AskUserQuestion` | Faz perguntas de múltipla escolha para coletar requisitos ou esclarecer ambiguidades | Não |17| `AskUserQuestion` | Faz perguntas de múltipla escolha para coletar requisitos ou esclarecer ambiguidades | Não |


28| `Grep` | Pesquisa padrões no conteúdo de arquivos. Veja [comportamento da ferramenta Grep](#grep-tool-behavior) | Não |28| `Grep` | Pesquisa padrões no conteúdo de arquivos. Veja [comportamento da ferramenta Grep](#grep-tool-behavior) | Não |

29| `ListMcpResourcesTool` | Lista recursos expostos por [servidores MCP](/pt/mcp) conectados | Não |29| `ListMcpResourcesTool` | Lista recursos expostos por [servidores MCP](/pt/mcp) conectados | Não |

30| `LSP` | Inteligência de código via servidores de linguagem: ir para definições, encontrar referências, relatar erros de tipo e avisos. Veja [comportamento da ferramenta LSP](#lsp-tool-behavior) | Não |30| `LSP` | Inteligência de código via servidores de linguagem: ir para definições, encontrar referências, relatar erros de tipo e avisos. Veja [comportamento da ferramenta LSP](#lsp-tool-behavior) | Não |

31| `Monitor` | Executa um comando em segundo plano e alimenta cada linha de saída de volta para Claude, para que ele possa reagir a entradas de log, mudanças de arquivo ou status consultado no meio da conversa. Veja [ferramenta Monitor](#monitor-tool) | Sim |31| `Monitor` | Executa um comando em segundo plano e alimenta cada linha de saída de volta para Claude, para que ele possa reagir a entradas de log, mudanças de arquivo ou status consultado no meio da conversa. Também pode abrir um WebSocket e tratar cada mensagem recebida como um evento. Veja [ferramenta Monitor](#monitor-tool) | Sim |

32| `NotebookEdit` | Modifica células de notebook Jupyter. Veja [comportamento da ferramenta NotebookEdit](#notebookedit-tool-behavior) | Sim |32| `NotebookEdit` | Modifica células de notebook Jupyter. Veja [comportamento da ferramenta NotebookEdit](#notebookedit-tool-behavior) | Sim |

33| `PowerShell` | Executa comandos PowerShell nativamente. Veja [ferramenta PowerShell](#powershell-tool) para disponibilidade | Sim |33| `PowerShell` | Executa comandos PowerShell nativamente. Veja [ferramenta PowerShell](#powershell-tool) para disponibilidade | Sim |

34| `PushNotification` | Envia uma notificação de desktop e um push de telefone quando [Remote Control](/pt/remote-control) está conectado, para que uma tarefa de longa duração ou [tarefa agendada](/pt/scheduled-tasks) possa alcançá-lo quando você se afastar. {/* plan-availability: feature=push-notifications providers=anthropic */}A entrega de push é executada através de infraestrutura hospedada pela Anthropic, que não é acessível do Amazon Bedrock, Google Vertex AI ou Microsoft Foundry | Não |34| `PushNotification` | Envia uma notificação de desktop e um push de telefone quando [Remote Control](/pt/remote-control) está conectado, para que uma tarefa de longa duração ou [tarefa agendada](/pt/scheduled-tasks) possa alcançá-lo quando você se afastar. {/* plan-availability: feature=push-notifications providers=anthropic */}A entrega de push é executada através de infraestrutura hospedada pela Anthropic, que não é acessível do Amazon Bedrock, Google Vertex AI ou Microsoft Foundry | Não |

35| `Read` | Lê o conteúdo de arquivos. Veja [comportamento da ferramenta Read](#read-tool-behavior) | Não |35| `Read` | Lê o conteúdo de arquivos. Veja [comportamento da ferramenta Read](#read-tool-behavior) | Não |

36| `ReadMcpResourceTool` | Lê um recurso MCP específico por URI | Não |36| `ReadMcpResourceTool` | Lê um recurso MCP específico por URI | Não |

37| `RemoteTrigger` | Cria, atualiza, executa e lista [Routines](/pt/routines) no claude.ai. Suporta o comando `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines vivem no claude.ai e requerem um plano Pro, Max, Team ou Enterprise, portanto esta ferramenta não é acessível do Amazon Bedrock, Google Vertex AI ou Microsoft Foundry | Não |37| `RemoteTrigger` | Cria, atualiza, executa e lista [Routines](/pt/routines) no claude.ai. Suporta o comando `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines vivem no claude.ai e requerem um plano Pro, Max, Team ou Enterprise, portanto esta ferramenta não é acessível do Amazon Bedrock, Google Vertex AI ou Microsoft Foundry | Não |

38| `ReportFindings` | Relata descobertas de revisão de código como uma lista estruturada, com um arquivo, resumo e cenário de falha por descoberta, para que Claude Code possa renderizá-las em vez de imprimi-las como texto. Claude a chama quando instruções ativas de revisão de código dizem para fazê-lo. {/* min-version: 2.1.196 */}Requer Claude Code v2.1.196 ou posterior | Não |

38| `ScheduleWakeup` | Reagenda a próxima iteração de um [`/loop` auto-paced](/pt/scheduled-tasks#let-claude-choose-the-interval). Claude chama isso no final de cada iteração para escolher quando a próxima será executada, entre um minuto e uma hora; você não a chama diretamente. O wakeup pendente aparece em `session_crons` em [Stop hook input](/pt/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Não disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry, onde um prompt `/loop` sem intervalo é executado em um cronograma fixo | Não |39| `ScheduleWakeup` | Reagenda a próxima iteração de um [`/loop` auto-paced](/pt/scheduled-tasks#let-claude-choose-the-interval). Claude chama isso no final de cada iteração para escolher quando a próxima será executada, entre um minuto e uma hora; você não a chama diretamente. O wakeup pendente aparece em `session_crons` em [Stop hook input](/pt/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Não disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry, onde um prompt `/loop` sem intervalo é executado em um cronograma fixo | Não |

39| `SendMessage` | Envia uma mensagem para um [membro da equipe de agentes](/pt/agent-teams), ou [retoma um subagent](/pt/sub-agents#resume-subagents) por seu ID de agente. Subagents parados retomam automaticamente em segundo plano. Mensagens de protocolo de equipe estruturadas requerem equipes de agentes | Não |40| `SendMessage` | Envia uma mensagem para um [membro da equipe de agentes](/pt/agent-teams), ou [retoma um subagent](/pt/sub-agents#resume-subagents) por seu ID de agente. Subagents parados retomam automaticamente em segundo plano. Mensagens de protocolo de equipe estruturadas requerem equipes de agentes | Não |

41| `SendUserFile` | Envia arquivos da sessão para você com uma legenda opcional, para que um relatório gerado, diagrama, captura de tela ou artefato construído chegue ao seu dispositivo em vez de apenas ser mencionado na transcrição. {/* min-version: 2.1.196 */}A partir de v2.1.196, a entrada `display` opcional controla a apresentação: `render` abre o arquivo inline no cliente, `attach` mostra apenas um cartão de download, e quando não definido o cliente decide pelo tipo de arquivo. Disponível quando um cliente [Remote Control](/pt/remote-control) está conectado ou a sessão é executada em um ambiente de nuvem gerenciado como [Claude Code na web](/pt/claude-code-on-the-web). A entrega é executada através de infraestrutura hospedada pela Anthropic, portanto a ferramenta não está disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry | Não |

40| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Carrega `ONBOARDING.md` e retorna um link de compartilhamento que colegas podem abrir no Claude Code. Chamado de `/team-onboarding` após o guia ser escrito. Disponível para assinantes do claude.ai em planos Pro, Max, Team e Enterprise | Sim |42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Carrega `ONBOARDING.md` e retorna um link de compartilhamento que colegas podem abrir no Claude Code. Chamado de `/team-onboarding` após o guia ser escrito. Disponível para assinantes do claude.ai em planos Pro, Max, Team e Enterprise | Sim |

41| `Skill` | Executa uma [skill](/pt/skills#control-who-invokes-a-skill) dentro da conversa principal | Sim |43| `Skill` | Executa uma [skill](/pt/skills#control-who-invokes-a-skill) dentro da conversa principal | Sim |

42| `TaskCreate` | Cria uma nova tarefa na lista de tarefas | Não |44| `TaskCreate` | Cria uma nova tarefa na lista de tarefas | Não |


206* Consultar um PR ou trabalho de CI e relatar quando seu status muda208* Consultar um PR ou trabalho de CI e relatar quando seu status muda

207* Observar um diretório para mudanças de arquivo209* Observar um diretório para mudanças de arquivo

208* Rastrear saída de qualquer script de longa duração que você apontar210* Rastrear saída de qualquer script de longa duração que você apontar

211* Conectar a um feed de WebSocket e relatar cada mensagem conforme chega

209 212 

210Claude escreve um pequeno script para a observação, o executa em segundo plano e recebe cada linha de saída conforme chega. Você continua trabalhando na mesma sessão e Claude intervém quando um evento chega. Pare um monitor pedindo a Claude para cancelá-lo ou encerrando a sessão.213Para a maioria das observações, Claude escreve um pequeno script, o executa em segundo plano e recebe cada linha de saída conforme chega. Para um servidor que envia eventos, Claude pode abrir uma [WebSocket](#websocket-source) em vez de executar um script.

211 214 

212Monitor usa as mesmas [regras de permissão que Bash](/pt/permissions#tool-specific-permission-rules), portanto os padrões `allow` e `deny` que você definiu para Bash se aplicam aqui também. Não está disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. Também não está disponível quando `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido.215Você continua trabalhando na mesma sessão e Claude intervém quando um evento chega. Pare um monitor pedindo a Claude para cancelá-lo ou encerrando a sessão.

216 

217Quando Monitor executa um comando, ele usa as mesmas [regras de permissão que Bash](/pt/permissions#tool-specific-permission-rules), portanto os padrões `allow` e `deny` que você definiu para Bash se aplicam aqui também. A [fonte WebSocket](#websocket-source) tem seu próprio prompt de aprovação.

218 

219A ferramenta não está disponível no Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. Também não está disponível quando `DISABLE_TELEMETRY` ou `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` está definido.

213 220 

214Plugins podem declarar monitores que iniciam automaticamente quando o plugin está ativo, em vez de pedir a Claude para iniciá-los. Veja [monitores de plugin](/pt/plugins-reference#monitors).221Plugins podem declarar monitores que iniciam automaticamente quando o plugin está ativo, em vez de pedir a Claude para iniciá-los. Veja [monitores de plugin](/pt/plugins-reference#monitors).

215 222 

223<h3 id="websocket-source">

224 Fonte WebSocket

225</h3>

226 

227<Note>

228 A fonte WebSocket requer Claude Code v2.1.195 ou posterior.

229</Note>

230 

231Quando um servidor já envia eventos por WebSocket, Claude pode se conectar a ele diretamente em vez de escrever um script de consulta. Cada tipo de atividade de socket se torna um evento ou encerra a observação:

232 

233* **Mensagens de texto**: cada uma se torna um evento, mesmo quando a mensagem abrange várias linhas.

234* **Mensagens binárias**: não são passadas. Claude recebe uma linha de espaço reservado como `[binary frame, 512 bytes]`.

235* **Mensagens maiores que 1 MiB**: a observação termina, portanto inscreva-se em um feed filtrado onde um existe.

236* **Fechamento de socket**: a observação termina e Claude recebe o código de fechamento.

237 

238Uma observação de WebSocket usa uma entrada `ws` no lugar de `command`, e uma única chamada de Monitor não pode combinar os dois. A entrada `ws` tem dois campos:

239 

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

241| :---------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |

242| `url` | Sim | O endpoint para se conectar. Deve ser uma URL `ws://` ou `wss://` sem credenciais ou espaços em branco incorporados, usando apenas caracteres ASCII |

243| `protocols` | Não | Nomes de subprotocolo WebSocket para oferecer durante o handshake. Cada entrada deve ser um token de subprotocolo válido, e a lista não pode conter duplicatas |

244 

245As entradas `timeout_ms` e `persistent` se comportam da mesma forma que para um comando: a observação termina no prazo, a menos que `persistent` esteja definido, e `TaskStop` a cancela antecipadamente.

246 

247Abrir uma WebSocket solicita aprovação, e o prompt não oferece uma opção para pular prompts futuros para o mesmo host.

248 

249Claude Code nega URLs que apontam para um endereço privado, link-local ou de metadados em nuvem, incluindo nomes de host que resolvem para um. Também nega hosts em `sandbox.network.deniedDomains`, e quando [`allowManagedDomainsOnly`](/pt/settings#sandbox-settings) está definido nas configurações gerenciadas, qualquer host fora da lista de permissões gerenciada.

250 

216<h2 id="notebookedit-tool-behavior">251<h2 id="notebookedit-tool-behavior">

217 Comportamento da ferramenta NotebookEdit252 Comportamento da ferramenta NotebookEdit

218</h2>253</h2>


265 300 

266O mesmo comportamento de redefinição de diretório de trabalho da sessão principal descrito na seção da ferramenta Bash se aplica aos comandos PowerShell, incluindo a variável de ambiente `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR`.301O mesmo comportamento de redefinição de diretório de trabalho da sessão principal descrito na seção da ferramenta Bash se aplica aos comandos PowerShell, incluindo a variável de ambiente `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR`.

267 302 

303{/* min-version: 2.1.196 */}A partir da v2.1.196, a ferramenta PowerShell corresponde ao tratamento da ferramenta Bash dos códigos de saída de busca e diff. O código de saída 1 de `grep`, `egrep`, `fgrep` e `git grep` significa nenhuma correspondência, e o código de saída 1 de `git diff` significa que existem diferenças, portanto esses resultados não são relatados a Claude como falhas de comando.

304 

268<h3 id="preview-limitations">305<h3 id="preview-limitations">

269 Limitações da visualização306 Limitações da visualização

270</h3>307</h3>


284 321 

285Read lida com vários tipos de arquivo além de texto simples:322Read lida com vários tipos de arquivo além de texto simples:

286 323 

287* **Imagens**: PNG, JPG e outros formatos de imagem são retornados como conteúdo visual que Claude pode ver, não como bytes brutos. Claude Code redimensiona e recompacta imagens grandes para se ajustar aos limites de tamanho de imagem do modelo antes de enviá-las, portanto Claude pode ver uma versão reduzida de uma captura de tela grande. Se Claude perder detalhes de nível de pixel fino em uma imagem grande, peça-lhe para cortar a região de interesse primeiro, por exemplo com ImageMagick via Bash.324* **Imagens**: PNG, JPG e outros formatos de imagem são retornados como conteúdo visual que Claude pode ver, não como bytes brutos. Claude Code redimensiona e recompacta imagens grandes para se ajustar aos limites de tamanho de imagem do modelo antes de enviá-las, portanto Claude pode ver uma versão reduzida de uma captura de tela grande. A partir da v2.1.196, uma imagem que ainda é maior que 500KB após esse redimensionamento é re-codificada como JPEG com qualidade reduzida com suas dimensões de pixel inalteradas. Se Claude perder detalhes de nível de pixel fino em uma imagem grande, peça-lhe para cortar a região de interesse primeiro, por exemplo com ImageMagick via Bash.

288* **PDFs**: Claude lê arquivos `.pdf` curtos inteiros. Para PDFs mais longos que 10 páginas, ele lê em intervalos com um parâmetro `pages`, como `"1-5"`, até 20 páginas por vez.325* **PDFs**: Claude lê arquivos `.pdf` curtos inteiros. Para PDFs mais longos que 10 páginas, ele lê em intervalos com um parâmetro `pages`, como `"1-5"`, até 20 páginas por vez.

289* **Notebooks Jupyter**: arquivos `.ipynb` retornam todas as células com suas saídas, incluindo código, markdown e visualizações.326* **Notebooks Jupyter**: arquivos `.ipynb` retornam todas as células com suas saídas, incluindo código, markdown e visualizações.

290 327 

Details

45Se seu problema não estiver listado, trabalhe através das verificações de diagnóstico abaixo para estreitar a causa.45Se seu problema não estiver listado, trabalhe através das verificações de diagnóstico abaixo para estreitar a causa.

46 46 

47<Tip>47<Tip>

48 Se você preferir pular o terminal completamente, o [Claude Code Desktop app](/pt/desktop-quickstart) permite que você instale e use Claude Code através de uma interface gráfica. Baixe-o para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs) ou [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) e comece a codificar sem nenhuma configuração de linha de comando.48 Se você preferir pular o terminal completamente, o [Claude Code Desktop app](/pt/desktop-quickstart) permite que você instale e use Claude Code através de uma interface gráfica. Baixe-o para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs), ou [Linux](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) e comece a codificar sem nenhuma configuração de linha de comando.

49</Tip>49</Tip>

50 50 

51<h2 id="run-diagnostic-checks">51<h2 id="run-diagnostic-checks">

Details

18 Requisitos18 Requisitos

19</h2>19</h2>

20 20 

21O ditado por voz transmite seu áudio gravado para os servidores da Anthropic para transcrição. O áudio não é processado localmente. O serviço de fala para texto está disponível apenas quando você se autentica com uma conta Claude.ai e não está disponível quando Claude Code está configurado para usar uma chave API da Anthropic diretamente, Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. O ditado por voz também não está disponível quando sua organização tem conformidade HIPAA ativada. A transcrição não consome mensagens Claude ou tokens e não conta para os limites mostrados em `/usage`. Consulte [data usage](/pt/data-usage) para saber como a Anthropic lida com seus dados.21O ditado por voz transmite seu áudio gravado para os servidores da Anthropic para transcrição. O áudio não é processado localmente. Ele precisa de todos os seguintes:

22 22 

23O ditado por voz também precisa de acesso local ao microfone, portanto não funciona em ambientes remotos como [Claude Code na web](/pt/claude-code-on-the-web) ou sessões SSH. No WSL, o ditado por voz requer WSLg para acesso de áudio. WSLg está incluído no WSL2 quando instalado na Microsoft Store no Windows 10 ou 11. Se WSLg não estiver disponível, por exemplo no WSL1, execute Claude Code no Windows nativo.23* **Uma conta Claude.ai**: o serviço de fala para texto está disponível apenas quando você se autentica com uma, e não está disponível quando Claude Code está configurado para usar uma chave API da Anthropic diretamente, Amazon Bedrock, Google Vertex AI ou Microsoft Foundry.

24* **Uma organização sem conformidade HIPAA ativada**: `/voice` mostra `Voice mode is disabled by your organization's policy` quando essa restrição se aplica.

25* **Um microfone local**: o ditado por voz não funciona em ambientes remotos como [Claude Code na web](/pt/claude-code-on-the-web) ou sessões SSH.

26* **WSLg, se você executar Claude Code no WSL**: WSLg está incluído no WSL2 quando instalado na Microsoft Store no Windows 10 ou 11. Se WSLg não estiver disponível, por exemplo no WSL1, execute Claude Code no Windows nativo.

27 

28A transcrição não consome mensagens Claude ou tokens e não conta para os limites mostrados em `/usage`. Consulte [data usage](/pt/data-usage) para saber como a Anthropic lida com seus dados.

24 29 

25A gravação de áudio usa um módulo nativo integrado no macOS, Linux e Windows. No Linux, se o módulo nativo não conseguir carregar, Claude Code volta para `arecord` do ALSA utils ou `rec` do SoX. Se nenhum estiver disponível, `/voice` imprime um comando de instalação para seu gerenciador de pacotes.30A gravação de áudio usa um módulo nativo integrado no macOS, Linux e Windows. No Linux, se o módulo nativo não conseguir carregar, Claude Code volta para `arecord` do ALSA utils ou `rec` do SoX. Se nenhum estiver disponível, `/voice` imprime um comando de instalação para seu gerenciador de pacotes.

26 31 


91 96 

92O modo de toque alterna a gravação com um único pressionamento de tecla: toque uma vez para começar, fale e depois toque novamente para enviar o prompt. Não há aquecimento e você não precisa manter a tecla pressionada.97O modo de toque alterna a gravação com um único pressionamento de tecla: toque uma vez para começar, fale e depois toque novamente para enviar o prompt. Não há aquecimento e você não precisa manter a tecla pressionada.

93 98 

94Ative o modo de toque com `/voice tap`. Com a entrada do prompt vazia, toque em `Space` para começar a gravar. O rodapé mostra uma forma de onda ao vivo durante a gravação. Toque em `Space` novamente para parar. Claude Code insere a transcrição e envia o prompt automaticamente quando a transcrição tem pelo menos três palavras. Transcrições mais curtas são inseridas mas não enviadas, portanto um toque acidental não envia uma palavra isolada.99Ative o modo de toque com `/voice tap`. Com a entrada do prompt vazia, toque em `Space` para começar a gravar. O rodapé mostra uma forma de onda ao vivo durante a gravação. Toque em `Space` novamente para parar.

100 

101Claude Code insere a transcrição e envia o prompt automaticamente quando a transcrição tem pelo menos três palavras. Transcrições mais curtas são inseridas mas não enviadas, portanto um toque acidental não envia uma palavra isolada.

102 

103O limite de três palavras conta palavras para idiomas escritos sem espaços. A partir da v2.1.195, transcrições em japonês, chinês e tailandês contam palavras individuais, portanto elas são enviadas automaticamente no modo de toque e no modo de espera com `autoSubmit`. Versões anteriores contavam uma transcrição sem espaços como uma palavra e nunca a enviavam automaticamente.

95 104 

96O primeiro toque só começa a gravar quando a entrada do prompt está vazia, para que você ainda possa digitar espaços normalmente enquanto compõe uma mensagem. O segundo toque para a gravação independentemente do conteúdo da entrada. A gravação também para automaticamente após 15 segundos de silêncio ou dois minutos no total.105O primeiro toque só começa a gravar quando a entrada do prompt está vazia, para que você ainda possa digitar espaços normalmente enquanto compõe uma mensagem. O segundo toque para a gravação independentemente do conteúdo da entrada. A gravação também para automaticamente após 15 segundos de silêncio ou dois minutos no total.

97 106 


169Problemas comuns quando o ditado por voz não é ativado ou não grava:178Problemas comuns quando o ditado por voz não é ativado ou não grava:

170 179 

171* **`Voice mode requires a Claude.ai account`**: você está autenticado com uma chave API ou um provedor de terceiros. Execute `/login` para entrar com uma conta Claude.ai.180* **`Voice mode requires a Claude.ai account`**: você está autenticado com uma chave API ou um provedor de terceiros. Execute `/login` para entrar com uma conta Claude.ai.

181* **`Voice mode is disabled by your organization's policy`**: a configuração de conformidade da sua organização desativa o ditado por voz, conforme descrito em [Requirements](#requirements). Entre em contato com o administrador da sua organização para confirmar se o ditado por voz está disponível para sua organização.

172* **`Microphone access is denied`**: conceda permissão de microfone ao seu terminal nas configurações do sistema. No macOS, vá para Configurações do Sistema → Privacidade e Segurança → Microfone e ative seu aplicativo de terminal, depois execute `/voice` novamente. No Windows, vá para Configurações → Privacidade e segurança → Microfone e ative o acesso ao microfone para aplicativos de desktop, depois execute `/voice` novamente. Se seu terminal não estiver listado nas configurações de Microfone do macOS, consulte [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).182* **`Microphone access is denied`**: conceda permissão de microfone ao seu terminal nas configurações do sistema. No macOS, vá para Configurações do Sistema → Privacidade e Segurança → Microfone e ative seu aplicativo de terminal, depois execute `/voice` novamente. No Windows, vá para Configurações → Privacidade e segurança → Microfone e ative o acesso ao microfone para aplicativos de desktop, depois execute `/voice` novamente. Se seu terminal não estiver listado nas configurações de Microfone do macOS, consulte [Terminal not listed in macOS Microphone settings](#terminal-not-listed-in-macos-microphone-settings).

173* **`No audio recording tool found` no Linux**: o módulo de áudio nativo não conseguiu carregar e nenhum fallback está instalado. Instale SoX com o comando mostrado na mensagem de erro, por exemplo `sudo apt-get install sox`.183* **`No audio recording tool found` no Linux**: o módulo de áudio nativo não conseguiu carregar e nenhum fallback está instalado. Instale SoX com o comando mostrado na mensagem de erro, por exemplo `sudo apt-get install sox`.

184* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX está instalado, mas o host não possui um dispositivo de captura de áudio, por exemplo um servidor sem cabeça ou um contêiner. Execute Claude Code em uma máquina com um microfone. {/* min-version: 2.1.195 */}A partir da v2.1.195, Claude Code no Linux relata esta mensagem nessa situação; versões anteriores pediam que você instalasse SoX mesmo quando já estava instalado.

174* **`Voice mode could not find a working audio recorder in WSL`**: WSLg roteia áudio através do PulseAudio em vez de um dispositivo ALSA, portanto SoX precisa que seu backend PulseAudio esteja instalado explicitamente. Execute `sudo apt install sox libsox-fmt-pulse`. Instalar apenas `sox` puxa o backend ALSA, que não consegue gravar no WSL porque não há nenhum dispositivo `/dev/snd`.185* **`Voice mode could not find a working audio recorder in WSL`**: WSLg roteia áudio através do PulseAudio em vez de um dispositivo ALSA, portanto SoX precisa que seu backend PulseAudio esteja instalado explicitamente. Execute `sudo apt install sox libsox-fmt-pulse`. Instalar apenas `sox` puxa o backend ALSA, que não consegue gravar no WSL porque não há nenhum dispositivo `/dev/snd`.

175* **`Voice input is failing repeatedly and has been paused`**: o ditado por voz atingiu várias falhas de inicialização seguidas e parou de tentar novas sessões até que uma tenha sucesso. Isso geralmente significa que o microfone ou a pilha de áudio neste host não consegue capturar áudio, por exemplo um servidor sem cabeça, um shell remoto sem passagem de áudio, ou uma permissão de microfone negada. Confirme um dispositivo de entrada funcionando, corrija a causa subjacente das entradas acima, depois dispare a voz novamente.186* **`Voice input is failing repeatedly and has been paused`**: o ditado por voz atingiu várias falhas de inicialização seguidas e parou de tentar novas sessões até que uma tenha sucesso. Isso geralmente significa que o microfone ou a pilha de áudio neste host não consegue capturar áudio, por exemplo um servidor sem cabeça, um shell remoto sem passagem de áudio, ou uma permissão de microfone negada. Confirme um dispositivo de entrada funcionando, corrija a causa subjacente das entradas acima, depois dispare a voz novamente.

176* **Nada acontece ao manter `Space` pressionado no modo de manutenção**: observe a entrada do prompt enquanto você mantém. Se espaços continuarem se acumulando, o ditado por voz provavelmente está desativado; execute `/voice hold` para ativá-lo. Se apenas um ou dois espaços aparecerem e depois nada, o ditado por voz está ativado mas a detecção de manutenção não está sendo acionada. A detecção de manutenção requer que seu terminal envie eventos de repetição de tecla, portanto não pode detectar uma tecla mantida se a repetição de tecla estiver desativada no nível do SO. Mude para o modo de toque com `/voice tap` para evitar o requisito de repetição de tecla.187* **Nada acontece ao manter `Space` pressionado no modo de manutenção**: observe a entrada do prompt enquanto você mantém. Se espaços continuarem se acumulando, o ditado por voz provavelmente está desativado; execute `/voice hold` para ativá-lo. Se apenas um ou dois espaços aparecerem e depois nada, o ditado por voz está ativado mas a detecção de manutenção não está sendo acionada. A detecção de manutenção requer que seu terminal envie eventos de repetição de tecla, portanto não pode detectar uma tecla mantida se a repetição de tecla estiver desativada no nível do SO. Mude para o modo de toque com `/voice tap` para evitar o requisito de repetição de tecla.

whats-new.md +16 −0

Details

8 8 

9O resumo semanal para desenvolvedores destaca os recursos com maior probabilidade de mudar a forma como você trabalha. Cada entrada inclui código executável, uma breve demonstração e um link para a documentação completa. Para cada correção de bug e melhoria menor, consulte o [changelog](/pt/changelog).9O resumo semanal para desenvolvedores destaca os recursos com maior probabilidade de mudar a forma como você trabalha. Cada entrada inclui código executável, uma breve demonstração e um link para a documentação completa. Para cada correção de bug e melhoria menor, consulte o [changelog](/pt/changelog).

10 10 

11<Update label="Week 26" description="22–26 de junho de 2026" tags={["v2.1.185–v2.1.193"]}>

12 **`claude mcp login`**: autentique um servidor MCP configurado a partir do seu shell em vez do menu interativo `/mcp`, e limpe suas credenciais armazenadas posteriormente com `claude mcp logout`.

13 

14 Também esta semana: **shell mode responde à saída do comando** (`! npm test` recebe uma explicação sem um segundo prompt); **`/rewind`** pode retomar uma conversa de antes de `/clear` ser executado; e **subagentes de fundo** agora exibem prompts de permissão na sessão principal em vez de negar automaticamente.

15 

16 [Leia o resumo da Week 26 →](/pt/whats-new/2026-w26)

17</Update>

18 

19<Update label="Week 25" description="15–19 de junho de 2026" tags={["v2.1.178–v2.1.183"]}>

20 **Artifacts**: transforme a saída de uma sessão em uma página ao vivo e compartilhável no claude.ai que se atualiza no local conforme a sessão funciona, agora em beta nos planos Team e Enterprise.

21 

22 Também esta semana: **regras de negação e solicitação correspondem aos parâmetros da ferramenta** com `Tool(param:value)`, por exemplo `Agent(model:opus)`; **`/config key=value`** define qualquer configuração a partir do prompt, no modo `-p`, e do Remote Control; e **auto mode bloqueia comandos git destrutivos** quando você não pediu para descartar trabalho local.

23 

24 [Leia o resumo da Week 25 →](/pt/whats-new/2026-w25)

25</Update>

26 

11<Update label="Week 24" description="8–12 de junho de 2026" tags={["v2.1.166–v2.1.176"]}>27<Update label="Week 24" description="8–12 de junho de 2026" tags={["v2.1.166–v2.1.176"]}>

12 **`/cd`**: mova a sessão atual para um novo diretório de trabalho no meio da conversa sem reconstruir o cache de prompt.28 **`/cd`**: mova a sessão atual para um novo diretório de trabalho no meio da conversa sem reconstruir o cache de prompt.

13 29 

Details

73 <p className="digest-feature-try">Adicione um limite mínimo às suas configurações gerenciadas para que clientes antigos se recusem a iniciar:</p>73 <p className="digest-feature-try">Adicione um limite mínimo às suas configurações gerenciadas para que clientes antigos se recusem a iniciar:</p>

74 74 

75 ```json managed-settings.json theme={null}75 ```json managed-settings.json theme={null}

76 {

76 "requiredMinimumVersion": "2.1.163"77 "requiredMinimumVersion": "2.1.163"

78 }

77 ```79 ```

78 80 

79 <a className="digest-feature-link" href="/docs/pt/admin-setup#decide-what-to-enforce">Decida o que aplicar</a>81 <a className="digest-feature-link" href="/docs/pt/admin-setup#decide-what-to-enforce">Decida o que aplicar</a>

whats-new/2026-w25.md +90 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Semana 25 · 15–19 de junho de 2026

6 

7> Publique uma página ao vivo e compartilhável a partir de sua sessão com Artifacts, corresponda parâmetros de ferramentas em regras de negação e permissão, e defina qualquer configuração a partir do prompt com /config.

8 

9<div className="digest-meta">

10 <span>Lançamentos <a href="/pt/docs/changelog#2-1-178">v2.1.178 → v2.1.183</a></span>

11 <span>3 recursos · 15–19 de junho</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Artifacts</span>

17 </div>

18 

19 <p className="digest-feature-lede">Um artifact é uma página ao vivo e interativa que Claude Code publica a partir de sua sessão para uma URL privada em claude.ai, e é atualizada no local conforme a sessão continua funcionando. Solicite um quando o texto do terminal não for o meio apropriado, como um walkthrough de PR com o diff anotado inline ou um dashboard construído a partir de dados da sessão. Artifacts estão em beta nos planos Team e Enterprise.</p>

20 

21 <Frame>

22 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/1ylKDoQynT1UgfEK/images/whats-new/artifacts.mp4?fit=max&auto=format&n=1ylKDoQynT1UgfEK&q=85&s=7f5391559d2bc69989621b36322fcff1" data-path="images/whats-new/artifacts.mp4" />

23 </Frame>

24 

25 <p className="digest-feature-try">Peça ao Claude por uma página e aprove o prompt de publicação:</p>

26 

27 ```text Claude Code theme={null}

28 > Make an artifact that walks through this PR with the diff annotated inline.

29 ```

30 

31 <a className="digest-feature-link" href="/pt/docs/artifacts#create-an-artifact">Criar um artifact</a>

32</div>

33 

34<div className="digest-feature">

35 <div className="digest-feature-header">

36 <span className="digest-feature-title">Corresponder por parâmetro de entrada</span>

37 <span className="digest-feature-pill">v2.1.178</span>

38 </div>

39 

40 <p className="digest-feature-lede">As regras de negação e permissão agora podem corresponder aos parâmetros de entrada de uma ferramenta com a sintaxe <code>Tool(param:value)</code>. Por exemplo, <code>Agent(model:opus)</code> corresponde a spawns de subagentes que solicitam o nível de modelo Opus. O valor aceita `*` como um curinga, então `Agent(isolation:*)` corresponde a qualquer valor de isolamento explícito.</p>

41 

42 <p className="digest-feature-try">Adicione uma regra de parâmetro à lista de negação em <code>settings.json</code>:</p>

43 

44 ```json .claude/settings.json {3} theme={null}

45 {

46 "permissions": {

47 "deny": ["Agent(model:opus)"]

48 }

49 }

50 ```

51 

52 <a className="digest-feature-link" href="/pt/docs/permissions#match-by-input-parameter">Corresponder por parâmetro de entrada</a>

53</div>

54 

55<div className="digest-feature">

56 <div className="digest-feature-header">

57 <span className="digest-feature-title">Defina qualquer configuração a partir do prompt</span>

58 <span className="digest-feature-pill">v2.1.181</span>

59 </div>

60 

61 <p className="digest-feature-lede">Passe <code>key=value</code> para <code>/config</code> para alterar uma configuração diretamente sem abrir a interface de Configurações. A sintaxe também funciona em modo não interativo com a flag <code>-p</code> e a partir do Remote Control.</p>

62 

63 <p className="digest-feature-try">Defina a configuração <code>thinking</code> a partir do prompt:</p>

64 

65 ```text Claude Code theme={null}

66 > /config thinking=false

67 ```

68 

69 <a className="digest-feature-link" href="/pt/docs/commands#all-commands">Referência de comandos</a>

70</div>

71 

72<div className="digest-wins">

73 <p className="digest-wins-title">Outras melhorias</p>

74 

75 <div className="digest-wins-grid">

76 <div>O modo Auto agora bloqueia comandos git destrutivos (`git reset --hard`, `git clean -fd`, `git stash drop`) quando você não pediu para descartar trabalho local, e bloqueia <code>terraform destroy</code> a menos que você tenha pedido pelo stack específico</div>

77 <div>Defina a nova configuração <code>attribution.sessionUrl</code> como <code>false</code> para omitir o link de sessão claude.ai de commits e PRs em sessões web e Remote Control</div>

78 <div>Na interface <code>/config</code>, Enter e Space alteram a configuração selecionada, e Esc agora salva e fecha em vez de reverter</div>

79 <div>A nova configuração opt-in <code>sandbox.allowAppleEvents</code> permite que comandos em sandbox enviem Apple Events no macOS</div>

80 <div>Aponte <code>CLAUDE\_CLIENT\_PRESENCE\_FILE</code> para um arquivo marcador para suprimir notificações push móveis enquanto você está na máquina</div>

81 <div>Parágrafos longos agora são transmitidos linha por linha em vez de aguardar a primeira quebra de linha</div>

82 <div>Quedas de conexão de API durante o thinking agora são retentadas automaticamente em vez de mostrar "Connection closed while thinking"</div>

83 <div>Com <code>CLAUDE\_CODE\_EXPERIMENTAL\_AGENT\_TEAMS=1</code> definido, cada sessão tem um time implícito, então você spawna colegas de trabalho diretamente com o parâmetro <code>name</code> da ferramenta Agent</div>

84 <div>Skills em diretórios aninhados <code>.claude/skills</code> são carregadas ao trabalhar em arquivos lá; em um conflito de nome a skill aninhada aparece como `<dir>:<name>` para que ambas permaneçam disponíveis</div>

85 <div>Corrigido prompt caching não lendo em uma <code>ANTHROPIC\_BASE\_URL</code> customizada e em Foundry</div>

86 <div>Corrigido Write e Edit produzindo arquivos de zero bytes ou truncados em unidades de rede e pastas sincronizadas na nuvem</div>

87 </div>

88</div>

89 

90[Changelog completo para v2.1.178–v2.1.183 →](/pt/changelog#2-1-178)

whats-new/2026-w26.md +66 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Semana 26 · 22–26 de junho de 2026

6 

7> Autentique servidores MCP a partir do seu shell com claude mcp login, obtenha uma resposta para a saída do comando do modo shell com o prefixo !, e retome uma conversa anterior a /clear com /rewind.

8 

9<div className="digest-meta">

10 <span>Releases <a href="/pt/docs/changelog#2-1-185">v2.1.185 → v2.1.193</a></span>

11 <span>2 recursos · 22–26 de junho</span>

12</div>

13 

14<div className="digest-feature">

15 <div className="digest-feature-header">

16 <span className="digest-feature-title">Autentique servidores MCP a partir da CLI</span>

17 <span className="digest-feature-pill">v2.1.186</span>

18 </div>

19 

20 <p className="digest-feature-lede">Os novos comandos `claude mcp login <name>` e `claude mcp logout <name>` autenticam um servidor MCP configurado a partir do seu shell em vez do menu interativo <code>/mcp</code>. `claude mcp login` executa o fluxo OAuth do servidor diretamente, e `claude mcp logout` limpa as credenciais armazenadas.</p>

21 

22 <p className="digest-feature-try">Execute o fluxo OAuth para um servidor configurado sem abrir uma sessão:</p>

23 

24 ```bash terminal theme={null}

25 claude mcp login sentry

26 ```

27 

28 <a className="digest-feature-link" href="/pt/docs/mcp#authenticate-from-the-command-line">Autentique a partir da linha de comando</a>

29</div>

30 

31<div className="digest-feature">

32 <div className="digest-feature-header">

33 <span className="digest-feature-title">O modo shell responde à saída do comando</span>

34 <span className="digest-feature-pill">v2.1.186</span>

35 </div>

36 

37 <p className="digest-feature-lede">Os comandos que você executa com o prefixo <code>!</code> agora recebem uma resposta do Claude assim que a saída chega à transcrição, para que você possa executar <code>! npm test</code> e obter uma explicação das falhas sem um segundo prompt. A resposta custa o mesmo que enviar um prompt normal. Para manter o comportamento anterior, onde a saída é adicionada ao contexto sem uma resposta, defina <code>respondToBashCommands</code> como <code>false</code> em <code>settings.json</code>.</p>

38 

39 <p className="digest-feature-try">Execute um comando e obtenha uma resposta para sua saída:</p>

40 

41 ```text Claude Code theme={null}

42 > ! npm test

43 ```

44 

45 <a className="digest-feature-link" href="/pt/docs/interactive-mode#shell-mode-with-prefix">Modo shell com o prefixo !</a>

46</div>

47 

48<div className="digest-wins">

49 <p className="digest-wins-title">Outras melhorias</p>

50 

51 <div className="digest-wins-grid">

52 <div><code>/rewind</code> agora pode retomar uma conversa anterior a quando <code>/clear</code> foi executado</div>

53 <div>Nova configuração <code>sandbox.credentials</code> impede que comandos em sandbox leiam arquivos de credenciais e variáveis de ambiente secretas</div>

54 <div>As restrições de modelo configuradas pela organização agora se aplicam ao seletor de modelo, `--model`, <code>/model</code> e <code>ANTHROPIC\_MODEL</code>, com uma mensagem "restrito pelas configurações da sua organização" quando um modelo restrito é selecionado</div>

55 <div>Nova configuração <code>autoMode.classifyAllShell</code> roteia todos os comandos Bash e PowerShell através do classificador de modo automático, e os motivos de negação agora aparecem na transcrição, no toast de negação e em <code>/permissions</code></div>

56 <div>Novo evento de log OpenTelemetry <code>claude\_code.assistant\_response</code> carrega o texto da resposta do modelo; implantações que já registram conteúdo de prompt começam a recebê-lo na atualização, portanto defina <code>OTEL\_LOG\_ASSISTANT\_RESPONSES=0</code> para manter apenas prompts</div>

57 <div>Subagentos em segundo plano agora exibem prompts de permissão na sessão principal em vez de negar automaticamente; o diálogo mostra qual agente está solicitando, e Esc nega apenas essa ferramenta</div>

58 <div><code>/install-github-app</code> agora pode instalar apenas o GitHub App e pular as etapas do fluxo de trabalho Actions e segredo</div>

59 <div>Os hosts que você permite no diálogo de permissão de rede do sandbox são lembrados pelo resto da sessão em vez de solicitar novamente a cada conexão</div>

60 <div>As respostas de streaming usam aproximadamente 37% menos CPU, e o crescimento da memória de sessão longa do cache de saída do terminal é reduzido</div>

61 <div>`/review <pr>` agora usa o mesmo mecanismo de revisão que <code>/code-review medium</code></div>

62 <div>Os comandos <code>!</code> do modo Bash obtêm preenchimento automático de caminho de arquivo ao vivo</div>

63 </div>

64</div>

65 

66[Changelog completo para v2.1.185–v2.1.193 →](/pt/changelog#2-1-185)

workflows.md +2 −0

Details

68 68 

69 <Step title="Ler o relatório">69 <Step title="Ler o relatório">

70 Quando a execução termina, o relatório chega em sua sessão. Ele cita as fontes de cada afirmação, com afirmações que não sobreviveram à verificação cruzada já filtradas.70 Quando a execução termina, o relatório chega em sua sessão. Ele cita as fontes de cada afirmação, com afirmações que não sobreviveram à verificação cruzada já filtradas.

71 

72 {/* min-version: 2.1.196 */}A partir da v2.1.196, quando os agentes verificadores não conseguem verificar uma afirmação, como após um limite de taxa ou erro de API, o relatório lista essa afirmação como não verificada em vez de contá-la como refutada.

71 </Step>73 </Step>

72</Steps>74</Steps>

73 75