SpyBara
Go Premium

Documentation 2026-11-01 23:57 UTC to 2026-11-02 23:57 UTC

41 files changed +834 −360. View all changes and history on the product overview
2026
Thu 12 21:00 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

20>20>

21> Uma regra de faturamento que o SDK modela é [preço de residência de dados](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing). Quando a `usage` de uma resposta relata `inference_geo: "us"`, o SDK multiplica o preço de lista dos tokens dessa resposta por 1,1. Taxas por solicitação, como busca na web, não são multiplicadas. Requer TypeScript Agent SDK v0.3.239 ou posterior, ou Python Agent SDK v0.2.144 ou posterior.21> Uma regra de faturamento que o SDK modela é [preço de residência de dados](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing). Quando a `usage` de uma resposta relata `inference_geo: "us"`, o SDK multiplica o preço de lista dos tokens dessa resposta por 1,1. Taxas por solicitação, como busca na web, não são multiplicadas. Requer TypeScript Agent SDK v0.3.239 ou posterior, ou Python Agent SDK v0.2.144 ou posterior.

22>22>

23> Use esses campos para insight de desenvolvimento e orçamento aproximado. Para faturamento autoritário, use a [API de Uso e Custo](https://platform.claude.com/docs/en/build-with-claude/usage-cost-api) ou a página de Uso no [Console Claude](https://platform.claude.com/usage). Não fature usuários finais ou dispare decisões financeiras a partir desses campos.23> Use esses campos para insight de desenvolvimento e orçamento aproximado. Para faturamento autoritário, consulte [Gerenciar custos para sua organização](https://code.claude.com/docs/pt/costs.md#manage-costs-for-your-organization). Não fature usuários finais ou dispare decisões financeiras a partir desses campos.

24 24 

25## Entender o uso de tokens25## Entender o uso de tokens

26 26 

Details

52 52 

53Se sua aplicação agrupa o Agent SDK junto com suas próprias dependências, importe de `@anthropic-ai/claude-agent-sdk/core` em vez da raiz do pacote. A entrada `/core` requer Agent SDK TypeScript v0.3.282 ou posterior, e seus tipos requerem TypeScript 5.0 ou posterior.53Se sua aplicação agrupa o Agent SDK junto com suas próprias dependências, importe de `@anthropic-ai/claude-agent-sdk/core` em vez da raiz do pacote. A entrada `/core` requer Agent SDK TypeScript v0.3.282 ou posterior, e seus tipos requerem TypeScript 5.0 ou posterior.

54 54 

55A entrada `/core` exporta o mesmo `query()`, `startup()`, `tool()`, `createSdkMcpServer()` e `resolveSettings()` como a entrada raiz, junto com as funções que renomeiam, marcam e deletam sessões, `AbortError`, as constantes de tempo de execução e todos os tipos. Ela não adiciona nomes próprios. Para manter o código que sua aplicação carrega pequeno, `/core` deixa de fora algumas exportações raiz, incluindo `prewarm()`, a classe `InMemorySessionStore` e os auxiliares que listam, leem, bifurcam, importam e resumem sessões. Se você precisar de um deles, use a entrada raiz.55Para manter pequeno o código que sua aplicação carrega, a entrada `/core` deixa de fora algumas exportações raiz:

56 

57* **Exportado**: o mesmo `query()`, `startup()`, [`prewarm()`](#prewarm), `tool()`, `createSdkMcpServer()` e `resolveSettings()` da entrada raiz, junto com as funções que renomeiam, marcam e deletam sessões, `AbortError`, as constantes de tempo de execução e todos os tipos. Importar o `prewarm()` alpha de `/core` requer Agent SDK v0.3.314 ou posterior.

58* **Deixado de fora**: exportações raiz, incluindo a classe `InMemorySessionStore` e os auxiliares que listam, leem, bifurcam, importam e resumem sessões. Se você precisar de um deles, use a entrada raiz.

56 59 

57A entrada raiz incorpora suas próprias cópias de `zod` e `@modelcontextprotocol/sdk`. A entrada `/core` as importa de seu `node_modules` nos intervalos que as `peerDependencies` do Agent SDK declaram, então um pacote que já as inclui não carrega uma segunda cópia. Importe de uma ou da outra entrada `/core` em um determinado processo, não ambas: elas são pacotes separados, e carregar ambas fornece duas cópias das classes e estado do Agent SDK.60A entrada raiz incorpora suas próprias cópias de `zod` e `@modelcontextprotocol/sdk`. A entrada `/core` as importa de seu `node_modules` nos intervalos que as `peerDependencies` do Agent SDK declaram, então um pacote que já as inclui não carrega uma segunda cópia. Importe de uma ou da outra entrada `/core` em um determinado processo, não ambas: elas são pacotes separados, e carregar ambas fornece duas cópias das classes e estado do Agent SDK.

58 61 


2002 2005 

2003* Uma retomada que Claude Code interrompe porque [não consegue retornar a sessão ao seu worktree](https://code.claude.com/docs/pt/worktrees.md#the-session-resumes-outside-its-worktree), com `worktree_unverified` ou `worktree_resume_refused`. Essa seção diz qual erro carrega qual valor.2006* Uma retomada que Claude Code interrompe porque [não consegue retornar a sessão ao seu worktree](https://code.claude.com/docs/pt/worktrees.md#the-session-resumes-outside-its-worktree), com `worktree_unverified` ou `worktree_resume_refused`. Essa seção diz qual erro carrega qual valor.

2004* Um [`continue`](#options) recusado de uma conversa que uma sessão em segundo plano mantém, com `session_held_by_background`. Para um [`resume`](#options) recusado de tal conversa, Claude Code escreve o resultado apenas quando a variável está definida.2007* Um [`continue`](#options) recusado de uma conversa que uma sessão em segundo plano mantém, com `session_held_by_background`. Para um [`resume`](#options) recusado de tal conversa, Claude Code escreve o resultado apenas quando a variável está definida.

2008* Uma inicialização que o Claude Code recusa porque [`failIfUnavailable`](#sandboxsettings) está ativado e o sandbox não consegue iniciar, com `sandbox_required_unavailable`.

2009 

2010O tipo `SDKStartupFailureReason` lista os valores que `startup_failure_reason` pode conter:

2005 2011 

2006```typescript theme={null}2012```typescript theme={null}

2007type SDKStartupFailureReason =2013type SDKStartupFailureReason =


2023 | "cli_version_too_old"2029 | "cli_version_too_old"

2024 | "bypass_root"2030 | "bypass_root"

2025 | "org_config_required_unavailable"2031 | "org_config_required_unavailable"

2026 | "org_config_refused";2032 | "org_config_refused"

2033 | "sandbox_required_unavailable";

2027```2034```

2028 2035 

2029Cada valor nomeia uma recusa:2036Cada valor nomeia uma recusa:


2049| `bypass_root` | O modo de permissões de bypass foi solicitado durante a execução como root |2056| `bypass_root` | O modo de permissões de bypass foi solicitado durante a execução como root |

2050| `org_config_required_unavailable` | A sessão precisa das políticas e configurações gerenciadas da organização antes de poder iniciar, e elas não puderam ser carregadas, por exemplo por causa de uma falha de rede ou de um erro no servidor da Anthropic. Requer o Agent SDK v0.3.293 ou posterior |2057| `org_config_required_unavailable` | A sessão precisa das políticas e configurações gerenciadas da organização antes de poder iniciar, e elas não puderam ser carregadas, por exemplo por causa de uma falha de rede ou de um erro no servidor da Anthropic. Requer o Agent SDK v0.3.293 ou posterior |

2051| `org_config_refused` | A Anthropic se recusou a fornecer as políticas e configurações gerenciadas da organização para este login, por exemplo porque o login expirou ou foi revogado, ou porque a organização não permite o Claude Code para esta conta. Requer o Agent SDK v0.3.293 ou posterior |2058| `org_config_refused` | A Anthropic se recusou a fornecer as políticas e configurações gerenciadas da organização para este login, por exemplo porque o login expirou ou foi revogado, ou porque a organização não permite o Claude Code para esta conta. Requer o Agent SDK v0.3.293 ou posterior |

2059| `sandbox_required_unavailable` | [`failIfUnavailable`](#sandboxsettings) está ativado e o sandbox não consegue iniciar. O texto em `errors` termina com `Set sandbox.failIfUnavailable=false to allow unsandboxed execution.` Requer Agent SDK v0.3.314 ou posterior |

2052 2060 

2053### `SDKSystemMessage`2061### `SDKSystemMessage`

2054 2062 

Details

308 308 

309Quando Claude Code inicia com Amazon Bedrock configurado, ele verifica se os modelos que pretende usar estão acessíveis em sua conta.309Quando Claude Code inicia com Amazon Bedrock configurado, ele verifica se os modelos que pretende usar estão acessíveis em sua conta.

310 310 

311Se você fixou uma versão de modelo mais antiga do que o padrão atual do Claude Code, e sua conta pode invocar a versão mais recente, Claude Code solicita que você atualize a fixação. Aceitar escreve o novo ID do modelo em seu [arquivo de configurações do usuário](https://code.claude.com/docs/pt/settings.md) e reinicia Claude Code. Recusar é lembrado até a próxima mudança de versão padrão. Fixações que apontam para um [ARN de perfil de inferência de aplicação](#map-each-model-version-to-an-inference-profile) são ignoradas, pois são gerenciadas pelo seu administrador.311Você pode ter fixado uma versão de modelo mais antiga do que o padrão atual do Claude Code. Se sua conta puder invocar a versão mais recente, Claude Code solicita que você atualize a fixação. Aceitar escreve o novo ID do modelo em seu [arquivo de configurações do usuário](https://code.claude.com/docs/pt/settings.md) e reinicia Claude Code. Recusar é lembrado até a próxima mudança de versão padrão.

312 

313Claude Code não verifica nem solicita atualização para estas fixações:

314 

315* Uma fixação no bloco `env` das [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md)

316* Uma fixação que aponta para um [ARN de perfil de inferência de aplicação](#map-each-model-version-to-an-inference-profile), pois é gerenciada pelo seu administrador

312 317 

313Se você não fixou um modelo e o padrão atual não está disponível em sua conta, Claude Code faz fallback para a sessão atual e mostra um aviso. Ele tenta versões anteriores do modelo padrão primeiro e, quando o padrão é um modelo Opus e nenhuma versão Opus está disponível, faz fallback para o modelo Sonnet padrão. O fallback não é persistido. Ative o modelo mais recente em sua conta Amazon Bedrock ou [fixe uma versão](#4-pin-model-versions) para tornar a escolha permanente.318Se você não fixou um modelo e o padrão atual não está disponível em sua conta, Claude Code faz fallback para a sessão atual e mostra um aviso. Ele tenta versões anteriores do modelo padrão primeiro e, quando o padrão é um modelo Opus e nenhuma versão Opus está disponível, faz fallback para o modelo Sonnet padrão. O fallback não é persistido. Ative o modelo mais recente em sua conta Amazon Bedrock ou [fixe uma versão](#4-pin-model-versions) para tornar a escolha permanente.

314 319 

315Quando você inicia a sessão em uma versão específica de Sonnet ou Opus, por exemplo com `--model`, `ANTHROPIC_MODEL`, ou a [configuração `model`](https://code.claude.com/docs/pt/settings-reference#model), essa versão atua como o padrão fixado da sessão para o alias `sonnet` ou `opus` correspondente. Claude Code ignora a verificação de disponibilidade do padrão integrado que seu modelo substitui e inicia no modelo que você configurou, sem aviso de fallback.320Quando você inicia a sessão em uma versão específica de Sonnet ou Opus, por exemplo com `--model`, `ANTHROPIC_MODEL`, ou a [configuração `model`](https://code.claude.com/docs/pt/settings-reference#model), essa versão atua como o padrão fixado da sessão para o alias `sonnet` ou `opus` correspondente. Claude Code ignora a verificação de disponibilidade do padrão integrado que seu modelo substitui e inicia no modelo que você configurou, sem aviso de fallback.

316 321 

317Aliases de modelo como `opus` não atuam como fixações, e nem um ID de modelo que Claude Code não reconhece, como um ARN de perfil de inferência de aplicação.322Estes não atuam como fixações quando você inicia uma sessão neles:

323 

324* Um alias de modelo como `opus`

325* Um ID de modelo que Claude Code não reconhece, como um ARN de perfil de inferência de aplicação

318 326 

319Quando essas verificações encontram um modelo que sua conta não pode invocar, Claude Code lembra a recusa nesta máquina por até um dia, e durante esse tempo inicia ignorando o modelo lembrado sem perguntar ao Amazon Bedrock novamente. Claude Code verifica uma recusa lembrada de um modelo padrão atual novamente na inicialização uma vez que dez minutos tenham passado desde a última verificação, portanto um padrão que seu administrador reativa volta. Para desativar a memória, defina [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](https://code.claude.com/docs/pt/env-vars).327Quando essas verificações encontram um modelo que sua conta não pode invocar, Claude Code lembra a recusa nesta máquina por até um dia, e durante esse tempo inicia ignorando o modelo lembrado sem perguntar ao Amazon Bedrock novamente. Claude Code verifica uma recusa lembrada de um modelo padrão atual novamente na inicialização uma vez que dez minutos tenham passado desde a última verificação, portanto um padrão que seu administrador reativa volta. Para desativar a memória, defina [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](https://code.claude.com/docs/pt/env-vars).

320 328 

analytics.md +10 −10

Details

77* **Lines of code with CC**: total de linhas de código em todos os PRs mesclados que foram escritos com assistência do Claude Code. Apenas "linhas efetivas" são contadas: linhas com mais de 3 caracteres após normalização, excluindo linhas vazias e linhas com apenas colchetes ou pontuação trivial.77* **Lines of code with CC**: total de linhas de código em todos os PRs mesclados que foram escritos com assistência do Claude Code. Apenas "linhas efetivas" são contadas: linhas com mais de 3 caracteres após normalização, excluindo linhas vazias e linhas com apenas colchetes ou pontuação trivial.

78* **PRs with Claude Code (%)**: percentual de todos os PRs mesclados que contêm código assistido por Claude Code78* **PRs with Claude Code (%)**: percentual de todos os PRs mesclados que contêm código assistido por Claude Code

79* **Suggestion accept rate**: percentual de vezes que os usuários aceitam as sugestões de edição de código do Claude Code, incluindo o uso das ferramentas Edit, Write e NotebookEdit79* **Suggestion accept rate**: percentual de vezes que os usuários aceitam as sugestões de edição de código do Claude Code, incluindo o uso das ferramentas Edit, Write e NotebookEdit

80* **Lines of code accepted**: total de linhas de código escritas por Claude Code que os usuários aceitaram em suas sessões. Isso exclui sugestões rejeitadas e não rastreia exclusões subsequentes.80* **Lines of code accepted**: total de linhas de código que as ferramentas Edit e Write do Claude Code adicionaram ou removeram em edições aceitas. Isso exclui sugestões rejeitadas, e linhas excluídas posteriormente não reduzem o total.

81 81 

82### Explorar os gráficos82### Explorar os gráficos

83 83 


192 192 

193## Acessar análise para clientes de API193## Acessar análise para clientes de API

194 194 

195Clientes de API usando Claude Console podem acessar análise em [platform.claude.com/claude-code](https://platform.claude.com/claude-code). Você precisa da permissão UsageView para acessar o painel, que é concedida aos papéis Developer, Billing, Admin, Owner e Primary Owner. Para extrair as mesmas métricas diárias por usuário programaticamente, use a [Claude Code Analytics API](https://platform.claude.com/docs/pt/build-with-claude/claude-code-analytics-api) com uma chave de API Admin.195Clientes de API usando Claude Console podem acessar análise em [platform.claude.com/claude-code](https://platform.claude.com/claude-code). Você precisa da permissão UsageView para acessar o painel. Os papéis Developer, Billing, Admin, Owner e Primary Owner têm essa permissão. Para extrair métricas diárias por usuário programaticamente, use a [Claude Code Analytics API](https://platform.claude.com/docs/pt/build-with-claude/claude-code-analytics-api) com uma chave de API Admin.

196 196 

197> [!NOTE]197> [!NOTE]

198>198>


200 200 

201O painel Console exibe:201O painel Console exibe:

202 202 

203* **Lines of code accepted**: total de linhas de código escritas por Claude Code que os usuários aceitaram em suas sessões. Isso exclui sugestões rejeitadas e não rastreia exclusões subsequentes.203* **Lines of code accepted**: total de linhas de código que as ferramentas Edit e Write do Claude Code adicionaram ou removeram em edições aceitas. Isso exclui sugestões rejeitadas, e linhas excluídas posteriormente não reduzem o total.

204* **Suggestion accept rate**: percentual de vezes que os usuários aceitam o uso da ferramenta de edição de código, incluindo as ferramentas Edit, Write e NotebookEdit.204* **Suggestion accept rate**: percentual de vezes que os usuários aceitam o uso da ferramenta de edição de código, incluindo as ferramentas Edit, Write e NotebookEdit.

205* **Activity**: usuários ativos diários e sessões mostradas em um gráfico.205* **Active users** e **Sessions**: contagens diárias de usuários ativos e sessões do Claude Code.

206* **Spend**: custos diários da API em dólares ao lado da contagem de usuários.206* **Spend**: custos diários da API em dólares.

207 207 

208### Visualizar insights da equipe208### Visualizar insights da equipe

209 209 

210A tabela de insights da equipe mostra métricas por usuário:210A tabela de insights da equipe mostra estas colunas por usuário para o intervalo de datas que você seleciona no topo do painel, por padrão os últimos 30 dias:

211 211 

212* **Members**: todos os usuários que se autenticaram no Claude Code. Usuários de chave de API são exibidos por identificador de chave, usuários OAuth são exibidos por endereço de email.212* **Members**: usuários e chaves de API com uso do Claude Code registrado nesse intervalo. Usuários de chave de API são exibidos pelo nome da chave, e usuários OAuth pelo endereço de email.

213* **Spend this month**: custos totais da API por usuário para o mês atual.213* **Spend**: custos totais da API por usuário.

214* **Lines this month**: total por usuário de linhas de código aceitas para o mês atual.214* **Lines accepted**: total por usuário de linhas que as ferramentas Edit e Write adicionaram ou removeram em edições aceitas.

215 215 

216> [!NOTE]216> [!NOTE]

217>217>

218> Os valores de gastos no painel Console são estimativas para fins de análise. Para custos reais, consulte sua página de faturamento.218> Os valores de gastos no painel Console são estimativas para fins de análise. Para custos reais, consulte a [página Cost](https://platform.claude.com/cost).

219 219 

220## Recursos relacionados220## Recursos relacionados

221 221 

Details

355 355 

356## Revisar negações356## Revisar negações

357 357 

358Para revisar e tentar novamente ações que o classificador do modo automático negou, abra `/permissions` e selecione a aba **Recently denied**, onde Claude Code registra cada negação. Pressione `r` em uma ação negada para marcá-la para retry: quando você sair do diálogo, Claude Code envia uma mensagem informando ao modelo que ele pode tentar novamente essa chamada de ferramenta e retoma a conversa.358Para permitir que Claude tente novamente uma ação bloqueada, use a aba **Recently blocked** em `/permissions`:

359 359 

360Quando o classificador produz [nenhum veredicto sobre a ação](https://code.claude.com/docs/pt/errors.md#auto-mode-cannot-determine-the-safety-of-an-action), porque uma verificação de segurança separada do modo automático recusou a própria solicitação do classificador ou sua resposta não foi analisada, Claude Code nega a ação sem registrá-la em **Recently denied**. A entrada de erro vinculada cobre o que Claude é informado e como executar a ação se você precisar dela.360**1. Abrir a aba**

361 

362Execute `/permissions` em sua sessão para abrir o diálogo de permissões e, em seguida, selecione a aba **Recently blocked**.

363 

364**2. Verificar a ação**

365 

366Destaque a linha da ação e leia seu comando ou entrada abaixo da lista. Baseie-se no comando ou na entrada, não na descrição da linha, que foi escrita por Claude ou pela ferramenta.

367 

368**3. Aprovar a ação**

369 

370Pressione `r` para aprovar a ação e permitir que Claude a tente novamente.

371 

372**4. Fechar o diálogo**

373 

374Pressione `Esc` para fechar o diálogo e aplicar sua aprovação. Se Claude estava trabalhando quando você abriu `/permissions`, envie uma mensagem assim que Claude terminar para permitir que Claude tente novamente a ação. Caso contrário, você não precisa enviar nada: Claude continua agora e pode tentá-la novamente. Se isso não acontecer, nomeie a ação em sua próxima mensagem, conforme descrito em [Aprovações que você declara na conversa](https://code.claude.com/docs/pt/permission-modes.md#approvals-you-state-in-conversation).

375 

376Aprovar uma ação não adiciona uma regra de permissão. No modo auto, uma ação tentada novamente passa pela verificação de novo, então pode ser bloqueada novamente. Para permitir um comando a partir de agora, [adicione uma regra `allow`](#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry).

377 

378Se você não quiser que Claude tente novamente imediatamente, você pode aprovar uma ação para depois, desfazer uma aprovação ou fechar o diálogo e descartar suas aprovações:

379 

380* **Aprovar para depois**: pressione `Enter` na linha e, em seguida, `Esc`. A linha sai da aba, e Claude pode tentar novamente a ação após sua próxima mensagem, assim que Claude terminar. Se você também pressionou `r` em outra linha, a linha em que você pressionou `Enter` permanece na aba e Claude não é informado sobre essa ação. Aprove essa linha em sua próxima visita ou pressione `r` em ambas

381* **Desfazer uma aprovação**: antes de pressionar `Esc`, pressione `Enter` na linha, quer você a tenha aprovado com `Enter` ou com `r`

382* **Fechar o diálogo e descartar suas aprovações**: pressione `Ctrl+C` duas vezes

383 

384Você não pode aprovar uma ação pela aba quando a linha dela não consegue mostrar todo o seu comando ou entrada, ou quando a ação não tem linha:

385 

386* **A linha exibe `This row can't be approved here`**: se você pretendia executar a ação, informe Claude em sua próxima mensagem e Claude poderá tentá-la novamente

387* **Sem linha, e `Not run` ou um erro do classificador na conversa**: o classificador do modo auto não deu nenhum veredicto. Para ver como executar a ação, leia [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/pt/errors.md#auto-mode-cannot-determine-the-safety-of-an-action)

361 388 

362### Corrigir uma negação com uma regra de permissão, uma entrada de ambiente ou um retry389### Corrigir uma negação com uma regra de permissão, uma entrada de ambiente ou um retry

363 390 

364Para ler o comando ou URL por trás de um aviso como `bash denied by auto mode · [Data Exfiltration] · /permissions`, use a aba **Recently denied**, um hook ou a conversa:391Os avisos aparecem como `bash blocked by auto mode · /permissions · Auto mode: [Data Exfiltration]`. Para ler o comando ou URL por trás de um deles, use a aba **Recently blocked**, um hook ou a conversa:

365 392 

366* **Aba Recently denied**: no diálogo `/permissions`, destaque uma ação Bash ou PowerShell negada para ler seu comando abaixo da lista. No [modo de leitor de tela](https://code.claude.com/docs/pt/accessibility.md), todos os comandos aparecem antes da lista.393* **Aba Recently blocked**: destaque a linha da ação. No [modo de leitor de tela](https://code.claude.com/docs/pt/accessibility.md), todos os comandos e entradas aparecem antes da lista.

367* **Hook**: para capturar a entrada exata das negações programaticamente, adicione um [hook `PermissionDenied`](https://code.claude.com/docs/pt/hooks#permissiondenied), que a recebe como `tool_input`.394* **Hook**: para capturar a entrada exata das negações programaticamente, adicione um [hook `PermissionDenied`](https://code.claude.com/docs/pt/hooks#permissiondenied), que a recebe como `tool_input`. Se o seu hook lê `reason`, não espere o prefixo `Auto mode:`, e sim texto como `Blocked by classifier` em vez de `No reason provided`.

368* **Conversa**: encontre a chamada de ferramenta. Se a chamada aparecer encurtada ou dobrada em uma linha de resumo como `Ran 3 shell commands`, pressione `Ctrl+O` para abrir o [visualizador de transcrição](https://code.claude.com/docs/pt/interactive-mode.md#transcript-viewer), que a expande.395* **Conversa**: encontre a chamada de ferramenta. Se a chamada aparecer encurtada ou dobrada em uma linha de resumo como `Ran 3 shell commands`, pressione `Ctrl+O` para abrir o [visualizador de transcrição](https://code.claude.com/docs/pt/interactive-mode.md#transcript-viewer), que a expande.

369 396 

370O texto sob a chamada informa se há algo a corrigir. Uma linha esmaecida `Not run · auto mode's check had no usable answer`, ou texto que relata um problema com o próprio classificador, como `Auto mode could not evaluate this action`, significa que Claude Code bloqueou a chamada sem um veredicto do classificador. Para uma linha `Not run`, pressione `Ctrl+O` para ler a mensagem completa e, em seguida, veja [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/pt/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) ou [The server returned no safety verdict](https://code.claude.com/docs/pt/errors.md#the-server-returned-no-safety-verdict) para saber o que fazer.397O texto sob a chamada informa se há algo a corrigir. Uma linha esmaecida `Not run · auto mode's check had no usable answer`, ou texto que relata um problema com o próprio classificador, como `Auto mode could not evaluate this action`, significa que Claude Code bloqueou a chamada sem um veredicto do classificador. Para uma linha `Not run`, pressione `Ctrl+O` para ler a mensagem completa e, em seguida, veja [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/pt/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) ou [The server returned no safety verdict](https://code.claude.com/docs/pt/errors.md#the-server-returned-no-safety-verdict) para saber o que fazer.

371 398 

372Caso contrário, uma linha lendo `Denied by auto mode classifier` com um motivo como `[Production Deploy]` ou `Blocked by classifier` significa que o classificador julgou a chamada insegura, então escolha a correção do que a chamada estava tentando alcançar ou fazer:399Caso contrário, uma linha `Blocked by auto mode` significa que o classificador julgou a chamada insegura. Para permitir a chamada, siga o passo que corresponde ao que Claude estava tentando alcançar ou fazer:

373 400 

374* Um destino que Claude precisa durante toda a tarefa, como um registro de pacotes, um domínio interno ou um host de repositório: adicione-o a `autoMode.environment`.401* Um destino que Claude precisa durante toda a tarefa, como um registro de pacotes, um domínio interno ou um host de repositório: adicione-o a `autoMode.environment`.

375* Um comando que você deseja executar sem revisão a partir de agora: adicione uma regra `allow`.402* Um comando que você deseja executar sem revisão a partir de agora: adicione uma regra `allow`.

Details

397* Dados sensíveis enviados a endpoints externos397* Dados sensíveis enviados a endpoints externos

398* Ações que parecem guiadas por conteúdo que Claude leu e não por você398* Ações que parecem guiadas por conteúdo que Claude leu e não por você

399 399 

400Quando ele bloqueia algo, você recebe uma notificação e a ação aparece em **Recently denied** no `/permissions`, onde você pode tentar novamente com uma aprovação manual. Após [três bloqueios seguidos](https://code.claude.com/docs/pt/permission-modes.md#when-auto-mode-falls-back) (ou vinte no total), o modo auto pausa e volta a perguntar a você.400Quando o modo auto bloqueia uma ação, você recebe uma notificação e a ação aparece em **Recently blocked** no `/permissions`, onde você pode [aprovar a ação para que Claude possa tentar novamente](https://code.claude.com/docs/pt/auto-mode-config.md#review-denials). Após [três bloqueios seguidos](https://code.claude.com/docs/pt/permission-modes.md#when-auto-mode-falls-back) (ou vinte no total), o modo auto pausa e volta a perguntar a você.

401 401 

402Nada disso substitui seus controles determinísticos, porque ele é executado *depois* deles. Regras deny e ask e hooks `PreToolUse` se aplicam antes que o classificador veja qualquer coisa, então uma regra deny bloqueia no modo auto exatamente como em qualquer outro lugar. O sandbox ainda confina os [comandos de shell que ele envolve](https://code.claude.com/docs/pt/sandboxing.md#what-runs-outside-the-sandbox).402Nada disso substitui seus controles determinísticos, porque ele é executado *depois* deles. Regras deny e ask e hooks `PreToolUse` se aplicam antes que o classificador veja qualquer coisa, então uma regra deny bloqueia no modo auto exatamente como em qualquer outro lugar. O sandbox ainda confina os [comandos de shell que ele envolve](https://code.claude.com/docs/pt/sandboxing.md#what-runs-outside-the-sandbox).

403 403 

Details

30A [visão geral do gateway](https://code.claude.com/docs/pt/gateways.md) cobre o que um gateway faz e por que você executaria um. Claude apps gateway é o próprio gateway da Anthropic, integrado ao binário `claude` e testado junto com cada lançamento do Claude Code, então encaminha os valores de `anthropic-beta` e os campos de requisição que Claude Code envia sem que os operadores precisem manter uma allowlist separada. Uma vez implantado, ele oferece:30A [visão geral do gateway](https://code.claude.com/docs/pt/gateways.md) cobre o que um gateway faz e por que você executaria um. Claude apps gateway é o próprio gateway da Anthropic, integrado ao binário `claude` e testado junto com cada lançamento do Claude Code, então encaminha os valores de `anthropic-beta` e os campos de requisição que Claude Code envia sem que os operadores precisem manter uma allowlist separada. Uma vez implantado, ele oferece:

31 31 

32* **Credenciais**: a chave de API upstream ou credencial de nuvem vive apenas em sua infraestrutura. Os desenvolvedores se autenticam com SSO corporativo e recebem tokens de portador de curta duração, então o offboarding acontece em seu IdP. Desprovisione um usuário e seu acesso ao gateway expira dentro do tempo de vida da sessão, uma hora por padrão.32* **Credenciais**: a chave de API upstream ou credencial de nuvem vive apenas em sua infraestrutura. Os desenvolvedores se autenticam com SSO corporativo e recebem tokens de portador de curta duração, então o offboarding acontece em seu IdP. Desprovisione um usuário e seu acesso ao gateway expira dentro do tempo de vida da sessão, uma hora por padrão.

33* **Controle de acesso**: seus grupos IdP mapeiam para listas de permissões de modelos e políticas de [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md). O gateway aplica acesso a modelos no lado do servidor, rejeitando solicitações para modelos não concedidos, e seleciona a política de configurações gerenciadas de cada grupo, que a CLI aplica no [nível de configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#settings-precedence). Diferentes equipes obtêm diferentes modelos, ferramentas e permissões, e um desenvolvedor não pode substituir o que sua política bloqueia.33* **Controle de acesso**: seus grupos IdP mapeiam para allowlists de modelos, políticas de [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md) e [upstreams](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#send-each-team-to-its-own-upstream). O gateway aplica acesso a modelos no lado do servidor, rejeitando requisições para modelos não concedidos, e seleciona a política de configurações gerenciadas de cada grupo, que a CLI aplica no [nível de configurações gerenciadas](https://code.claude.com/docs/pt/settings.md#settings-precedence). Diferentes equipes obtêm diferentes modelos, ferramentas e permissões, e um desenvolvedor não pode sobrescrever o que sua política bloqueia.

34* **Entrega de configurações**: o gateway entrega configurações gerenciadas para clientes conectados, assumindo o lugar das [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md) do console administrativo claude.ai.34* **Entrega de configurações**: o gateway entrega configurações gerenciadas para clientes conectados, assumindo o lugar das [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md) do console administrativo claude.ai.

35* **Telemetria**: cada destino configurado recebe [métricas do OpenTelemetry Protocol (OTLP)](https://code.claude.com/docs/pt/monitoring-usage.md) com contagens de tokens, modelo, identidade do usuário e latência por padrão, com logs e rastreamentos como opt-ins por destino.35* **Telemetria**: cada destino configurado recebe [métricas do OpenTelemetry Protocol (OTLP)](https://code.claude.com/docs/pt/monitoring-usage.md) com contagens de tokens, modelo, identidade do usuário e latência por padrão, com logs e rastreamentos como opt-ins por destino.

36* **Roteamento upstream**: os clientes falam a API de Mensagens Anthropic para o gateway, e o gateway traduz para cada upstream, seja Amazon Bedrock, [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md), Agent Platform do Google Cloud, Microsoft Foundry ou a API Anthropic, com failover entre eles. Você pode alterar regiões, provedores ou ordem de failover sem que os desenvolvedores notem ou reconfiguram.36* **Roteamento upstream**: os clientes falam a API de Mensagens Anthropic para o gateway, e o gateway traduz para cada upstream, seja Amazon Bedrock, [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md), Agent Platform do Google Cloud, Microsoft Foundry ou a API Anthropic, com failover entre eles. Você pode alterar regiões, provedores ou ordem de failover sem que os desenvolvedores notem ou reconfiguram.

Details

50 50 

51### `listen`51### `listen`

52 52 

53O 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.53O bloco `listen` controla onde o gateway atende: o endereço e a porta de bind, a origem visível externamente e a terminação TLS opcional.

54 54 

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

56| - | - | - |56| - | - | - |

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

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

59| `public_url` | A menos que `host` seja loopback | A origem `https://` visível externamente, usada para construir o `redirect_uri` do IdP e metadados de descoberta. Obrigatório sempre que `host` não for um endereço de loopback, seja TLS terminado em um proxy como um ALB, Ingress ou Cloud Run ou no próprio gateway através de `tls`, porque o gateway nunca deriva sua própria origem de cabeçalhos `X-Forwarded-*`; eles são falsificáveis pelo cliente. Falha na inicialização sem ele. `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. |59| `public_url` | A menos que `host` seja loopback | A origem `https://` visível externamente, usada para montar o `redirect_uri` do IdP e os metadados de descoberta. Obrigatório sempre que `host` não for um endereço de loopback, seja o TLS terminado em um proxy como um ALB, Ingress ou Cloud Run, seja no próprio gateway por meio de `tls`, porque o gateway nunca deriva sua própria origem dos cabeçalhos `X-Forwarded-*`; eles podem ser falsificados pelo cliente. A inicialização falha sem ele. `trusted_proxies`, abaixo, rege apenas a resolução do IP do cliente. Também é obrigatório para ativar a [telemetria](#telemetry), porque o gateway monta a partir desta URL o endpoint OTLP que envia aos clientes. |

60| `tls.cert` / `tls.key` | Não | Caminhos PEM se o gateway termina TLS por si mesmo |60| `tls.cert` / `tls.key` | Não | Caminhos PEM, caso o próprio gateway termine o TLS |

61| `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 rate limiting por IP e auditoria. Equivalente ao nginx `set_real_ip_from`. Entradas `X-Forwarded-For` escritas como `ipv4:port` ou `[ipv6]:port`, como alguns balanceadores de carga fazem, são lidas com a porta descartada. Um endereço IPv6 com uma porta anexada e sem colchetes pode ser lido como um endereço diferente ou não ser lido, portanto desative a opção de porta em qualquer proxy que escreva esse formulário. |61| `trusted_proxies` | Não | CIDRs ou IPs dos balanceadores de carga à frente do gateway. Quando definido, o gateway confia em `X-Forwarded-For` somente vindo desses pares e registra o IP real do cliente para rate limiting por IP e auditoria. Equivalente ao `set_real_ip_from` do nginx. Entradas de `X-Forwarded-For` escritas como `ipv4:port` ou `[ipv6]:port`, como alguns balanceadores de carga fazem, são lidas descartando a porta. Um endereço IPv6 com uma porta anexada e sem colchetes pode ser lido como um endereço diferente ou nem ser lido, então desative a opção de porta em qualquer proxy que escreva nesse formato. |

62 62 

63### `oidc`63### `oidc`

64 64 

65O 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.65O bloco `oidc` conecta o gateway ao seu provedor de identidade e decide quem pode fazer login. Ele nomeia o emissor e o cliente OAuth, mapeia as claims que carregam e-mail e grupos e restringe o login por domínio de e-mail ou grupo.

66 66 

67OpenID Connect (OIDC) é o protocolo SSO que o gateway usa com seu provedor de identidade; consulte [Configuração do provedor de identidade](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#identity-provider-setup) para saber o que registrar no lado do IdP.67OpenID Connect (OIDC) é o protocolo de SSO que o gateway usa com seu provedor de identidade; consulte [Configuração do provedor de identidade](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#identity-provider-setup) para saber o que registrar no lado do IdP.

68 68 

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

70| - | - | - |70| - | - | - |

71| `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](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary) a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esteja definido no ambiente do gateway. |71| `issuer` | Sim | Base de descoberta OIDC. Deve servir a 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 contra SSRF](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary), a menos que `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` esteja definido no ambiente do gateway. |

72| `client_id` | Sim | Do seu registro de cliente OAuth |72| `client_id` | Sim | Do registro do seu cliente OAuth |

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

74| `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. |74| `allowed_email_domains` | Não | Rejeita id\_tokens cuja claim `email` não esteja em um desses domínios, sem diferenciar maiúsculas de minúsculas. Defesa em profundidade contra configuração incorreta de IdP multi-tenant. Independentemente desta configuração, um id\_token cuja claim `email_verified` seja explicitamente `false` é sempre rejeitado. |

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

76| `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. |76| `groups_claim` | Não | Qual claim do id\_token carrega a associação a grupos. Padrão `groups`. O Microsoft Entra emite app roles sob `roles`. Aceita uma chave simples ou um JSON Pointer RFC 6901 como `/resource_access/gateway/roles` para claims aninhadas. |

77| `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. |77| `google_groups` | Não | Consulta os grupos do usuário conectado por meio da Directory API do Google Workspace Admin SDK, porque o id\_token do Google não carrega claim de grupos. Defina `service_account_json_path` como 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` como um administrador do Workspace que a conta de serviço personifica; a Directory API exige um sujeito administrador real. Os endereços de e-mail dos grupos de cada usuário se tornam sua claim de grupos, então `allowed_groups` e `managed.policies.match.groups` fazem a correspondência por e-mails de grupo. |

78| `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. |78| `email_claim` | Não | Qual claim do id\_token carrega o e-mail do usuário. Padrão `email`. Alguns IdPs, como ADFS e Entra B2C, emitem `upn` ou `preferred_username` em vez disso. Aceita uma chave simples, um JSON Pointer ou uma lista de chaves de fallback em que a primeira chave presente é usada. |

79| `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](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#identity-provider-setup) para receitas de escopo por IdP, como o fluxo de token de atualização do Google. |79| `scopes` | Não | Sobrescrita completa dos escopos OIDC que o gateway solicita. Padrão `[openid, profile, email, offline_access]`. Defina quando seu IdP rejeitar escopos que não reconhece ou exigir um escopo personalizado para emitir grupos ou e-mail. Deve incluir `openid`. Remover `offline_access` desativa os refresh tokens, de modo que os desenvolvedores refazem o login no navegador a cada `session.ttl_hours`. Consulte [Configuração do provedor de identidade](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#identity-provider-setup) para receitas de escopo por IdP, como o fluxo de refresh token do Google. |

80| `scope_on_refresh` | Não | Também envie `scope`, com a mesma lista que a solicitação de login, quando o gateway troca um token de atualização. Padrão `false`: a solicitação de atualização omite `scope`. A maioria dos IdPs retorna um id\_token em cada atualização e não precisa disso. Defina `true` quando seu IdP retorna um id\_token na atualização apenas se solicitado `openid` novamente, que Okta documenta para sua concessão de atualização. Sem um id\_token, cada atualização depende do endpoint userinfo do IdP aceitar o token de acesso atualizado. Se você controlar o login ou corresponder políticas em grupos e o id\_token de atualização do seu IdP os omitir, também defina `userinfo_fallback: true` para que o gateway os preencha a partir do endpoint userinfo. Um IdP que concedeu menos escopos do que solicitado pode rejeitar a atualização com `invalid_scope`, incluindo para sessões existentes se você adicionar entradas a `scopes` enquanto isso estiver ativado. Desdefina a chave se as atualizações começarem a falhar em `token_endpoint` depois que você a definir. Requer Claude Code v2.1.260 ou posterior no servidor gateway. |80| `scope_on_refresh` | Não | Também envia `scope`, com a mesma lista da requisição de login, quando o gateway troca um refresh token. Padrão `false`: a requisição de refresh omite `scope`. A maioria dos IdPs retorna um id\_token em todo refresh e não precisa disso. Defina `true` quando seu IdP retornar um id\_token no refresh somente se `openid` for solicitado novamente, o que a Okta documenta para seu grant de refresh. Sem um id\_token, todo refresh depende de o endpoint userinfo do IdP aceitar o access token renovado. Se você condiciona o login ou a correspondência de políticas a grupos e o id\_token do refresh do seu IdP os omite, defina também `userinfo_fallback: true` para que o gateway os preencha a partir do endpoint userinfo. Um IdP que concedeu menos escopos do que os solicitados pode rejeitar o refresh com `invalid_scope`, inclusive para sessões existentes, se você adicionar entradas a `scopes` enquanto isto estiver ativado. Remova a chave se os refreshes começarem a falhar em `token_endpoint` depois que você a definir. Requer Claude Code v2.1.260 ou posterior no servidor do gateway. |

81| `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`. |81| `extra_auth_params` | Não | Parâmetros de query extras anexados à requisição de autorização do IdP, literalmente. Este é o mecanismo de sobrescrita para comportamentos específicos de IdP, como `access_type: offline` para refresh tokens do Google, `domain_hint` para alguns tenants do Entra ou `acr_values` para fluxos de step-up. Não pode sobrescrever os parâmetros de protocolo gerenciados pelo gateway: `state`, `nonce`, `redirect_uri`, PKCE, `scope`, `response_type`, `response_mode` e `client_id`. |

82| `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`. |82| `userinfo_fallback` | Não | Quando o id\_token omite e-mail ou grupos, busca-os em `/userinfo`. Necessário para access tokens leves do Keycloak, o org server da Okta e tokens mínimos do ADFS. O id\_token permanece autoritativo; o userinfo apenas preenche lacunas. Padrão `false`. |

83| `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. |83| `use_pkce` | Não | Envia um desafio PKCE (S256) na requisição de autorização. Padrão `true`. Defina `false` somente se seu IdP rejeitar PKCE para este cliente confidencial. |

84| `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. |84| `clock_skew_seconds` | Não | Tolera desvio de relógio ao validar as claims de tempo do id\_token. Padrão `0`, que é estrito. Aumente se você vir erros de "token expirado / ainda não válido" logo após o login devido a desvio de relógio entre o host e o IdP. |

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

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

87| `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. |87| `id_token_signed_response_alg` | Não | Algoritmo de assinatura esperado do id\_token. Padrão `RS256`. Defina para IdPs que assinam com ES256, PS256 ou EdDSA. |

88| `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 |88| `additional_authorized_parties` | Não | Valores `azp` extras a aceitar além de `client_id`, para fluxos de broker e token-exchange do Keycloak |

89| `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/`. |89| `discovery_url` | Não | Busca o documento de descoberta nesta 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/`. |

90| `use_proxy` | Não | Envie as próprias solicitações do IdP do gateway através do proxy de encaminhamento em `HTTPS_PROXY` ou `HTTP_PROXY`, honrando `NO_PROXY`. `false` mantém essas solicitações diretas. Requer v2.1.227 ou posterior; consulte [Solicitações do IdP através de um proxy de encaminhamento](#idp-requests-through-a-forward-proxy) abaixo. |90| `use_proxy` | Não | Envia as próprias requisições do gateway ao IdP pelo proxy de encaminhamento em `HTTPS_PROXY` ou `HTTP_PROXY`, respeitando `NO_PROXY`. `false` mantém essas requisições diretas. Requer v2.1.227 ou posterior; consulte [Requisições ao IdP por um proxy de encaminhamento](#idp-requests-through-a-forward-proxy) abaixo. |

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. |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 do `authorization_endpoint` descoberto, mas o Chrome aplica `form-action` a toda a cadeia de redirecionamento. Se seu IdP redireciona por um segundo host, como Azure AD federado ao ADFS, Okta hub-spoke ou um interceptador de SSO corporativo, liste todas as origens pelas quais a requisição de autorização pode ser redirecionada. |

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

93 93 

94#### Autenticação de cliente por certificado94#### Autenticação de cliente por certificado

95 95 

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

97 97 

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

99 99 

100**1. Crie a chave e o certificado**100**1. Crie a chave e o certificado**

101 101 

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

103 103 

104```bash theme={null}104```bash theme={null}

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

106```106```

107 107 

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

109 109 

110**2. Envie o certificado para o IdP**110**2. Envie o certificado ao IdP**

111 111 

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

113 113 

114**3. Adicione a chave e o certificado ao gateway.yaml**114**3. Adicione a chave e o certificado ao gateway.yaml**

115 115 

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

117 117 

118```yaml theme={null}118```yaml theme={null}

119oidc:119oidc:


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

126```126```

127 127 

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

129 129 

130**4. Reinicie o gateway e verifique o log de inicialização**130**4. Reinicie o gateway e verifique o log de inicialização**

131 131 


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

136```136```

137 137 

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

139 139 

140#### Rotacionar o certificado do cliente140#### Rotacionar o certificado do cliente

141 141 

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

143 143 

1441. Envie o novo certificado para o IdP junto com o antigo.1441. Envie o novo certificado ao IdP junto com o antigo.

1452. Substitua os arquivos de chave e certificado que o `gateway.yaml` carrega e, em seguida, reinicie o gateway. Se você executa várias réplicas, uma [reinicialização gradual](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#upgrades) funciona, porque o IdP tem ambos os certificados até que você remova o antigo.1452. Substitua os arquivos de chave e certificado que o `gateway.yaml` carrega e reinicie o gateway. Se você executa várias réplicas, uma [reinicialização gradual](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#upgrades) funciona, porque o IdP tem os dois certificados até que você remova o antigo.

1463. Depois que todas as réplicas tiverem reiniciado, remova o certificado antigo do IdP.1463. Depois que todas as réplicas tiverem reiniciado, remova o certificado antigo do IdP.

147 147 

148#### Solicitações do IdP através de um proxy de encaminhamento148#### Requisições ao IdP por um proxy de encaminhamento

149 149 

150Os upstreams de inferência honram `HTTPS_PROXY` e `HTTP_PROXY` em cada versão. As próprias solicitações do gateway para o IdP, descoberta, JWKS, token e userinfo, vão diretas a menos que você defina `oidc.use_proxy: true`, que requer v2.1.227 ou posterior. Quando uma variável de proxy está definida, `use_proxy` está indefinido e o emissor não é coberto por `NO_PROXY`, o gateway mantém essas solicitações diretas e registra um aviso na inicialização pedindo que você escolha; `use_proxy: false` as mantém diretas e silencia o aviso.150Os upstreams de inferência respeitam `HTTPS_PROXY` e `HTTP_PROXY` em todas as versões. As próprias requisições do gateway ao IdP, de descoberta, JWKS, token e userinfo, vão diretamente, a menos que você defina `oidc.use_proxy: true`, o que requer v2.1.227 ou posterior. Quando uma variável de proxy está definida, `use_proxy` não está definido e o emissor não está coberto por `NO_PROXY`, o gateway mantém essas requisições diretas e registra um aviso na inicialização pedindo que você escolha; `use_proxy: false` as mantém diretas e silencia o aviso.

151 151 

152Com `use_proxy: true`, o pod resolve o nome do host de cada endpoint do IdP e pede ao proxy para `CONNECT` ao endereço IP resolvido, portanto o proxy deve aceitar `CONNECT` ao endereço IP de cada host que o documento de descoberta nomeia, não apenas o emissor. Use uma URL de proxy `http://`. `ca_cert_pem` e a [proteção SSRF](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary) se aplicam no caminho proxied também.152Com `use_proxy: true`, o pod resolve ele mesmo o hostname de cada endpoint do IdP e pede ao proxy que faça `CONNECT` ao endereço IP resolvido, então o proxy deve aceitar `CONNECT` ao endereço IP de todos os hosts que o documento de descoberta nomeia, não apenas ao do emissor. Use uma URL de proxy `http://`. `ca_cert_pem` e a [proteção contra SSRF](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary) também se aplicam ao caminho via proxy.

153 153 

154[Egresso apenas proxy](#proxy-only-egress) muda ambos: enquanto estiver ativo, solicitações do IdP seguem o proxy a menos que você defina `use_proxy: false`, e o gateway entrega ao proxy cada nome do host do IdP sem resolvê-lo primeiro.154A [saída somente por proxy](#proxy-only-egress) muda ambos os pontos: enquanto ela está ativa, as requisições ao IdP seguem o proxy, a menos que você defina `use_proxy: false`, e o gateway entrega ao proxy cada hostname do IdP sem resolvê-lo antes.

155 155 

156#### Egresso apenas proxy156#### Saída somente por proxy

157 157 

158Defina `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` no ambiente do gateway, ao lado de `HTTPS_PROXY`, quando o pod alcança outros hosts apenas através desse proxy de encaminhamento e não pode resolver nomes DNS públicos por si mesmo, ou quando o proxy recusa `CONNECT` a um endereço IP. Requer v2.1.277 ou posterior. É uma variável de ambiente em vez de uma chave `gateway.yaml` para que nada no arquivo de configuração possa relaxar a verificação de endereço do gateway.158Defina `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` no ambiente do gateway, ao lado de `HTTPS_PROXY`, quando o pod alcança outros hosts somente por esse proxy de encaminhamento e não consegue resolver nomes DNS públicos por conta própria, ou quando o proxy recusa `CONNECT` a um endereço IP. Requer v2.1.277 ou posterior. É uma variável de ambiente em vez de uma chave do `gateway.yaml` para que nada no arquivo de configuração possa relaxar a verificação de endereços do gateway.

159 159 

160```bash theme={null}160```bash theme={null}

161export HTTPS_PROXY=http://proxy.corp.example.com:3128161export HTTPS_PROXY=http://proxy.corp.example.com:3128


164export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1164export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1

165```165```

166 166 

167O gateway registra uma linha `network:` na inicialização enquanto o egresso apenas proxy está ativo.167O gateway registra uma linha `network:` na inicialização enquanto a saída somente por proxy está ativa.

168 168 

169Cada linha abaixo é uma classe de solicitação de saída em um gateway com `HTTPS_PROXY` definido, por padrão e enquanto o egresso apenas proxy está ativo.169Cada linha abaixo é uma classe de requisição de saída em um gateway com `HTTPS_PROXY` definido, por padrão e enquanto a saída somente por proxy está ativa.

170 170 

171| Solicitação de saída | Padrão | Egresso apenas proxy ativo |171| Requisição de saída | Padrão | Saída somente por proxy ativa |

172| - | - | - |172| - | - | - |

173| Upstreams `provider: anthropic`, troca de token de Workload Identity Federation, exportações `telemetry.forward_to` | Resolvido e verificado localmente, depois `CONNECT` ao endereço IP verificado através do proxy. Um coletor de telemetria listado em `NO_PROXY` é alcançado diretamente em vez disso | Nome do host entregue ao proxy |173| Upstreams `provider: anthropic`, troca de token do Workload Identity Federation, exportações de `telemetry.forward_to` | Resolvido e verificado localmente, depois `CONNECT` ao endereço IP verificado pelo proxy. Um coletor de telemetria listado em `NO_PROXY` é alcançado diretamente | Hostname entregue ao proxy |

174| Descoberta do IdP, JWKS, token e userinfo | Direto a menos que [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy), depois `CONNECT` ao endereço IP verificado | Nome do host entregue ao proxy, a menos que `oidc.use_proxy: false` mantenha um IdP interno direto |174| Descoberta, JWKS, token e userinfo do IdP | Direto, a menos que [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy), quando então `CONNECT` ao endereço IP verificado | Hostname entregue ao proxy, a menos que `oidc.use_proxy: false` mantenha um IdP interno direto |

175| Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e upstreams Microsoft Foundry; procuras de grupo do Google | Nome do host entregue ao proxy | Inalterado |175| Upstreams Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft Foundry; consultas de grupos do Google | Hostname entregue ao proxy | Inalterado |

176 176 

177O egresso apenas proxy permanece desativado a menos que o ambiente do gateway atenda a todas as três dessas condições:177A saída somente por proxy permanece desativada, a menos que o ambiente do gateway atenda a todas estas três condições:

178 178 

179* `HTTPS_PROXY` ou `HTTP_PROXY` está definido.179* `HTTPS_PROXY` ou `HTTP_PROXY` está definido.

180* `NO_PROXY` e `no_proxy` estão vazios. Se sua plataforma injeta um deles em pods, defina ambos para um valor vazio no contêiner do gateway. Listar um coletor de telemetria em `NO_PROXY` mantém o egresso apenas proxy desativado.180* `NO_PROXY` e `no_proxy` estão vazios. Se sua plataforma injeta qualquer um deles nos pods, defina ambos com um valor vazio no contêiner do gateway. Listar um coletor de telemetria em `NO_PROXY` mantém a saída somente por proxy desativada.

181* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` não está ativado. Um coletor ou IdP no próprio loopback do pod não pode ser combinado com egresso apenas proxy, porque um endereço de loopback entregue ao proxy seria o próprio do host proxy, portanto dê a esses serviços um endereço que o proxy possa alcançar em vez disso. Pela mesma razão, o gateway recusa nomes de estilo `localhost` completamente enquanto o egresso apenas proxy está ativo.181* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` não está ativado. Um coletor ou IdP no próprio loopback do pod não pode ser combinado com a saída somente por proxy, porque um endereço de loopback entregue ao proxy seria o do próprio host do proxy; então dê a esses serviços um endereço que o proxy consiga alcançar. Pelo mesmo motivo, o gateway recusa de imediato nomes no estilo `localhost` enquanto a saída somente por proxy está ativa.

182 182 

183Quando uma dessas condições não é atendida, o gateway registra um aviso na inicialização nomeando a variável que a impediu e mantém o comportamento padrão.183Quando uma dessas condições não é atendida, o gateway registra um aviso na inicialização nomeando a variável que a impediu e mantém o comportamento padrão.

184 184 

185Uma vez que o egresso apenas proxy está ativo, permita cada destino no proxy, incluindo um coletor interno e qualquer host configurado por endereço IP. Você ainda pode manter um IdP interno direto com [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy).185Depois que a saída somente por proxy estiver ativa, permita no proxy todos os destinos, incluindo um coletor interno e qualquer host configurado por endereço IP. Você ainda pode manter um IdP interno direto com [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy).

186 186 

187> [!WARNING]187> [!WARNING]

188>188>

189> Ative isso apenas quando a allowlist do proxy for pelo menos tão rigorosa quanto a verificação do próprio gateway. O proxy deve recusar endpoints de metadados de nuvem como `169.254.169.254` e `metadata.google.internal`, endereços link-local e o próprio loopback do host proxy, e deve recusá-los pelo endereço que um nome resolve, não apenas pelo nome, porque o gateway não captura mais um nome do host que resolve para um deles. Um proxy que se conecta em qualquer lugar que é solicitado remove a [proteção SSRF](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary) do gateway para essas solicitações.189> Ative isto somente quando a allowlist do proxy for pelo menos tão estrita quanto a própria verificação do gateway. O proxy deve recusar endpoints de metadados de nuvem como `169.254.169.254` e `metadata.google.internal`, endereços link-local e o próprio loopback do host do proxy, e deve recusá-los pelo endereço para o qual um nome é resolvido, não apenas pelo nome, porque o gateway não detecta mais um hostname que resolve para um deles. Um proxy que se conecta a qualquer lugar solicitado remove a [proteção contra SSRF](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#threat-model-summary) do gateway para essas requisições.

190 190 

191### `session`191### `session`

192 192 

193O 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.193O bloco `session` define os bearer tokens que o gateway emite após o login: o segredo que os assina e por quanto tempo eles duram.

194 194 

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

196| - | - | - |196| - | - | - |

197| `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. |197| `jwt_secret` | Sim | Pelo menos 32 bytes de entropia, por exemplo de `openssl rand -base64 32`. Assina os bearer tokens HS256 do gateway. Aceita uma única string ou um array para rotação: o índice 0 assina e todas as entradas verificam. Para rotacionar, adicione um novo segredo no início, aguarde `ttl_hours` e depois remova o antigo. |

198| `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. |198| `ttl_hours` | Não | Tempo de vida do bearer token do gateway. Padrão `1`. A CLI renova silenciosamente antes da expiração quando o IdP emite refresh tokens. Um tempo de vida menor revoga o acesso mais rápido; um maior faz menos idas e voltas ao IdP. Se seu IdP não pode emitir refresh tokens porque `offline_access` não está disponível, não há renovação silenciosa, então aumente para `8` ou `12` para evitar mandar os desenvolvedores de volta ao login no navegador a cada hora. |

199 199 

200### `store`200### `store`

201 201 

202O bloco `store` aponta o gateway para seu banco de dados PostgreSQL, que contém concessões de dispositivo e contadores de rate limit.202O bloco `store` aponta o gateway para seu banco de dados PostgreSQL, que armazena os device grants e os contadores de rate limit.

203 203 

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

205| - | - | - |205| - | - | - |

206| `postgres_url` | Sim | URL `postgres://` ou `postgresql://` com um único host, não uma lista separada por vírgulas. O gateway executa suas próprias migrações de esquema na inicialização e na atualização, portanto a função precisa de direitos para criar e alterar tabelas no esquema de destino. Consulte [Atualizações](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#upgrades) e [Postgres](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#postgres). |206| `postgres_url` | Sim | URL `postgres://` ou `postgresql://` com um único host, não uma lista separada por vírgulas. O gateway executa suas próprias migrações de esquema na inicialização e na atualização, então a role precisa de direitos para criar e alterar tabelas no esquema de destino. Consulte [Atualizações](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#upgrades) e [Postgres](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#postgres). |

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

208| `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. |208| `password` | Não | Credencial do banco de dados. Defina-a aqui em vez de em `postgres_url` para que a credencial fique fora da URL. Aceita quaisquer caracteres e tem precedência sobre as credenciais da URL. |

209| `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 gateway faz algumas operações de banco de dados por requisição de inferência, portanto aumente-o para um banco de dados dedicado sob carga, dentro do que [Dimensionar o pool de conexões](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#size-the-connection-pool) permite. |209| `max_connections` | Não | Tamanho do pool de conexões do Postgres por réplica. Padrão `5`, que é conservador e adequado a bancos de dados compartilhados. Com [limites de gasto](#admin) ativados, o gateway faz algumas operações de banco de dados por requisição de inferência, então aumente-o para um banco de dados dedicado sob carga, dentro do que [Dimensionar o pool de conexões](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#size-the-connection-pool) permite. |

210| `connect_timeout_seconds` | Não | Segundos que o gateway aguarda quando abre uma conexão Postgres. Um número inteiro de `1` a `60`, padrão `5`. Aumente se as tentativas de conexão expirem quando uma nova instância do gateway inicia. Requer Claude Code v2.1.274 ou posterior no servidor gateway. Versões anteriores recusam iniciar quando a chave está definida. |210| `connect_timeout_seconds` | Não | Segundos que o gateway aguarda ao abrir uma conexão com o Postgres. Um número inteiro de `1` a `60`, padrão `5`. Aumente-o se as tentativas de conexão atingirem o timeout quando uma nova instância do gateway inicia. Requer Claude Code v2.1.274 ou posterior no servidor do gateway. Versões anteriores se recusam a iniciar quando a chave está definida. |

211| `readiness_grace_seconds` | Não | Quantos segundos `/readyz` continua relatando pronto depois que o Postgres para de responder. Um número inteiro de `0` a `3600`, padrão `0`. Consulte [Comportamento durante interrupções](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#outage-behavior) para saber como escolher um valor. Requer Claude Code v2.1.282 ou posterior no servidor gateway. Versões anteriores recusam iniciar quando a chave está definida. |211| `readiness_grace_seconds` | Não | Por quantos segundos `/readyz` continua informando estar pronto depois que o Postgres para de responder. Um número inteiro de `0` a `3600`, padrão `0`. Consulte [Comportamento durante interrupções](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#outage-behavior) para saber como escolher um valor. Requer Claude Code v2.1.282 ou posterior no servidor do gateway. Versões anteriores se recusam a iniciar quando a chave está definida. |

212 212 

213Para 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`.213Para 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`.

214 214 

215### `upstreams`215### `upstreams`

216 216 

217`upstreams` é uma lista ordenada. O gateway encaminha inferência para o primeiro upstream que resolve o modelo solicitado.217`upstreams` é uma lista ordenada. O gateway encaminha a inferência para o primeiro upstream que resolve o modelo solicitado, ignorando qualquer upstream cuja [lista `groups`](#send-each-team-to-its-own-upstream) deixe o desenvolvedor de fora.

218 218 

219Em `5xx`, `429`, `401`, `403`, `404` ou timeout, o gateway falha para o próximo upstream; outro `4xx` não, porque esses erros são atribuíveis à solicitação em vez do upstream. Um `401` ou `403` significa que o upstream rejeitou a credencial que o gateway usou ou negou acesso a ela, por exemplo, ao modelo solicitado. Um `404` significa que esse upstream não serve o modelo solicitado, portanto um upstream posterior na lista ainda pode.219Em `5xx`, `429`, `401`, `403`, `404` ou timeout, o gateway faz failover para o próximo upstream; outros `4xx` não, porque esses erros são atribuíveis à requisição e não ao upstream. Um `401` ou `403` significa que o upstream rejeitou a credencial que o gateway usou ou negou acesso a ela, por exemplo ao modelo solicitado. Um `404` significa que esse upstream não serve o modelo solicitado, então um upstream posterior na lista ainda pode servi-lo.

220 220 

221Se você definir `forward_user_identity: true` em um upstream, um `429` que ele retorna para uma solicitação que carregava o email do desenvolvedor não falha. Consulte [como uma negação de limite por usuário chega ao desenvolvedor](#per-user-identity-headers-for-a-proxy-you-run).221Se você definir `forward_user_identity: true` em um upstream, um `429` que ele retorna para uma requisição que carregava o e-mail do desenvolvedor não faz failover. Consulte [como uma negação de limite por usuário chega ao desenvolvedor](#per-user-identity-headers-for-a-proxy-you-run).

222 222 

223Failover em `404` requer gateway v2.1.198 ou posterior. Versões anteriores retornavam o primeiro `404` ao cliente mesmo quando um upstream posterior na lista servia o modelo.223O failover em `404` requer gateway v2.1.198 ou posterior. Versões anteriores retornavam o primeiro `404` ao cliente mesmo quando um upstream posterior na lista servia o modelo.

224 224 

225Múltiplos upstreams do mesmo provedor devem definir um `name:` distinto.225Vários upstreams do mesmo provedor devem definir um `name:` distinto.

226 226 

227Clientes Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft 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).227Os clientes de Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft Foundry são criados uma vez na inicialização, e seus SDKs renovam as credenciais internamente, então rotacionar credenciais de nuvem não exige reinicialização. Chaves de API e bearers estáticos da Anthropic são lidos na inicialização; consulte [Anthropic API](#anthropic-api).

228 228 

229#### Mensagens de erro do upstream229#### Mensagens de erro do upstream

230 230 

231O gateway retorna a resposta de erro de um upstream ou seu próprio `502`, dependendo de como os upstreams responderam:231O gateway retorna a resposta de erro de um upstream, ou seu próprio `502`, dependendo de como os upstreams responderam:

232 232 

233* **Um upstream retornou um status no qual o gateway não [falha](#multiple-upstreams)**: essa resposta do upstream. O gateway não tenta mais upstreams.233* **Um upstream retornou um status no qual o gateway não [faz failover](#multiple-upstreams)**: a resposta desse upstream. O gateway não tenta mais nenhum upstream.

234* **Cada upstream que o gateway tentou falhou de uma forma na qual [falha](#multiple-upstreams)**: o último `429`. Quando nenhum retornou um `429`, o gateway prefere, em ordem, o último `401` ou `403`, o último `404` e o último `501`. Quando nenhum retornou nenhum desses, o próprio `502` do gateway, `all upstreams failed (N attempted)`, onde N conta cada entrada em [`upstreams`](#upstreams), incluindo entradas que o gateway pulou porque não servem o modelo solicitado.234* **Todos os upstreams que o gateway tentou falharam de uma forma em que ele [faz failover](#multiple-upstreams)**: o último `429`. Quando nenhum retornou um `429`, o gateway prefere, nesta ordem, o último `401` ou `403`, o último `404` e o último `501`. Quando nenhum retornou nenhum desses, o próprio `502` do gateway, `all upstreams failed (N attempted)`. N conta suas entradas de [`upstreams`](#upstreams), incluindo as ignoradas, menos aquelas cuja lista [`groups`](#send-each-team-to-its-own-upstream) deixa o desenvolvedor de fora.

235 235 

236Quando o gateway retorna a resposta de um upstream, ele mantém o código de status do upstream. Se ele mantém a mensagem do upstream depende do provedor. O corpo de erro de um upstream da API Anthropic chega ao desenvolvedor inalterado.236Quando o gateway retorna a resposta de um upstream, ele mantém o código de status do upstream. Se ele mantém a mensagem do upstream depende do provedor. O corpo de erro de um upstream da Anthropic API chega ao desenvolvedor inalterado.

237 237 

238Os upstreams Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft Foundry podem nomear seus IDs de conta, ARNs de função e IDs de projeto no texto de erro. O gateway registra esse texto completo no [log operacional](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#logs). O que o desenvolvedor vê desses upstreams depende da rejeição:238Os upstreams Amazon Bedrock, Claude Platform on AWS, Agent Platform do Google Cloud e Microsoft Foundry podem citar seus IDs de conta, ARNs de role e IDs de projeto no texto de erro. O gateway registra esse texto completo no [log operacional](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#logs). O que o desenvolvedor vê desses upstreams depende da rejeição:

239 239 

240* `400` ou `413` no envelope de erro padrão da Anthropic: a mensagem do próprio upstream, como `prompt is too long`. Claude Platform on AWS, Agent Platform e Microsoft Foundry retornam esse envelope para rejeições de API de modelo.240* `400` ou `413` no envelope de erro padrão da Anthropic: a própria mensagem do upstream, como `prompt is too long`. Claude Platform on AWS, Agent Platform e Microsoft Foundry retornam esse envelope para rejeições da API do modelo.

241* `400` ou `413` na forma própria do provedor: um token `capability_rejected:`. Quando o gateway não pode classificar a rejeição, `upstream rejected the request` em um `400` ou `request too large for this upstream` em um `413`.241* `400` ou `413` no formato próprio do provedor: um token `capability_rejected:`. Quando o gateway não consegue classificar a rejeição, `upstream rejected the request` em um `400` ou `request too large for this upstream` em um `413`.

242* Qualquer outro status: cópia genérica por status, como `upstream rate limit exceeded` em um `429`.242* Qualquer outro status: texto genérico por status, como `upstream rate limit exceeded` em um `429`.

243 243 

244Por exemplo, o gateway substitui `Input is too long for requested model.` do Amazon Bedrock por `capability_rejected: prompt_too_long`. Claude Code [compacta automaticamente](https://code.claude.com/docs/pt/errors.md#prompt-is-too-long) nesse token, como faz em `prompt is too long`.244Por exemplo, o gateway substitui `Input is too long for requested model.` do Amazon Bedrock por `capability_rejected: prompt_too_long`. O Claude Code [compacta automaticamente](https://code.claude.com/docs/pt/errors.md#prompt-is-too-long) com esse token, como faz com `prompt is too long`.

245 245 

246Manter a mensagem `400` ou `413` de um upstream de nuvem ou substituí-la por um token `capability_rejected:` requer gateway v2.1.233 ou posterior.246Manter a mensagem `400` ou `413` de um upstream de nuvem, ou substituí-la por um token `capability_rejected:`, requer gateway v2.1.233 ou posterior.

247 247 

248#### Anthropic API248#### Anthropic API

249 249 

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

251 251 

252```yaml theme={null}252```yaml theme={null}

253upstreams:253upstreams:

254 - provider: anthropic254 - provider: anthropic

255 auth:255 auth:

256 api_key: ${ANTHROPIC_API_KEY}256 api_key: ${ANTHROPIC_API_KEY}

257 # OU um portador OAuth (por exemplo, um token trocado por Workload-Identity-Federation):257 # OR an OAuth bearer (e.g. a Workload-Identity-Federation-exchanged token):

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

259 # base_url: https://api.anthropic.com # padrão; substitua por um proxy de encaminhamento259 # base_url: https://api.anthropic.com # default; override for a forward proxy

260```260```

261 261 

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

263 263 

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

265* **`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.265* **`oauth_token`**: envia `Authorization: Bearer`. Use a forma bearer quando sua organização emite tokens de curta duração em vez de chaves de API de longa duração. O bearer é lido uma vez na inicialização, então renove-o remontando o segredo e reiniciando.

266 266 

267Em 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.267Em vez de uma chave ou bearer estático, você pode usar o Workload Identity Federation. Crie uma regra de federação seguindo o [guia do Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) e depois monte o JWT OIDC da sua carga de trabalho como um arquivo, como um token projetado de conta de serviço do Kubernetes ou o id-token de uma plataforma de CI. O gateway troca o JWT por um bearer de curta duração e o renova automaticamente. O arquivo de token é relido a cada troca, então tokens projetados rotacionados são captados sem reinicialização.

268 268 

269```yaml theme={null}269```yaml theme={null}

270upstreams:270upstreams:


273 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}273 federation_rule_id: ${ANTHROPIC_FEDERATION_RULE_ID}

274 organization_id: ${ANTHROPIC_ORGANIZATION_ID}274 organization_id: ${ANTHROPIC_ORGANIZATION_ID}

275 identity_token_file: /var/run/secrets/anthropic/id-token275 identity_token_file: /var/run/secrets/anthropic/id-token

276 # workspace_id: wrkspc_... # obrigatório se a regra cobre >1 workspace276 # workspace_id: wrkspc_... # required if the rule covers >1 workspace

277 # service_account_id: svac_... # verificação de alvo esperado opcional277 # service_account_id: svac_... # optional expected-target check

278```278```

279 279 

280##### Cabeçalhos de identidade por usuário para um proxy que você executa280##### Cabeçalhos de identidade por usuário para um proxy que você executa

281 281 

282Você pode apontar o `base_url` de um upstream `provider: anthropic` para um proxy que você executa em vez de para a API Anthropic. Para dizer a esse proxy qual desenvolvedor enviou cada solicitação, defina `forward_user_identity: true` nesse upstream. O proxy pode então atribuir gastos por desenvolvedor. Requer um gateway executando Claude Code v2.1.233 ou posterior.282Você pode apontar o `base_url` de um upstream `provider: anthropic` para um proxy que você executa em vez da Anthropic API. Para informar a esse proxy qual desenvolvedor enviou cada requisição, defina `forward_user_identity: true` nesse upstream. O proxy pode então atribuir o gasto por desenvolvedor. Requer um gateway executando Claude Code v2.1.233 ou posterior.

283 283 

284Por exemplo, para um proxy em `upstream-gateway.internal.example.com`:284Por exemplo, para um proxy em `upstream-gateway.internal.example.com`:

285 285 


289 base_url: https://upstream-gateway.internal.example.com289 base_url: https://upstream-gateway.internal.example.com

290 auth:290 auth:

291 api_key: ${PROXY_KEY}291 api_key: ${PROXY_KEY}

292 forward_user_identity: true # padrão false292 forward_user_identity: true # default false

293```293```

294 294 

295O gateway adiciona esses cabeçalhos a cada solicitação que encaminha para esse upstream.295O gateway adiciona estes cabeçalhos a toda requisição que encaminha a esse upstream.

296 296 

297| Cabeçalho | Valor |297| Cabeçalho | Valor |

298| - | - |298| - | - |

299| `x-litellm-end-user-id` | O email do desenvolvedor, quando o IdP forneceu um. |299| `x-litellm-end-user-id` | O e-mail do desenvolvedor, quando o IdP fornece um. |

300| `x-claude-gateway-user-id` | O assunto do IdP do desenvolvedor, da declaração `sub` do token. |300| `x-claude-gateway-user-id` | O sujeito do desenvolvedor no IdP, da claim `sub` do token. |

301| `x-claude-gateway-user-email` | O email do desenvolvedor, quando o IdP forneceu um. |301| `x-claude-gateway-user-email` | O e-mail do desenvolvedor, quando o IdP fornece um. |

302 302 

303Quando o token do IdP não carrega email, o gateway envia apenas `x-claude-gateway-user-id` e omite os dois cabeçalhos de email. Se seu IdP coloca o email em uma declaração diferente, defina [`oidc.email_claim`](#oidc) para essa declaração.303Quando o token do IdP não carrega e-mail, o gateway envia apenas `x-claude-gateway-user-id` e omite os dois cabeçalhos de e-mail. Se seu IdP coloca o e-mail em uma claim diferente, defina [`oidc.email_claim`](#oidc) como essa claim.

304 304 

305Seu proxy não recebe os [cabeçalhos `x-claude-code-*`](https://code.claude.com/docs/pt/llm-gateway-protocol#request-headers) que o Claude Code envia, como `x-claude-code-session-id`. O gateway não os repassa a nenhum upstream, portanto agrupe as requisições por desenvolvedor com os cabeçalhos da tabela acima.305Seu proxy não recebe os [cabeçalhos `x-claude-code-*`](https://code.claude.com/docs/pt/llm-gateway-protocol#request-headers) que o Claude Code envia, como `x-claude-code-session-id`. O gateway não os repassa a nenhum upstream, então agrupe as requisições por desenvolvedor com os cabeçalhos da tabela acima.

306 306 

307Quando seu proxy responde `429` para uma solicitação que carregava o email do desenvolvedor, o gateway retorna essa resposta ao desenvolvedor como está em vez de falhar para o próximo upstream, portanto seu orçamento por usuário ou rate limit do proxy se mantém. As outras respostas do proxy seguem as [regras de failover](#upstreams) ordinárias. Se o token do IdP de um desenvolvedor não carrega email, o gateway encaminha suas solicitações sem os cabeçalhos de email, portanto um `429` para uma dessas solicitações conta como capacidade de upstream e falha. Antes da v2.1.267 no servidor gateway, cada `429` falhava.307Quando seu proxy responde `429` a uma requisição que carregava o e-mail do desenvolvedor, o gateway retorna essa resposta ao desenvolvedor como está, em vez de fazer failover para o próximo upstream, para que o orçamento ou rate limit por usuário do seu proxy seja mantido. As outras respostas do proxy seguem as [regras de failover](#upstreams) comuns. Se o token do IdP de um desenvolvedor não carrega e-mail, o gateway encaminha as requisições dele sem os cabeçalhos de e-mail, então um `429` para uma dessas requisições conta como capacidade do upstream e faz failover. Antes da v2.1.267 no servidor do gateway, todo `429` fazia failover.

308 308 

309Defina `forward_user_identity` apenas em um upstream cujo `base_url` é um proxy que você opera. O gateway envia emails de desenvolvedor para qualquer servidor que esse `base_url` nomeia. Se o `base_url` for a API Anthropic, que é o padrão, o gateway se recusa a iniciar.309Defina `forward_user_identity` somente em um upstream cujo `base_url` seja um proxy que você opera. O gateway envia os e-mails dos desenvolvedores para qualquer servidor que esse `base_url` nomeie. Se o `base_url` for a Anthropic API, que é o padrão, o gateway se recusa a iniciar.

310 310 

311> [!NOTE]311> [!NOTE]

312>312>

313> Se você definir `forward_user_identity` em um upstream Amazon Bedrock, o gateway encerra na inicialização com `Unrecognized key(s) in object: 'forward_user_identity'`. Se o seu proxy fica na frente do Bedrock, liste-o como um upstream `provider: anthropic` em vez disso. O gateway envia a esse upstream o formato Anthropic Messages, portanto seu proxy precisa [traduzir requisições para o Bedrock](https://code.claude.com/docs/pt/llm-gateway-protocol.md#format-mismatch-with-the-upstream). Para identificar cada desenvolvedor para a AWS em vez disso, consulte [Atribuição de custos AWS por desenvolvedor](#per-developer-aws-cost-attribution).313> Se você definir `forward_user_identity` em um upstream Amazon Bedrock, o gateway encerra na inicialização com `Unrecognized key(s) in object: 'forward_user_identity'`. Se seu proxy fica à frente do Bedrock, liste-o como um upstream `provider: anthropic`. O gateway envia a esse upstream o formato Anthropic Messages, então seu proxy precisa [traduzir as requisições para o Bedrock](https://code.claude.com/docs/pt/llm-gateway-protocol.md#format-mismatch-with-the-upstream). Para identificar cada desenvolvedor para a AWS, consulte [Atribuição de custos da AWS por desenvolvedor](#per-developer-aws-cost-attribution).

314 314 

315#### Amazon Bedrock315#### Amazon Bedrock

316 316 

317Para a implantação Amazon Bedrock do lado do cliente que o gateway substitui ou está na frente, consulte [Claude Code on Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md). O upstream do lado do gateway:317Para a implantação do Amazon Bedrock do lado do cliente que o gateway substitui ou intermedeia, consulte [Claude Code no Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md). O upstream do lado do gateway:

318 318 

319```yaml theme={null}319```yaml theme={null}

320upstreams:320upstreams:

321 - provider: bedrock321 - provider: bedrock

322 region: us-east-1322 region: us-east-1

323 auth: {} # preferido: cadeia de credencial padrão AWS323 auth: {} # preferred: AWS default credential chain

324 # OU credenciais explícitas:324 # OR explicit credentials:

325 # auth:325 # auth:

326 # aws_access_key_id: ${AWS_AKID}326 # aws_access_key_id: ${AWS_AKID}

327 # aws_secret_access_key: ${AWS_SK}327 # aws_secret_access_key: ${AWS_SK}

328 # aws_session_token: ${AWS_ST}328 # aws_session_token: ${AWS_ST}

329 # OU um token de portador da API Bedrock:329 # OR a Bedrock API bearer token:

330 # auth:330 # auth:

331 # aws_bearer_token: ${AWS_BEARER_TOKEN}331 # aws_bearer_token: ${AWS_BEARER_TOKEN}

332 # Substitua o endpoint bedrock-runtime para implantações FIPS ou VPC-endpoint:332 # Override the bedrock-runtime endpoint for FIPS or VPC-endpoint deployments:

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

334```334```

335 335 

336Um 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.336Um bloco `auth` vazio usa a cadeia de credenciais padrão do AWS SDK: variáveis de ambiente, `~/.aws/credentials`, task role do ECS, metadados de instância do EC2 ou IRSA no EKS. Em produção, dê ao pod do gateway uma role do IAM em vez de embutir chaves estáticas em uma imagem de contêiner.

337 337 

338Credenciais explícitas devem ser completas: o gateway falha na inicialização quando `aws_access_key_id` e `aws_secret_access_key` não estão definidos juntos, ou quando `aws_session_token` está definido sem eles. Antes da v2.1.207, um bloco `auth:` parcial passou na validação.338Credenciais explícitas devem estar completas: o gateway falha na inicialização quando `aws_access_key_id` e `aws_secret_access_key` não são definidos juntos, ou quando `aws_session_token` é definido sem eles. Antes da v2.1.207, um bloco `auth:` parcial passava na validação.

339 339 

340| Configuração | Como |340| Configuração | Como |

341| - | - |341| - | - |

342| 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.*`. Também conceda `bedrock:CountTokens` nos ARNs do modelo de fundação. O gateway o usa, sem custo, para contar os tokens de entrada de uma solicitação que o cliente abandonou, portanto [limites de gastos](#admin) permanecem precisos. Sem ele, o gateway recorre a uma solicitação Bedrock de um token para essa contagem. |342| Permissões do IAM | Conceda ao principal do gateway `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` tanto nos ARNs de inference-profile quanto nos ARNs de foundation-model subjacentes. 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.*`. Conceda também `bedrock:CountTokens` nos ARNs de foundation-model. O gateway o usa, sem custo, para contar os tokens de entrada de uma requisição que o cliente abandonou, para que os [limites de gasto](#admin) permaneçam precisos. Sem ele, o gateway recorre a uma requisição de um token ao Bedrock para essa contagem. |

343| Acesso ao modelo | Amazon Bedrock habilita acesso ao modelo por padrão em regiões comerciais. O portão de nível de conta restante é o formulário de caso de uso único da Anthropic: se ninguém em sua conta AWS o enviou, abra o console Amazon Bedrock, selecione um modelo Anthropic do catálogo de modelos e complete o formulário. Consulte [Enviar detalhes de caso de uso](https://code.claude.com/docs/pt/amazon-bedrock.md#1-submit-use-case-details) para o formulário AWS Organizations e as permissões que o remetente precisa. |343| Acesso a modelos | O Amazon Bedrock ativa o acesso a modelos por padrão em regiões comerciais. A barreira restante no nível da conta é o formulário de caso de uso único da Anthropic: se ninguém na sua conta da AWS o enviou, abra o console do Amazon Bedrock, selecione um modelo da Anthropic no Model catalog e preencha o formulário. Consulte [Enviar detalhes do caso de uso](https://code.claude.com/docs/pt/amazon-bedrock.md#1-submit-use-case-details) para o formulário do AWS Organizations e as permissões de que quem o envia precisa. |

344| 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. |344| EKS (IRSA) | Crie uma role do IAM com a política acima e uma política de confiança para o provedor OIDC do seu cluster restrita à 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 detecta. |

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

346| 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}` |346| Qualquer outro lugar | Passe as credenciais pelas variáveis de ambiente `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`, ou defina-as explicitamente em `auth:` com expansão `${VAR}` |

347| 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. |347| Região | `region:` é a região do endpoint da API. Os perfis de inferência entre regiões roteiam pela geografia (EUA, UE, APAC) independentemente de qual você escolher. Para regiões fora dos EUA ou ARNs de provisioned throughput, adicione um bloco [`models:`](#models) com os IDs corretos por upstream. |

348 348 

349##### Aplicar um guardrail do Amazon Bedrock349##### Aplicar um guardrail do Amazon Bedrock

350 350 

351Para aplicar um guardrail do Amazon Bedrock a cada requisição de inferência que o gateway envia através de um upstream Bedrock, adicione um bloco `guardrail` a esse upstream. Requer Claude Code v2.1.281 ou posterior no servidor gateway.351Para aplicar um guardrail do Amazon Bedrock a toda requisição de inferência que o gateway envia por um upstream Bedrock, adicione um bloco `guardrail` a esse upstream. Requer Claude Code v2.1.281 ou posterior no servidor do gateway.

352 352 

353```yaml theme={null}353```yaml theme={null}

354upstreams:354upstreams:


356 region: us-east-1356 region: us-east-1

357 auth: {}357 auth: {}

358 guardrail:358 guardrail:

359 id: gr-abc123 # ID do guardrail ou ARN completo359 id: gr-abc123 # guardrail ID or full ARN

360 version: "1" # um número de versão publicado, ou DRAFT360 version: "1" # a published version number, or DRAFT

361 # mantenha as aspas: um 1 sem aspas falha na inicialização361 # keep the quotes: a bare 1 fails at boot

362```362```

363 363 

364Conceda também `bedrock:ApplyGuardrail` no guardrail ao principal que assina as requisições desse upstream: o principal da AWS do gateway ou, com [`assume_role`](#bedrock-in-another-aws-account), a role nomeada em `role_arn`.

365 

366Defina `guardrail` em todos os upstreams `bedrock` ou em nenhum. O gateway se recusa a iniciar com uma mistura, porque o [failover](#multiple-upstreams) poderia, de outra forma, enviar uma requisição a um upstream Bedrock sem guardrail.

367 

368O guardrail cobre apenas upstreams Bedrock. Se você listar outro provedor em `upstreams`, o gateway envia requisições a esse provedor sem o guardrail, ou se recusa a iniciar se esse provedor for [`mantle`](#amazon-bedrock-mantle-endpoint).

369 

370Quando uma requisição `/v1/messages` cujo corpo carrega um campo `amazon-bedrock-*`, como `amazon-bedrock-guardrailConfig`, chega a um upstream Bedrock com `guardrail` definido, o gateway responde 400 em vez de encaminhá-la.

371 

364> [!WARNING]372> [!WARNING]

365>373>

366> O gateway não suporta input tags de guardrail. Ele não adiciona tags de conteúdo de guarda aos prompts, portanto um filtro de guardrail que o Amazon Bedrock aplica apenas a entradas com tags não é executado no tráfego através do gateway. Para saber quais filtros dependem de input tags, consulte [input tags](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) na documentação do Amazon Bedrock.374> Por padrão, o gateway não adiciona tags de entrada aos prompts, então um filtro de guardrail que o Amazon Bedrock aplica apenas a entradas com tags não é executado no tráfego que passa pelo gateway. Para adicionar as tags, defina [`input_tagging`](#add-guardrail-input-tags). Para saber quais filtros dependem de tags de entrada, consulte [tags de entrada](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) na documentação do Amazon Bedrock.

367 375 

368Também conceda `bedrock:ApplyGuardrail` no guardrail ao principal que assina as requisições desse upstream: o principal AWS do gateway ou, com [`assume_role`](#bedrock-in-another-aws-account), a função nomeada em `role_arn`.376##### Adicionar tags de entrada do guardrail

369 377 

370Defina `guardrail` em todos os upstreams `bedrock` ou em nenhum. O gateway se recusa a iniciar com uma mistura, porque o [failover](#multiple-upstreams) poderia, de outra forma, enviar uma requisição a um upstream Bedrock que não tem guardrail.378Para que o gateway adicione as tags de entrada de que o [filtro de ataques de prompt](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-prompt-attack.html) de um guardrail do Amazon Bedrock precisa, defina `input_tagging` no bloco `guardrail` e reinicie o gateway. Defina o mesmo valor em todos os upstreams `bedrock`, ou o gateway se recusa a iniciar. Requer Claude Code v2.1.316 ou posterior no servidor do gateway. Um gateway em uma versão que não tem a chave encerra na inicialização com `Unrecognized key(s) in object: 'input_tagging'`.

371 379 

372O guardrail cobre apenas upstreams Bedrock. Se você listar outro provedor em `upstreams`, o gateway envia requisições a esse provedor sem o guardrail, ou se recusa a iniciar se esse provedor for [`mantle`](#amazon-bedrock-mantle-endpoint).380> [!WARNING]

381>

382> De acordo com a [documentação do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html), todos os filtros do guardrail param de avaliar conteúdo sem tags quando uma requisição carrega tags de entrada. Teste `input_tagging` em um gateway de teste antes de defini-lo em um que os desenvolvedores usam.

383 

384`input_tagging` aceita um destes valores:

373 385 

374Quando uma requisição `/v1/messages` cujo corpo carrega um campo `amazon-bedrock-*`, como `amazon-bedrock-guardrailConfig`, chega a um upstream Bedrock que tem `guardrail` definido, o gateway responde 400 em vez de encaminhá-la.386| `input_tagging` | Onde o gateway marca o texto | Depois que o guardrail bloqueia um prompt |

387| :- | :- | :- |

388| `last_message` | As mensagens `user` desde a última resposta do Claude | No Claude Code, o próximo prompt pode passar, e o Claude então recebe o prompt bloqueado como parte da conversa |

389| `user_messages` | Mensagens `user` | Prompts posteriores na sessão também podem ser bloqueados, até que o desenvolvedor remova o prompt bloqueado |

390| `all_messages` | Mensagens `user` e `assistant` | Igual a `user_messages` |

391| `all_messages_and_system` | O system prompt e todas as mensagens, incluindo [mensagens de sistema no meio da conversa](https://code.claude.com/docs/pt/llm-gateway-protocol.md#feature-pass-through) | Igual a `user_messages` |

375 392 

376##### Bedrock em outra conta AWS393Com `last_message`, se as mensagens `user` desde a última resposta do Claude não contiverem texto a marcar, o gateway marca as mensagens de sistema no meio da conversa desde essa resposta. Uma chamada de ferramenta conta como resposta.

377 394 

378Defina `assume_role` em um upstream Bedrock e o gateway usa sua própria identidade AWS apenas para chamar `sts:AssumeRole` em uma função que você nomeia, que pode estar em uma conta AWS diferente da do gateway. Cada requisição Bedrock desse upstream é assinada com as credenciais de uma hora que o STS retorna, portanto nenhuma chave de acesso de longa duração cruza contas.395A orientação do Amazon Bedrock para o filtro de ataques de prompt é [marcar a entrada do usuário de modo que o system prompt fique excluído](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-prompt-attack.html). Se você definir `all_messages_and_system`, um filtro que sinalize o próprio system prompt do Claude Code pode bloquear requisições.

396 

397O exemplo abaixo marca o texto em todas as mensagens `user`:

398 

399```yaml theme={null}

400upstreams:

401 - provider: bedrock

402 region: us-east-1

403 auth: {}

404 guardrail:

405 id: gr-abc123

406 version: "1"

407 input_tagging: user_messages

408```

409 

410Mensagens `user` também podem conter texto que o Claude Code adiciona, como [lembretes do sistema](https://code.claude.com/docs/pt/glossary.md#system-reminder), então verifique no gateway de teste se requisições comuns não são bloqueadas.

411 

412Nos testes da Anthropic, uma sessão com tags manteve suas leituras do [cache de prompt](https://code.claude.com/docs/pt/prompt-caching.md) de um prompt para o seguinte, e as tags não adicionaram tokens de entrada.

413 

414##### O que as tags de entrada não cobrem

415 

416Nenhum valor de `input_tagging` impede um desenvolvedor que deliberadamente coloca texto onde nenhuma tag vai. Não conte com o guardrail para avaliar estas partes de uma requisição:

417 

418* **Conteúdo que o gateway não marca**: mensagens que seu valor de `input_tagging` deixa de fora, definições de ferramentas, entradas de chamadas de ferramenta, imagens e PDFs, entre outros. A menos que você defina `all_messages_and_system`, o system prompt também fica sem tags.

419* **Resultados de ferramentas**: contêm o que as ferramentas do Claude retornam, como conteúdo de arquivos e páginas da web. Nos testes da Anthropic, um filtro de palavras não os avaliou, com ou sem tags.

420 

421Se sua conta ou organização da AWS impõe um guardrail, consulte a [documentação do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-enforcements.html) para saber como esse guardrail trata tags de entrada.

422 

423##### Registrar qual filtro do guardrail foi acionado

424 

425Para descobrir qual filtro do guardrail do Amazon Bedrock bloqueou a requisição de um desenvolvedor, defina `guardrail_trace: true` no upstream Bedrock, reinicie o gateway e peça ao desenvolvedor que envie a requisição novamente. Em seguida, encontre o evento `guardrail.trace` da requisição no [log de auditoria](https://code.claude.com/docs/pt/claude-apps-gateway-deploy.md#logs). Requer Claude Code v2.1.314 ou posterior no servidor do gateway. Um gateway anterior se recusa a iniciar quando encontra `guardrail_trace`.

426 

427```yaml theme={null}

428upstreams:

429 - provider: bedrock

430 region: us-east-1

431 auth: {}

432 guardrail:

433 id: gr-abc123

434 version: "1"

435 guardrail_trace: true # default false; beside guardrail, not inside it

436```

437 

438O gateway grava um evento `guardrail.trace`, sem o texto correspondente, quando um filtro é acionado ou a ação do guardrail é `INTERVENED`. Encontre os eventos do desenvolvedor por `email` ou `sub`. Uma requisição com streaming pode produzir vários eventos, e um deles pode ter uma lista `filters` vazia, então leia todos os eventos que têm o mesmo `request_id`:

439 

440| Campo | O que contém |

441| - | - |

442| `request_id` | O ID da requisição |

443| `sub`, `email` | O ID de usuário e o email do desenvolvedor |

444| `upstream` | O upstream de onde veio a resposta |

445| `action` | A ação do guardrail, como `INTERVENED` |

446| `filters` | Os filtros que foram acionados. A lista fica vazia quando a AWS não envia detalhes do filtro |

447| `filters[].side` | `input` ou `output` |

448| `filters[].guardrail` | O ID do guardrail |

449| `filters[].policy` | A política e a lista do Bedrock, como `contentPolicy.filters` ou `sensitiveInformationPolicy.piiEntities` |

450| Outros campos de `filters[]` | Uma entrada também pode carregar campos como `action`, `name`, `type`, `confidence`, `filterStrength`, `score` e `threshold` |

451 

452O evento omite o texto que um filtro encontrou, incluindo o campo `match` do trace do Bedrock. Os desenvolvedores não recebem os dados de trace do Bedrock, porque o gateway os remove de cada resposta, com ou sem streaming.

453 

454Se um cliente enviar um campo `amazon-bedrock-*` no corpo de uma requisição `/v1/messages`, o gateway responde 400 em um upstream que define `guardrail_trace`.

455 

456##### Bedrock em outra conta da AWS

457 

458Defina `assume_role` em um upstream Bedrock e o gateway usa sua própria identidade da AWS apenas para chamar `sts:AssumeRole` em uma role que você nomeia, que pode estar em uma conta da AWS diferente da do gateway. Toda requisição ao Bedrock desse upstream é assinada com as credenciais de uma hora que o STS retorna, então nenhuma chave de acesso de longa duração atravessa contas.

379 459 

380Requer um gateway executando Claude Code v2.1.281 ou posterior. Um gateway anterior se recusa a iniciar quando encontra a chave.460Requer um gateway executando Claude Code v2.1.281 ou posterior. Um gateway anterior se recusa a iniciar quando encontra a chave.

381 461 


384 - name: bedrock-isolated464 - name: bedrock-isolated

385 provider: bedrock465 provider: bedrock

386 region: us-east-1466 region: us-east-1

387 auth: {} # a própria função do gateway: ela apenas chama o STS467 auth: {} # the gateway's own role: it only calls STS

388 assume_role:468 assume_role:

389 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock469 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

390 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # quando a política de confiança da função exige um470 # external_id: ${BEDROCK_ROLE_EXTERNAL_ID} # when the role's trust policy requires one

391```471```

392 472 

393O bloco `assume_role` aceita três chaves:473O bloco `assume_role` aceita três chaves:

394 474 

395| Chave | Significado |475| Chave | Significado |

396| - | - |476| - | - |

397| `role_arn` | A função IAM que o gateway assume, como um ARN `arn:aws:iam::` ou `arn:aws-us-gov:iam::`. Conceda a ela as [permissões do Bedrock](#amazon-bedrock) de que esse upstream precisa, incluindo `bedrock:CountTokens`, além de `bedrock:ApplyGuardrail` quando o upstream define `guardrail`. |477| `role_arn` | A role do IAM que o gateway assume, como um ARN `arn:aws:iam::` ou `arn:aws-us-gov:iam::`. Dê a ela as [permissões do Bedrock](#amazon-bedrock) de que este upstream precisa, incluindo `bedrock:CountTokens`, além de `bedrock:ApplyGuardrail` quando o upstream define `guardrail`. |

398| `external_id` | Opcional. Enviado como o external ID em cada chamada `sts:AssumeRole`. Defina-o quando a política de confiança da função exigir um, e coloque-o entre aspas se for composto apenas de dígitos. |478| `external_id` | Opcional. Enviado como external ID em toda chamada `sts:AssumeRole`. Defina-o quando a política de confiança da role exigir um, e coloque-o entre aspas se for composto só de dígitos. |

399| `session_name` | Opcional. `email` ou `sub` dá a cada desenvolvedor sua própria sessão: consulte [Atribuição de custos AWS por desenvolvedor](#per-developer-aws-cost-attribution). Se não definido, cada requisição usa uma única sessão chamada `claude-apps-gateway`. |479| `session_name` | Opcional. `email` ou `sub` dá a cada desenvolvedor sua própria sessão: consulte [Atribuição de custos da AWS por desenvolvedor](#per-developer-aws-cost-attribution). Se não definido, toda requisição usa uma única sessão chamada `claude-apps-gateway`. |

400 480 

401A política de confiança da função nomeia o próprio principal do gateway, como sua função IRSA ou de tarefa ECS. Esse principal precisa de `sts:AssumeRole` na função e de nenhuma permissão Bedrock própria. Remova o `Condition` se você não definir `external_id`.481A política de confiança da role nomeia o próprio principal do gateway, como sua role IRSA ou task role do ECS. Esse principal precisa de `sts:AssumeRole` na role e de nenhuma permissão própria do Bedrock. Remova a `Condition` se você não definir `external_id`.

402 482 

403```json theme={null}483```json theme={null}

404{484{


412}492}

413```493```

414 494 

415* Se o STS recusar ou estiver inacessível, o gateway não envia a requisição com as credenciais próprias do upstream. Ele registra o erro do STS com o que verificar e então tenta o próximo upstream que você listou. [Mensagens de erro do upstream](#upstream-error-messages) descreve o que o cliente recebe quando nenhum upstream tem sucesso. Um upstream posterior sem `assume_role` serviria a requisição com suas próprias credenciais, portanto liste um apenas se for isso que você deseja.495* Se o STS recusar ou estiver inacessível, o gateway não envia a requisição com as credenciais próprias do upstream. Ele registra o erro do STS com o que verificar e então tenta o próximo upstream que você listou. [Mensagens de erro do upstream](#upstream-error-messages) explica o que o cliente recebe quando nenhum upstream tem sucesso. Um upstream posterior sem `assume_role` serviria a requisição com suas próprias credenciais, então liste um somente se for isso o que você deseja.

416* O gateway chama o endpoint regional do STS `sts.<region>.amazonaws.com`, que sua rede deve alcançar. Para o endpoint FIPS, defina `AWS_USE_FIPS_ENDPOINT=true` no ambiente do gateway em vez de `use_fips_endpoint` em um arquivo de configuração AWS.496* O gateway chama o endpoint regional do STS `sts.<region>.amazonaws.com`, que sua rede deve alcançar. Para o endpoint FIPS, defina `AWS_USE_FIPS_ENDPOINT=true` no ambiente do gateway, em vez de `use_fips_endpoint` em um arquivo de configuração da AWS.

417* `assume_role` se aplica apenas a `provider: bedrock` e precisa de credenciais de origem SigV4: o gateway se recusa a iniciar quando ele está definido junto com `aws_bearer_token`.497* `assume_role` se aplica apenas a `provider: bedrock` e precisa de credenciais de origem SigV4: o gateway se recusa a iniciar quando ele é definido ao lado de `aws_bearer_token`.

418* Cada desenvolvedor que o gateway admite pode usar esse upstream; [`managed`](#managed) governa quais desenvolvedores podem usar quais modelos. Para impedir que um modelo servido através da função também seja servido a partir de outra conta, dê a ele um id personalizado cujo mapa `upstream_model` tenha apenas o nome desse upstream. Para esse id, o gateway pula todos os outros upstreams, portanto nem a requisição nem a contagem de tokens de uma requisição abortada podem fazer failover para outra conta. Uma requisição para um nome de modelo integrado ainda pode [alcançar esse upstream](#multiple-upstreams), e o gateway a assina com a mesma função. Liste esse upstream por último, a menos que sua conta também deva servir esses modelos.498* Sem uma [lista `groups`](#send-each-team-to-its-own-upstream), todo desenvolvedor que o gateway admite pode usar este upstream. Para limitar quais modelos um desenvolvedor pode usar, defina `availableModels` em uma política [`managed`](#managed).

499* Para evitar que um modelo servido pelo papel também seja servido por outra conta, dê a ele um id personalizado cujo mapa `upstream_model` tenha apenas o nome deste upstream. Para esse id, o gateway ignora todos os outros upstreams, então nem a requisição nem a contagem de tokens de uma requisição abortada podem fazer failover para outra conta.

500* Uma requisição para um nome de modelo integrado ainda pode [chegar a este upstream](#multiple-upstreams), e o gateway a assina com o mesmo papel. Liste este upstream por último, a menos que a conta dele também deva servir esses modelos.

419 501 

420Este exemplo dá a um modelo um id personalizado que apenas o upstream isolado serve:502Este exemplo dá a um modelo um id personalizado que somente o upstream isolado serve:

421 503 

422```yaml theme={null}504```yaml theme={null}

423models:505models:

424 - id: restricted-claude-opus-4-8 # um id personalizado, não um nome de modelo integrado506 - id: restricted-claude-opus-4-8 # a custom id, not a built-in model name

425 upstream_model:507 upstream_model:

426 bedrock-isolated: us.anthropic.claude-opus-4-8 # o único upstream que o serve508 bedrock-isolated: us.anthropic.claude-opus-4-8 # the only upstream that serves it

427```509```

428 510 

429##### Atribuição de custos AWS por desenvolvedor511##### Atribuição de custos da AWS por desenvolvedor

430 512 

431Por padrão, o gateway assina cada requisição Bedrock com uma única credencial, portanto a AWS vê as requisições de todos os desenvolvedores sob um único principal IAM. Adicione `session_name: email` a [`assume_role`](#bedrock-in-another-aws-account) e o gateway chama `sts:AssumeRole` uma vez por desenvolvedor por hora, com o nome da sessão definido como o email desse desenvolvedor, e assina as requisições dele com as credenciais retornadas, portanto as requisições de cada desenvolvedor chegam à AWS sob sua própria sessão de função assumida. A função pode estar na própria conta do gateway.513Por padrão, o gateway assina toda requisição ao Bedrock com uma única credencial, então a AWS vê as requisições de todos os desenvolvedores sob um único principal do IAM. Adicione `session_name: email` a [`assume_role`](#bedrock-in-another-aws-account) e o gateway chama `sts:AssumeRole` uma vez por desenvolvedor por hora, com o nome da sessão definido como o e-mail desse desenvolvedor, e assina as requisições dele com as credenciais retornadas, de modo que as requisições de cada desenvolvedor chegam à AWS sob sua própria sessão de role assumida. A role pode estar na própria conta do gateway.

432 514 

433Requer um gateway executando Claude Code v2.1.281 ou posterior. [Atribuição de custos na AWS](https://code.claude.com/docs/pt/claude-apps-gateway-on-aws.md#cost-attribution) descreve a função IAM e onde o faturamento da AWS mostra as sessões.515Requer um gateway executando Claude Code v2.1.281 ou posterior. [Atribuição de custos na AWS](https://code.claude.com/docs/pt/claude-apps-gateway-on-aws.md#cost-attribution) aborda a role do IAM e onde o faturamento da AWS mostra as sessões.

434 516 

435```yaml theme={null}517```yaml theme={null}

436upstreams:518upstreams:

437 - provider: bedrock519 - provider: bedrock

438 region: us-east-1520 region: us-east-1

439 auth: {} # a própria função do gateway: ela apenas chama o STS521 auth: {} # the gateway's own role: it only calls STS

440 assume_role:522 assume_role:

441 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user523 role_arn: arn:aws:iam::123456789012:role/claude-gateway-bedrock-user

442 session_name: email # ou sub524 session_name: email # or sub

443```525```

444 526 

445`session_name` seleciona qual declaração verificada se torna o `RoleSessionName` da AWS: `email` ou `sub`. O gateway escreve qualquer caractere diferente de letras ASCII, dígitos e `_+,.@-` como hex `=XX` por byte UTF-8, e encurta um resultado com mais de 64 caracteres para um prefixo mais um hash, portanto o nome de sessão de cada desenvolvedor permanece válido e único. Uma requisição de um desenvolvedor cujo token não tem a declaração não é enviada através desse upstream, e o log do operador indica para mudar para `sub` ou definir [`oidc.email_claim`](#oidc).527`session_name` seleciona qual claim verificada se torna o `RoleSessionName` da AWS: `email` ou `sub`. O gateway escreve qualquer caractere que não seja letra ASCII, dígito ou `_+,.@-` como `=XX` em hexadecimal por byte UTF-8, e encurta um resultado com mais de 64 caracteres para um prefixo mais um hash, de modo que o nome de sessão de cada desenvolvedor permaneça válido e único. Uma requisição de um desenvolvedor cujo token não tem a claim não é enviada por este upstream, e o log do operador diz para mudar para `sub` ou definir [`oidc.email_claim`](#oidc).

446 528 

447Um desenvolvedor ativo custa uma chamada STS por hora por réplica do gateway, e primeiras requisições concorrentes compartilham uma chamada.529Um desenvolvedor ativo custa uma chamada ao STS por hora por réplica do gateway, e primeiras requisições simultâneas compartilham uma chamada.

448 530 

449O gateway também faz uma chamada própria nessa função: a contagem de tokens de uma requisição que o cliente abandonou, para que os [limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md) permaneçam precisos. Essa contagem e sua [requisição de fallback de um token](#amazon-bedrock) são assinadas pela sessão compartilhada `claude-apps-gateway`, portanto a AWS atribui o fallback a `claude-apps-gateway` em vez de ao desenvolvedor.531O gateway também faz uma chamada própria nesta role: a contagem de tokens de uma requisição que o cliente abandonou, para que os [limites de gasto](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md) permaneçam precisos. Essa contagem e sua [requisição de fallback de um token](#amazon-bedrock) são assinadas pela sessão compartilhada `claude-apps-gateway`, então a AWS atribui o fallback a `claude-apps-gateway` em vez de ao desenvolvedor.

450 532 

451Para uma atribuição estrita por desenvolvedor, defina `assume_role` com `session_name` em cada upstream Bedrock que você listar. Um upstream sem ele assina as requisições que serve com suas próprias credenciais.533Para uma atribuição estrita por desenvolvedor, defina `assume_role` com `session_name` em todos os upstreams Bedrock que você listar. Um upstream sem isso assina as requisições que serve com suas próprias credenciais.

452 534 

453#### Endpoint Mantle do Amazon Bedrock535#### Endpoint Mantle do Amazon Bedrock

454 536 

455O provedor `mantle` envia inferência para o [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) do Amazon Bedrock. Ele requer Claude Code v2.1.283 ou posterior no servidor gateway. Versões anteriores do gateway o rejeitam na inicialização, portanto atualize cada réplica antes de adicioná-lo.537O provedor `mantle` envia a inferência ao [endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) do Amazon Bedrock. Ele requer Claude Code v2.1.283 ou posterior no servidor do gateway. Versões anteriores do gateway o rejeitam na inicialização, então atualize todas as réplicas antes de adicioná-lo.

456 538 

457O exemplo abaixo coloca o Mantle primeiro, com um upstream Amazon Bedrock atrás dele para servir cada modelo que o campo `models` deixa de fora:539O exemplo abaixo coloca o Mantle primeiro, com um upstream Amazon Bedrock atrás dele para servir todos os modelos que o campo `models` deixa de fora:

458 540 

459```yaml theme={null}541```yaml theme={null}

460upstreams:542upstreams:

461 - provider: mantle543 - provider: mantle

462 region: us-east-1544 region: us-east-1

463 models: [claude-opus-4-7, claude-haiku-4-5] # obrigatório545 models: [claude-opus-4-7, claude-haiku-4-5] # required

464 auth: {} # cadeia de credencial padrão AWS546 auth: {} # AWS default credential chain

465 - provider: bedrock547 - provider: bedrock

466 region: us-east-1548 region: us-east-1

467 auth: {}549 auth: {}


471 553 

472| Campo | Obrigatório | Descrição |554| Campo | Obrigatório | Descrição |

473| - | - | - |555| - | - | - |

474| `region` | Sim | Região AWS. O gateway deriva o endpoint a partir dela como `https://bedrock-mantle.<region>.api.aws/anthropic`. |556| `region` | Sim | Região da AWS. O gateway deriva o endpoint dela como `https://bedrock-mantle.<region>.api.aws/anthropic`. |

475| `models` | Sim | Os modelos aos quais sua conta AWS recebeu acesso no Mantle, nomeados como os clientes os enviam, como `claude-haiku-4-5`. Apenas esses vão para este upstream, e todos os outros modelos pulam para o próximo. |557| `models` | Sim | Os modelos aos quais sua conta da AWS recebeu acesso no Mantle, nomeados como os clientes os enviam, como `claude-haiku-4-5`. Apenas estes vão para este upstream, e todos os outros modelos passam para o próximo. |

476| `auth` | Não | Aceita as mesmas chaves que o bloco `auth` do upstream [Amazon Bedrock](#amazon-bedrock), sob as mesmas regras. |558| `auth` | Não | Aceita as mesmas chaves do bloco `auth` do upstream [Amazon Bedrock](#amazon-bedrock), sob as mesmas regras. |

477| `base_url` | Não | Substitua o endpoint derivado. Mantenha o caminho `/anthropic` no final. |559| `base_url` | Não | Sobrescreve o endpoint derivado. Mantenha o caminho `/anthropic` no final. |

478 560 

479Conceda à identidade AWS do upstream as ações IAM próprias do Mantle para inferência e contagem de tokens, que [Usar o endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint) lista.561Conceda à identidade da AWS do upstream as próprias ações do IAM do Mantle para inferência e contagem de tokens, listadas em [Usar o endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#use-the-mantle-endpoint).

480 562 

481Para um ID de modelo do Mantle que o gateway não conhece, adicione uma entrada ao bloco [`models:`](#models) de nível superior cujo `upstream_model` mapeie o nome deste upstream para esse ID. Em seguida, coloque o `id` dessa entrada também no campo `models` deste upstream.563Para um ID de modelo do Mantle que o gateway não conhece, adicione uma entrada ao bloco [`models:`](#models) de nível superior cujo `upstream_model` mapeie o nome deste upstream para esse ID. Depois, coloque o `id` dessa entrada também no campo `models` deste upstream.

482 564 

483As configurações `guardrail` e `assume_role` de um upstream `bedrock` não se estendem às requisições que o Mantle serve:565As configurações `guardrail` e `assume_role` de um upstream `bedrock` não se estendem às requisições que o Mantle serve:

484 566 

485* **`guardrail`**: o gateway não aplica nenhum [guardrail do Bedrock](#apply-an-amazon-bedrock-guardrail) às requisições que envia ao Mantle, portanto ele se recusa a iniciar quando um upstream `mantle` está listado enquanto qualquer upstream `bedrock` define `guardrail`.567* **`guardrail`**: o gateway não aplica nenhum [guardrail do Bedrock](#apply-an-amazon-bedrock-guardrail) às requisições que envia ao Mantle, então se recusa a iniciar quando um upstream `mantle` está listado enquanto algum upstream `bedrock` define `guardrail`.

486* **`assume_role`**: um upstream `mantle` não aceita [`assume_role`](#bedrock-in-another-aws-account). As requisições que o Mantle serve são enviadas com as credenciais `auth` próprias do upstream `mantle` e não são [atribuídas por desenvolvedor](#per-developer-aws-cost-attribution).568* **`assume_role`**: um upstream `mantle` não aceita [`assume_role`](#bedrock-in-another-aws-account). As requisições que o Mantle serve são enviadas com as próprias credenciais `auth` do upstream `mantle` e não são [atribuídas por desenvolvedor](#per-developer-aws-cost-attribution).

487 569 

488Para saber o que significam as respostas de erro próprias do Mantle, consulte [Erros do endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#mantle-endpoint-errors).570Para saber o que significam as próprias respostas de erro do Mantle, consulte [Erros do endpoint Mantle](https://code.claude.com/docs/pt/amazon-bedrock.md#mantle-endpoint-errors).

489 571 

490#### Claude Platform on AWS572#### Claude Platform on AWS

491 573 

492Claude Platform on AWS serve a API Anthropic de primeira parte em infraestrutura AWS em `aws-external-anthropic.<region>.api.aws`. Usa IDs de modelo de primeira parte, honra cabeçalhos `anthropic-beta` conforme enviados e serve `count_tokens`, portanto nenhuma tradução específica do Bedrock se aplica. O provedor `anthropicAws` requer Claude Code v2.1.198 ou posterior; versões anteriores do gateway o rejeitam na inicialização.574O Claude Platform on AWS serve a Anthropic API first-party na infraestrutura da AWS em `aws-external-anthropic.<region>.api.aws`. Ele usa IDs de modelo first-party, respeita os cabeçalhos `anthropic-beta` como enviados e serve `count_tokens`, então nenhuma das traduções específicas do Bedrock se aplica. O provedor `anthropicAws` requer Claude Code v2.1.198 ou posterior; versões anteriores do gateway o rejeitam na inicialização.

493 575 

494Para a implantação do lado do cliente da mesma plataforma, consulte [Claude Code on Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md). O upstream do lado do gateway:576Para a implantação do lado do cliente da mesma plataforma, consulte [Claude Code no Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md). O upstream do lado do gateway:

495 577 

496```yaml theme={null}578```yaml theme={null}

497upstreams:579upstreams:


499 region: us-east-1581 region: us-east-1

500 workspace_id: wrkspc_...582 workspace_id: wrkspc_...

501 auth:583 auth:

502 api_key: ${ANTHROPIC_AWS_API_KEY} # enviado como x-api-key584 api_key: ${ANTHROPIC_AWS_API_KEY} # sent as x-api-key

503 # OU SigV4 através da cadeia de credencial padrão AWS:585 # OR SigV4 via the AWS default credential chain:

504 # auth: {}586 # auth: {}

505 # OU credenciais SigV4 explícitas:587 # OR explicit SigV4 credentials:

506 # auth:588 # auth:

507 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}589 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

508 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}590 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

509 # Substitua o endpoint derivado:591 # Override the derived endpoint:

510 # base_url: https://aws-external-anthropic.us-east-1.api.aws592 # base_url: https://aws-external-anthropic.us-east-1.api.aws

511```593```

512 594 

513A plataforma é executada em uma conta AWS separada do Amazon Bedrock e assina solicitações SigV4 para seu próprio nome de serviço, `aws-external-anthropic`, portanto uma função IAM com escopo Bedrock não a autoriza. Uma chave de API em `auth.api_key` tem precedência quando credenciais SigV4 também estão definidas. Um bloco `auth` vazio usa a cadeia de credencial padrão do AWS SDK, a mesma cadeia que o upstream [Amazon Bedrock](#amazon-bedrock) usa.595A plataforma é executada em uma conta da AWS separada do Amazon Bedrock e assina requisições SigV4 para seu próprio nome de serviço, `aws-external-anthropic`, então uma role do IAM com escopo do Bedrock não a autoriza. Uma chave de API em `auth.api_key` tem precedência quando credenciais SigV4 também estão definidas. Um bloco `auth` vazio usa a cadeia de credenciais padrão do AWS SDK, a mesma cadeia que o upstream [Amazon Bedrock](#amazon-bedrock) usa.

514 596 

515| Campo | Obrigatório | Descrição |597| Campo | Obrigatório | Descrição |

516| - | - | - |598| - | - | - |

517| `region` | Sim | Região AWS, letras minúsculas, dígitos e hífens. O gateway deriva o endpoint a partir dela como `https://aws-external-anthropic.<region>.api.aws`. |599| `region` | Sim | Região da AWS, com letras minúsculas, dígitos e hifens. O gateway deriva o endpoint dela como `https://aws-external-anthropic.<region>.api.aws`. |

518| `workspace_id` | Sim | Enviado como um cabeçalho em cada solicitação; a plataforma o requer |600| `workspace_id` | Sim | Enviado como cabeçalho em toda requisição; a plataforma o exige |

519| `auth.api_key` | Não | Chave de API para a plataforma, enviada como `x-api-key`. Não é um token de portador: os dois modos de autenticação são uma chave de API ou SigV4. |601| `auth.api_key` | Não | Chave de API da plataforma, enviada como `x-api-key`. Não é um bearer token: os dois modos de autenticação são chave de API ou SigV4. |

520| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | Não | Credenciais SigV4 explícitas. Definir um sem o outro falha na inicialização. `auth.aws_session_token` é aceito junto com eles. |602| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | Não | Credenciais SigV4 explícitas. Definir uma sem a outra falha na inicialização. `auth.aws_session_token` é aceito junto com elas. |

521| `base_url` | Não | Substitua o endpoint derivado |603| `base_url` | Não | Sobrescreve o endpoint derivado |

522 604 

523Como a plataforma resolve IDs de modelo de primeira parte, o catálogo integrado roteia para ela sem um bloco [`models:`](#models). Quando você cura uma lista `models:`, chave a entrada `anthropicAws:` com o ID de primeira parte.605Como a plataforma resolve IDs de modelo first-party, o catálogo integrado roteia para ela sem nenhum bloco [`models:`](#models). Ao montar uma lista `models:` própria, use a chave `anthropicAws:` na entrada com o ID first-party.

524 606 

525#### Google Cloud Agent Platform607#### Google Cloud Agent Platform

526 608 

527Para a configuração equivalente do lado do cliente, consulte [Claude Code on Google Cloud](https://code.claude.com/docs/pt/google-vertex-ai.md). O upstream do lado do gateway:609Para a configuração equivalente do lado do cliente, consulte [Claude Code no Google Cloud](https://code.claude.com/docs/pt/google-vertex-ai.md). O upstream do lado do gateway:

528 610 

529```yaml theme={null}611```yaml theme={null}

530upstreams:612upstreams:

531 - provider: vertex613 - provider: vertex

532 region: us-east5614 region: us-east5

533 project_id: example-prod615 project_id: example-prod

534 auth: {} # preferido: Credenciais Padrão de Aplicativo616 auth: {} # preferred: Application Default Credentials

535 # OU um arquivo de chave de conta de serviço:617 # OR a service account key file:

536 # auth: { service_account_json: /secrets/sa.json }618 # auth: { service_account_json: /secrets/sa.json }

537 # Substitua o endpoint aiplatform para Private Service Connect:619 # Override the aiplatform endpoint for Private Service Connect:

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

539```621```

540 622 

541Um 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.623Um bloco `auth` vazio usa o Application Default Credentials: `GOOGLE_APPLICATION_CREDENTIALS`, metadados do GCE ou GKE Workload Identity. Arquivos de chave JSON de conta de serviço são compatíveis, mas desaconselhados; use o Workload Identity ou anexe uma conta de serviço à instância do GCE ou do Cloud Run.

542 624 

543Defina `region: global` para usar o [endpoint global do Agent Platform do Google Cloud](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.625Defina `region: global` para usar o [endpoint global da Agent Platform do Google Cloud](https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations) em vez de um regional. O Google então roteia cada requisição para uma região disponível, então você não precisa acompanhar a disponibilidade de modelos por região. Definir uma região específica fixa todas as requisições nela.

544 626 

545| Configuração | Como |627| Configuração | Como |

546| - | - |628| - | - |

547| 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 do Google Cloud (`aiplatform.googleapis.com`). |629| Permissões do IAM | Conceda à conta de serviço do gateway `roles/aiplatform.user` no projeto, ou uma role personalizada com `aiplatform.endpoints.predict`. Ative a API da Agent Platform do Google Cloud (`aiplatform.googleapis.com`). |

548| 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. |630| Acesso a modelos | No Model Garden, ative os modelos Claude para seu projeto. Eles são publicados em regiões específicas; verifique o card do modelo para ver as regiões compatíveis. |

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

550| Cloud Run / GCE | Defina a conta de serviço do serviço para uma com `roles/aiplatform.user`. `auth: {}` a coleta. |632| Cloud Run / GCE | Defina a conta de serviço do serviço como uma que tenha `roles/aiplatform.user`. `auth: {}` a detecta. |

551| 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. |633| Qualquer outro lugar | `auth: { service_account_json: /secrets/sa.json }`, o caminho para um arquivo de chave JSON montado como segredo. O campo recebe um caminho de arquivo, não o conteúdo da chave, então nenhuma expansão `${file:…}` está envolvida. |

552 634 

553#### Microsoft Foundry635#### Microsoft Foundry

554 636 

555Para a implantação Microsoft Foundry do lado do cliente, consulte [Claude Code on Microsoft Foundry](https://code.claude.com/docs/pt/microsoft-foundry.md). O upstream do lado do gateway:637Para a implantação do Microsoft Foundry do lado do cliente, consulte [Claude Code no Microsoft Foundry](https://code.claude.com/docs/pt/microsoft-foundry.md). O upstream do lado do gateway:

556 638 

557```yaml theme={null}639```yaml theme={null}

558upstreams:640upstreams:

559 - provider: foundry641 - provider: foundry

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

561 auth: { use_azure_ad: true } # preferido: DefaultAzureCredential / Managed Identity643 auth: { use_azure_ad: true } # preferred: DefaultAzureCredential / Managed Identity

562 # OU uma chave de API:644 # OR an API key:

563 # auth:645 # auth:

564 # api_key: ${FOUNDRY_API_KEY}646 # api_key: ${FOUNDRY_API_KEY}

565```647```

566 648 

567`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 Microsoft Foundry é derivado de `resource:`; defina o `base_url` opcional para substituí-lo para nuvens soberanas como Azure Government.649`use_azure_ad: true` resolve por meio de `DefaultAzureCredential`: Managed Identity no AKS, ACI ou App Service; a Azure CLI; ou credenciais de ambiente. Chaves de API funcionam, mas valem para o projeto inteiro e não são rotacionadas automaticamente. O endpoint do Microsoft Foundry é derivado de `resource:`; defina o `base_url` opcional para sobrescrevê-lo em nuvens soberanas como o Azure Government.

568 650 

569| Configuração | Como |651| Configuração | Como |

570| - | - |652| - | - |

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

572| Implantações | Microsoft 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. |654| Implantações | O Microsoft 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 o nome da sua implantação. |

573| 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`. |655| AKS (workload identity) | Federe uma User-Assigned Managed Identity com o emissor OIDC do cluster e vincule-a à conta de serviço do gateway. `use_azure_ad: true` a detecta via `WorkloadIdentityCredential`. |

574| ACI / App Service | Habilite identidade gerenciada atribuída pelo sistema ou pelo usuário no recurso. `use_azure_ad: true` a coleta. |656| ACI / App Service | Ative a managed identity atribuída pelo sistema ou pelo usuário no recurso. `use_azure_ad: true` a detecta. |

575| Em qualquer outro lugar | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Cite `${…}` dentro de `{ }`. |657| Qualquer outro lugar | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Coloque `${…}` entre aspas dentro de `{ }`. |

576 658 

577#### Cabeçalhos estáticos em solicitações de upstream659#### Cabeçalhos estáticos nas requisições ao upstream

578 660 

579Para adicionar cabeçalhos fixos às solicitações que o gateway envia para um upstream, defina `headers:` nesse upstream. Use-o quando um proxy que você executa na frente do provedor roteia ou atribui tráfego por um cabeçalho.661Para adicionar cabeçalhos fixos às requisições que o gateway envia a um upstream, defina `headers:` nesse upstream. Use isso quando um proxy que você executa à frente do provedor roteia ou atribui tráfego por um cabeçalho.

580 662 

581`headers:` requer Claude Code v2.1.277 ou posterior no servidor gateway. Um gateway anterior se recusa a iniciar quando encontra a chave. Atualize cada réplica antes de adicionar a chave e remova a chave antes de reverter para uma versão anterior.663`headers:` requer Claude Code v2.1.277 ou posterior no servidor do gateway. Um gateway anterior se recusa a iniciar quando encontra a chave. Atualize todas as réplicas antes de adicionar a chave e remova a chave antes de reverter para uma versão anterior.

582 664 

583Os cabeçalhos vão para o servidor que `base_url` nomeia, ou para o endpoint do próprio provedor quando `base_url` não está definido. O provedor os recebe também a menos que seu proxy os remova.665Os cabeçalhos vão para o servidor que `base_url` nomeia, ou para o próprio endpoint do provedor quando `base_url` não está definido. O provedor também os recebe, a menos que seu proxy os remova.

584 666 

585Este exemplo alcança um upstream `provider: vertex` através de um proxy em `upstream-proxy.internal.example.com`. Ele define o cabeçalho `x-source` que o proxy lê e envia um token da variável de ambiente `PROXY_TOKEN` como `x-proxy-token`:667Este exemplo alcança um upstream `provider: vertex` por meio de um proxy em `upstream-proxy.internal.example.com`. Ele define o cabeçalho `x-source` que o proxy lê e envia um token da variável de ambiente `PROXY_TOKEN` como `x-proxy-token`:

586 668 

587```yaml theme={null}669```yaml theme={null}

588upstreams:670upstreams:


596 x-proxy-token: ${PROXY_TOKEN}678 x-proxy-token: ${PROXY_TOKEN}

597```679```

598 680 

599Os valores são texto ASCII imprimível sem espaço em nenhuma extremidade. Cite um número, `true` ou `false` para que YAML o leia como texto.681Os valores são texto ASCII imprimível sem espaço em nenhuma das extremidades. Coloque entre aspas um número, `true` ou `false` para que o YAML o leia como texto.

600 682 

601Para manter um segredo fora do arquivo de configuração, use [expansão de segredo](#secret-expansion) para carregar o valor de uma variável de ambiente com `${VAR}` ou de um arquivo com `${file:/path}`. Um `${VAR}` que resolve para um valor vazio impede o gateway de iniciar.683Para manter um segredo fora do arquivo de configuração, use a [expansão de segredos](#secret-expansion) para carregar o valor de uma variável de ambiente com `${VAR}` ou de um arquivo com `${file:/path}`. Um `${VAR}` que resolve para um valor vazio impede o gateway de iniciar.

602 684 

603`headers:` funciona em cada provedor, e cada upstream envia apenas o seu.685`headers:` funciona em todos os provedores, e cada upstream envia apenas os seus.

604 686 

605Nem toda solicitação que o gateway envia para um upstream carrega eles:687Nem toda requisição que o gateway envia a um upstream os carrega:

606 688 

607| Solicitação que o gateway envia para este upstream | Carrega `headers:` |689| Requisição que o gateway envia a este upstream | Carrega `headers:` |

608| - | - |690| - | - |

609| `/v1/messages`, streaming ou não, e `/v1/messages/count_tokens` | Sim |691| `/v1/messages`, com ou sem streaming, e `/v1/messages/count_tokens` | Sim |

610| Uma solicitação que falhou de outro upstream | Sim, apenas `headers:` deste upstream |692| Uma requisição que fez failover de outro upstream | Sim, apenas os `headers:` deste upstream |

611| Chamada `CountTokens` do Amazon Bedrock para uma solicitação que o cliente abandonou | Não |693| A chamada `CountTokens` do Amazon Bedrock para uma requisição que o cliente abandonou | Não |

612| A troca de token de Workload Identity Federation | Não |694| A troca de token do Workload Identity Federation | Não |

613 695 

614Em um upstream Amazon Bedrock ou Claude Platform on AWS que assina solicitações com AWS SigV4, esses cabeçalhos fazem parte da assinatura, portanto seu proxy deve passá-los inalterados.696Em um upstream Amazon Bedrock ou Claude Platform on AWS que assina requisições com AWS SigV4, esses cabeçalhos fazem parte da assinatura, então seu proxy deve repassá-los inalterados.

615 697 

616Se você usar um nome que o gateway reserva, ele se recusa a iniciar, e o erro de inicialização nomeia o cabeçalho. Os nomes reservados incluem:698Se você usar um nome que o gateway reserva, ele se recusa a iniciar, e o erro de inicialização nomeia o cabeçalho. Os nomes reservados incluem:

617 699 

618* `authorization` e `x-api-key`700* `authorization` e `x-api-key`

619* `host`, `content-type` e `user-agent`701* `host`, `content-type` e `user-agent`

620* Qualquer nome começando com `anthropic-`, `x-goog-`, `x-amz-` ou `x-amzn-`702* Qualquer nome que comece com `anthropic-`, `x-goog-`, `x-amz-` ou `x-amzn-`

703 

704#### Vários upstreams

621 705 

622#### Múltiplos upstreams706O mesmo provedor pode aparecer mais de uma vez com um `name:` distinto. Isso cobre regiões diferentes, contas diferentes por meio de cadeias de credenciais diferentes, provisioned throughput versus sob demanda e fallback entre provedores.

623 707 

624O 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.708O gateway tenta os upstreams em ordem. `5xx`, `429`, `401`, `403`, `404`, timeouts e endpoint ausente (`501`) fazem failover; outros `4xx` não.

625 709 

626O gateway tenta upstreams em ordem. `5xx`, `429`, `401`, `403`, `404`, timeouts e endpoint ausente (`501`) falham; outro `4xx` não.710`429` é capacidade por upstream, então o esgotamento do provisioned throughput (PT) faz failover para o sob demanda. Se você definir [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) em um upstream, um `429` para uma requisição que carregava o e-mail do desenvolvedor é, em vez disso, uma negação por usuário e não faz failover.

627 711 

628`429` é capacidade por upstream, portanto esgotamento de throughput provisionado (PT) falha para sob demanda. Se você definir [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) em um upstream, um `429` para uma solicitação que carregava o email do desenvolvedor é uma negação por usuário em vez disso e não falha.712Uma requisição passa de um upstream para o próximo apenas nestes casos:

629 713 

630Cada solicitação começa no primeiro upstream. Uma solicitação alcança um upstream posterior apenas quando cada upstream à sua frente falhou ou não serve o modelo solicitado.714* O upstream falhou

715* O upstream não atende o modelo solicitado

716* O upstream tem uma [lista `groups`](#send-each-team-to-its-own-upstream) que deixa o desenvolvedor de fora

631 717 

632O gateway não mantém registro de upstreams falhados, portanto enquanto um upstream está inativo, cada solicitação que o alcança ainda o tenta e aguarda sua falha antes de prosseguir.718O gateway não mantém registro de upstreams com falha, então, enquanto um upstream está fora do ar, toda requisição que chega a ele ainda o tenta e espera que ele falhe antes de seguir adiante.

633 719 

634O gateway aguarda este tempo para que uma resposta comece:720O gateway espera este tempo para que uma resposta comece:

635 721 

636* **Upstreams `provider: anthropic`**: [`timeouts.upstream_ttfb_ms`](#http-tuning), 120 segundos por padrão722* **Upstreams `provider: anthropic`**: [`timeouts.upstream_ttfb_ms`](#http-tuning), 120 segundos por padrão

637* **Outros provedores**: até uma hora. Para encurtar essa espera em requisições de streaming, defina `timeouts.upstream_ttfb_ms` no gateway v2.1.295 ou posterior. Requisições de modelo sem streaming aguardam até uma hora de qualquer forma723* **Outros provedores**: até uma hora. Para encurtar essa espera em requisições com streaming, defina `timeouts.upstream_ttfb_ms` no gateway v2.1.295 ou posterior. Requisições de modelo sem streaming esperam até uma hora de qualquer forma

638 724 

639`404` é disponibilidade de modelo por upstream, portanto um upstream que não habilitou um modelo não bloqueia um upstream posterior que o serve. Um upstream que não pode resolver o modelo solicitado é pulado sem uma viagem de rede.725`404` é disponibilidade de modelo por upstream, então um upstream que não ativou um modelo não bloqueia um upstream posterior que o serve. Um upstream que não consegue resolver o modelo solicitado é pulado sem uma ida e volta pela rede.

640 726 

641Este exemplo roteia uma alocação de throughput provisionado Amazon Bedrock primeiro, transborda para sob demanda e uma segunda conta, e recorre à API Anthropic por último:727Este exemplo roteia primeiro uma cota de provisioned throughput do Amazon Bedrock, transborda para o sob demanda e para uma segunda conta e recorre à Anthropic API por último:

642 728 

643```yaml theme={null}729```yaml theme={null}

644upstreams:730upstreams:

645 # Primário: throughput provisionado em sua região inicial.731 # Primary: provisioned throughput in your home region.

646 - name: bedrock-pt732 - name: bedrock-pt

647 provider: bedrock733 provider: bedrock

648 region: us-east-1734 region: us-east-1

649 auth: {}735 auth: {}

650 # Transbordamento: sob demanda entre regiões.736 # Overflow: on-demand cross-region.

651 - name: bedrock-od737 - name: bedrock-od

652 provider: bedrock738 provider: bedrock

653 region: us-west-2739 region: us-west-2

654 auth: {}740 auth: {}

655 # Conta diferente: uma alocação Bedrock separada através de chaves estáticas.741 # Different account: a separate Bedrock allotment via static keys.

656 - name: bedrock-acct2742 - name: bedrock-acct2

657 provider: bedrock743 provider: bedrock

658 region: us-east-1744 region: us-east-1

659 auth:745 auth:

660 aws_access_key_id: ${ACCT2_AKID}746 aws_access_key_id: ${ACCT2_AKID}

661 aws_secret_access_key: ${ACCT2_SK}747 aws_secret_access_key: ${ACCT2_SK}

662 # Último recurso: API Anthropic direta.748 # Last resort: direct Anthropic API.

663 - name: anthropic-fallback749 - name: anthropic-fallback

664 provider: anthropic750 provider: anthropic

665 auth:751 auth:

666 api_key: ${ANTHROPIC_API_KEY}752 api_key: ${ANTHROPIC_API_KEY}

667 753 

668# IDs de modelo por upstream são codificados no `name:` do upstream.754# Per-upstream model IDs are keyed on the upstream's `name:`.

669models:755models:

670 - id: claude-opus-4-8756 - id: claude-opus-4-8

671 label: Claude Opus 4.8757 label: Claude Opus 4.8


678 764 

679| Alavanca | Como |765| Alavanca | Como |

680| - | - |766| - | - |

681| Diferentes regiões | Um upstream Amazon 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:`. |767| Regiões diferentes | Um upstream Amazon Bedrock por região, cada um com seu próprio `region:`. Com [`auto_include_builtin_models: true`](#models), os perfis de inferência entre regiões roteiam automaticamente; para implantações fixadas em uma região, use um bloco `models:`. |

682| Diferentes contas | Um upstream Amazon Bedrock por conta. A cadeia padrão (`auth: {}`) usa a identidade do pod; para uma segunda conta, adicione [`assume_role`](#bedrock-in-another-aws-account) para alcançá-la com credenciais de curta duração, ou defina credenciais explícitas ou um token de portador em `auth:`. |768| Contas diferentes | Um upstream Amazon Bedrock por conta. A cadeia padrão (`auth: {}`) usa a identidade do pod; para uma segunda conta, adicione [`assume_role`](#bedrock-in-another-aws-account) para alcançá-la com credenciais de curta duração, ou defina credenciais explícitas ou um bearer token em `auth:`. |

683| 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. |769| Equipes diferentes | Dê ao upstream de cada equipe uma lista `groups`, para que apenas desenvolvedores nesses grupos do IdP o alcancem. Consulte [Enviar cada equipe para seu próprio upstream](#send-each-team-to-its-own-upstream). |

684| Endpoints VPC / FIPS | Defina `base_url:` no upstream para sua URL de endpoint VPC ou FIPS |770| Provisioned throughput | Mapeie o modelo para o ARN de provisioned throughput em `models:` para o nome desse upstream. Os outros upstreams mantêm o ID sob demanda, então a capacidade de PT se esgota antes do failover. |

685| Roteamento com escopo de modelo | Apenas um modelo `id` personalizado, que não é um modelo Claude integrado, pula os upstreams ausentes de seu mapa `upstream_model:`. Um upstream `mantle` é tentado apenas para os modelos listados em seu [campo `models`](#amazon-bedrock-mantle-endpoint). Em todos os outros upstreams, o gateway tenta modelos integrados em ordem e usa o ID padrão do provedor onde o mapa não tem entrada, portanto para modelos integrados o mapa muda qual ID um upstream recebe em vez de se é tentado; um upstream que rejeita o ID segue as mesmas [regras de failover](#upstreams) que qualquer outro erro de upstream. |771| Endpoints de VPC / FIPS | Defina `base_url:` no upstream como a URL do seu endpoint de VPC ou endpoint FIPS |

772| Roteamento por modelo | Um `id` de modelo personalizado, que não seja um modelo Claude integrado, ignora os upstreams ausentes do seu mapa `upstream_model:`. Um upstream com uma lista `models`, que um [upstream `mantle`](#amazon-bedrock-mantle-endpoint) precisa ter, só é tentado para esses modelos. |

773| Roteamento de modelos integrados | Em um upstream sem lista `models` ou `groups`, o gateway tenta os modelos integrados em ordem e usa o ID padrão do provedor quando o mapa `upstream_model:` não tem entrada. Para um modelo integrado para o qual o provedor tem um ID padrão, o mapa altera qual ID um upstream recebe, e não se ele é tentado. Um upstream que rejeita o ID segue as mesmas [regras de failover](#upstreams) que qualquer outro erro de upstream. |

774 

775Fazer failover entre provedores de nuvem, ou para a API direta da Anthropic, altera qual contrato, geografia e outros termos regem a requisição.

776 

777A CLI aplica o mesmo controle de recursos aos gateways independentemente de qual upstream atende a uma determinada requisição, portanto, por padrão, o failover não envia um campo do corpo que um upstream rejeitaria. Se você definir o [TTL de cache de uma hora](#one-hour-prompt-cache) em uma política, ele será enviado para todos os upstreams da lista, então defina-o somente se todos eles o aceitarem.

686 778 

687Falhar entre provedores de nuvem ou para a API Anthropic direta muda qual acordo, geografia e outros termos governam a solicitação.779#### Enviar cada equipe para seu próprio upstream

688 780 

689O CLI aplica o mesmo feature gating a gateways independentemente de qual upstream serve uma determinada solicitação, portanto, por padrão, o failover não envia um campo de corpo que um upstream rejeitaria. Se você definir o [TTL de cache de uma hora](#one-hour-prompt-cache) em uma política, ele vai para cada upstream da lista, portanto defina-o apenas se todos eles o aceitarem.781Para enviar as requisições de cada equipe para sua própria conta AWS ou projeto do Google Cloud, liste um upstream por equipe e dê a cada um uma lista `groups`. Apenas desenvolvedores em um grupo do IdP listado alcançam esse upstream, na primeira tentativa e no [failover](#multiple-upstreams). Todo provedor aceita `groups`. Requer Claude Code v2.1.314 ou posterior no servidor do gateway.

782 

783Este exemplo dá aos grupos `payments-eng` e `search-eng` uma conta AWS cada, e adiciona um upstream sem lista `groups` que todo desenvolvedor pode usar:

784 

785```yaml theme={null}

786upstreams:

787 - name: bedrock-payments

788 provider: bedrock

789 region: us-east-1

790 auth: {}

791 assume_role:

792 role_arn: arn:aws:iam::111111111111:role/claude-gateway-bedrock

793 groups: [payments-eng]

794 - name: bedrock-search

795 provider: bedrock

796 region: us-east-1

797 auth: {}

798 assume_role:

799 role_arn: arn:aws:iam::222222222222:role/claude-gateway-bedrock

800 groups: [search-eng]

801 - name: bedrock-shared # no groups: open to everyone, so listed last

802 provider: bedrock

803 region: us-east-1

804 auth: {}

805```

806 

807Com a configuração de exemplo, as requisições de cada desenvolvedor começam no primeiro upstream de sua linha e passam para o próximo no failover:

808 

809| Grupos do desenvolvedor | Upstreams, em ordem |

810| - | - |

811| `payments-eng` | `bedrock-payments`, depois `bedrock-shared` |

812| `search-eng` | `bedrock-search`, depois `bedrock-shared` |

813| `payments-eng` e `search-eng` | `bedrock-payments`, depois `bedrock-search`, depois `bedrock-shared` |

814| Nenhum | `bedrock-shared` |

815 

816Quando o upstream de uma equipe nega o modelo solicitado com um `403`, o gateway tenta o próximo upstream na linha dessa equipe que atende o modelo. Para manter a equipe em um único upstream, dê a todos os upstreams uma lista `groups` e certifique-se de que nenhum outro upstream liste um grupo em que os desenvolvedores da equipe estejam. Essa equipe então não tem failover, e requisições de desenvolvedores que não estão em nenhum grupo listado [falham com um `400`](#what-happens-when-a-developer-is-in-no-listed-group).

817 

818Para levar cada desenvolvedor ao upstream que você pretende, escreva entradas que correspondam exatamente e coloque os upstreams abertos por último:

819 

820* **Entradas**: escreva cada grupo exatamente como seu IdP o envia na [claim de grupos](#oidc), que [`match.groups`](#managed) também lê. O gateway se recusa a iniciar quando encontra uma lista vazia ou uma entrada vazia. Ele não verifica uma entrada em relação ao seu IdP, então uma entrada que não corresponde a ninguém não gera nenhum aviso.

821* **Ordem**: coloque um upstream que não tenha lista `groups` por último. Ele atende a todos, então, se listado antes, ele captura as requisições de uma equipe antes do próprio upstream dessa equipe.

822 

823> [!WARNING]

824>

825> Um gateway anterior à v2.1.314 se recusa a iniciar quando encontra `groups`, então atualize todas as réplicas antes de adicioná-lo.

826>

827> Antes de reverter, remova cada upstream que tenha uma lista `groups` e toda chave `upstream_model` ou substituição de preços que o nomeie, e mantenha pelo menos um upstream. Com apenas a chave `groups` removida, esse upstream fica aberto a todos os desenvolvedores. Uma chave ou substituição que ainda nomeie um upstream removido impede o gateway de iniciar, com `references unknown upstream`.

828 

829##### O que acontece quando um desenvolvedor não está em nenhum grupo listado

830 

831Se todos os upstreams tiverem uma lista `groups`, um desenvolvedor que não esteja em nenhum desses grupos vê este erro, e o gateway não contata nenhum provedor:

832 

833```text theme={null}

834API Error: 400 you aren't in a group that can use this gateway. Ask your administrator to add you to one

835```

836 

837Adicione o desenvolvedor a um grupo listado no seu IdP, ou adicione um upstream sem lista `groups`.

838 

839O gateway lê novamente os grupos de um desenvolvedor a cada atualização de token. Se o seu IdP deixar os grupos de fora de uma atualização, o desenvolvedor passa a não ter nenhum:

840 

841* **[`oidc.allowed_groups`](#oidc) está definido**: o gateway recusa a atualização, e a sessão termina

842* **Caso contrário, um upstream não tem lista `groups`**: as requisições do desenvolvedor passam para ele

843* **Caso contrário, todos os upstreams têm uma lista `groups`**: as requisições do desenvolvedor falham com esse erro

844 

845Se o endpoint userinfo do seu IdP retornar a claim de grupos e `oidc.google_groups` não estiver definido, defina [`oidc.userinfo_fallback`](#oidc) como `true` para preencher os grupos a partir dele.

690 846 

691## Seções opcionais847## Seções opcionais

692 848 


782 938 

783#### Enviar as tarifas para clientes conectados939#### Enviar as tarifas para clientes conectados

784 940 

785Com a v2.1.268 ou posterior no servidor do gateway, o gateway também coloca as tarifas de `pricing` nas políticas [`managed`](#managed) que serve, como a configuração gerenciada [`modelPricing`](https://code.claude.com/docs/pt/settings-reference#modelpricing). Os desenvolvedores correspondidos por uma política passam então a ver as tarifas de `pricing` do primeiro upstream que atende cada ID de modelo em `/usage`, na linha de status e no OpenTelemetry. Um desenvolvedor que não corresponde a nenhuma política não recebe configurações gerenciadas, então seus valores permanecem no preço de tabela. Os clientes aplicam a configuração no Claude Code v2.1.242 ou posterior.941Com a v2.1.268 ou posterior no servidor do gateway, o gateway também coloca as tarifas de `pricing` nas políticas [`managed`](#managed) que ele serve, como a configuração gerenciada [`modelPricing`](https://code.claude.com/docs/pt/settings-reference#modelpricing).

942 

943Os desenvolvedores correspondidos por uma política passam a ver as tarifas de `pricing` em `/usage`, na linha de status e no OpenTelemetry. Um desenvolvedor que não corresponde a nenhuma política não recebe configurações gerenciadas, então seus números permanecem no preço de tabela. Os clientes aplicam a configuração no Claude Code v2.1.242 ou posterior.

786 944 

787* O que o gateway adiciona: a menos que o bloco `cli` de uma política já defina `modelPricing`, o gateway adiciona o `multiplier` e, para cada ID de modelo que um cliente pode solicitar, a linha de override do primeiro upstream que atende esse ID. Uma tarifa que apenas um upstream de failover cobra permanece no gateway.945* O que o gateway adiciona: a menos que o bloco `cli` de uma política já defina `modelPricing`, o gateway adiciona o `multiplier` e, para cada ID de modelo que um cliente pode solicitar, a linha de override do primeiro upstream que atende esse ID. Uma tarifa que apenas um upstream de failover cobra permanece no gateway.

946* Upstreams com uma [lista `groups`](#send-each-team-to-its-own-upstream): quando um deles é o primeiro upstream que atende um ID de modelo, o gateway não adiciona nenhuma linha para esse ID. Os desenvolvedores então veem a tarifa do próprio Claude Code para esse ID, que é a tarifa padrão do modelo quando o Claude Code reconhece o ID, vezes o `multiplier`.

788* Excluir uma política: defina `modelPricing` como `{}` no bloco `cli` dessa política, e seus desenvolvedores permanecem no preço de tabela.947* Excluir uma política: defina `modelPricing` como `{}` no bloco `cli` dessa política, e seus desenvolvedores permanecem no preço de tabela.

789* Manter as tarifas próprias de uma política: uma política cujo bloco `cli` define `modelPricing` com seu próprio `multiplier` ou `overrides` mantém esse `modelPricing` inteiro, e o gateway não adiciona nenhuma tarifa própria a ele.948* Manter as tarifas próprias de uma política: uma política cujo bloco `cli` define `modelPricing` com seu próprio `multiplier` ou `overrides` mantém esse `modelPricing` inteiro, e o gateway não adiciona nenhuma tarifa própria a ele.

790 949 


808 967 

809### `managed`968### `managed`

810 969 

811O bloco `managed` define políticas de acesso baseadas em funções, indexadas por grupos do IdP ou domínio de e-mail. As políticas são avaliadas em ordem; a primeira correspondência é selecionada e depois mesclada sobre a base catch-all `match: {}`. Elas são servidas por usuário em `GET /managed/settings` com cache ETag/304.970O bloco `managed` define políticas de acesso baseadas em funções, indexadas por grupos do IdP ou domínio de email. As políticas são avaliadas em ordem; por padrão, a primeira correspondência é selecionada e depois mesclada sobre a base genérica `match: {}`. Um usuário que corresponde a duas políticas de função recebe apenas a primeira, então as regras de negação da segunda política não se aplicam, a menos que você [aplique todas as políticas correspondentes](#apply-every-matching-policy). As políticas são servidas por usuário em `GET /managed/settings` com cache ETag/304.

812 971 

813```yaml theme={null}972```yaml theme={null}

814managed:973managed:


849 1008 

850Um usuário autenticado que não corresponde a nenhuma política recebe os padrões do gateway, o que significa todos os modelos do catálogo e nenhuma configuração gerenciada. Adicione um catch-all `match: {}` por último se quiser uma política padrão garantida.1009Um usuário autenticado que não corresponde a nenhuma política recebe os padrões do gateway, o que significa todos os modelos do catálogo e nenhuma configuração gerenciada. Adicione um catch-all `match: {}` por último se quiser uma política padrão garantida.

851 1010 

1011Coloque as regras de negação de toda a organização na política `match: {}`, porque as regras de uma política de grupo só se aplicam enquanto o token do usuário contiver esse grupo.

1012 

852> [!NOTE]1013> [!NOTE]

853>1014>

854> O gateway não mantém um diretório de usuários próprio. Ele autoriza cada requisição a partir do token do IdP do usuário, lendo a associação a grupos da claim `groups` do token e avaliando as políticas com base nela. Não há lista de usuários para enumerar nem contas para pré-criar e, portanto, não há endpoint SCIM, porque não há nada para o SCIM sincronizar.1015> O gateway não mantém um diretório de usuários próprio. Ele autoriza cada requisição a partir do token do IdP do usuário, lendo a associação a grupos da claim `groups` do token e avaliando as políticas com base nela. Não há lista de usuários para enumerar nem contas para pré-criar e, portanto, não há endpoint SCIM, porque não há nada para o SCIM sincronizar.


862>1023>

863> O Claude Desktop segue [seu próprio cronograma](#when-a-policy-change-reaches-claude-desktop).1024> O Claude Desktop segue [seu próprio cronograma](#when-a-policy-change-reaches-claude-desktop).

864 1025 

1026#### Aplicar todas as políticas correspondentes

1027 

1028Um usuário que corresponde a várias políticas de função recebe apenas a primeira, a menos que você defina `policy_mode: layered` ao lado de `policies`. Com `layered`, todas as políticas que correspondem ao usuário se aplicam, até a primeira política `match: {}`.

1029 

1030`policy_mode` requer o Claude Code v2.1.316 ou posterior no servidor do gateway. Um gateway em uma versão que não o suporta se recusa a iniciar quando encontra a chave. Atualize todas as réplicas antes de adicionar a chave e remova a chave antes de reverter para uma versão anterior. Este exemplo tem um grupo que perde `WebFetch` e um que ganha o Opus:

1031 

1032```yaml theme={null}

1033managed:

1034 policy_mode: layered

1035 policies:

1036 - match: { groups: [no-web] }

1037 cli:

1038 permissions: { deny: ["WebFetch"] }

1039 - match: { groups: [opus-users] }

1040 cli:

1041 availableModels: [opus, sonnet]

1042 - match: {}

1043 cli:

1044 availableModels: [sonnet]

1045 enforceAvailableModels: true

1046```

1047 

1048A tabela mostra o que um usuário em `no-web` e `opus-users` recebe com o padrão, `first_match`, e com `layered`.

1049 

1050| Configuração | `first_match` | `layered` |

1051| - | - | - |

1052| `availableModels` | `sonnet` | `opus`, `sonnet` |

1053| `enforceAvailableModels` | `true` | `true` |

1054| `permissions.deny` | `WebFetch` | `WebFetch` |

1055 

1056O gateway mescla cada política correspondente sobre as listadas abaixo dela, pelas mesmas [regras de mesclagem](#managed) da camada base:

1057 

1058* **Allowlists, valores únicos e blocos como `sandbox`**: cada um vem inteiro da primeira política correspondente listada que o define, então as listas `availableModels` de dois grupos não se somam.

1059* **Listas de negação e arrays de hooks**: estes se somam entre todas as políticas correspondentes, então um usuário em dois grupos recebe as regras de negação de ambos os grupos.

1060* **`env`, `modelOverrides` e `skillOverrides`**: as entradas são mescladas por nome, e a primeira política correspondente listada que define um nome fornece seu valor.

1061* **Chaves de `desktop`**: estas são mescladas pelas [regras do bloco `desktop` base](#how-a-role-policy-inherits-the-base-desktop-block).

1062 

1063> [!WARNING]

1064>

1065> As políticas podem se somar em regras mais permissivas do que qualquer uma delas sozinha. Por exemplo, a política `match: {}` define `sandbox.enabled: true`, a política de um grupo define `permissions.allow: ["Bash"]` e a de outro grupo define `sandbox.enabled: false`. Um usuário em ambos os grupos recebe `Bash` permitido com o sandbox desativado. Nesse caso, liste primeiro a política que permite `Bash` e copie para ela o bloco `sandbox` inteiro da política `match: {}`.

1066 

1067Com `layered`, o gateway se recusa a iniciar com algumas configurações, incluindo estas:

1068 

1069* **Um padrão `!`**: uma [negação `!`](https://code.claude.com/docs/pt/permissions#special-characters-and-negation) em uma regra `Read` ou `Edit` na lista `permissions.deny` ou `permissions.ask` de qualquer política, incluindo a da política `match: {}`

1070* **Um limite sobre hooks fora da genérica**: `disableAllHooks`, `allowedHttpHookUrls` ou `httpHookAllowedEnvVars` em qualquer política que não seja `match: {}`

1071 

865#### Iniciar sessões em um modelo que a política permite1072#### Iniciar sessões em um modelo que a política permite

866 1073 

867Se `availableModels` deixar de fora o modelo padrão do Claude Code, as sessões recebem respostas `400` até que o desenvolvedor escolha um modelo listado, por exemplo com `/model`. Em sessões do gateway, o padrão é o modelo Opus para o qual o alias `opus` é resolvido, e `availableModels` sozinho não o altera.1074Se `availableModels` deixar de fora o modelo padrão do Claude Code, as sessões recebem respostas `400` até que o desenvolvedor escolha um modelo listado, por exemplo com `/model`. Em sessões do gateway, o padrão é o modelo Opus para o qual o alias `opus` é resolvido, e `availableModels` sozinho não o altera.

Details

169 * `access.public_client` carrega o IP do cliente da primeira solicitação por processo que chega de um endereço público enquanto `access_control.allow_cidrs` está vazio. O gateway serve a solicitação normalmente; o evento sinaliza que o gateway pode estar acessível pela internet pública. Veja a [referência de `access_control`](https://code.claude.com/docs/pt/claude-apps-gateway-config#http-tuning) para o que conta como público e para a lista de permissões recomendada.169 * `access.public_client` carrega o IP do cliente da primeira solicitação por processo que chega de um endereço público enquanto `access_control.allow_cidrs` está vazio. O gateway serve a solicitação normalmente; o evento sinaliza que o gateway pode estar acessível pela internet pública. Veja a [referência de `access_control`](https://code.claude.com/docs/pt/claude-apps-gateway-config#http-tuning) para o que conta como público e para a lista de permissões recomendada.

170 * `inference` registra qual upstream serviu a solicitação e o status da resposta170 * `inference` registra qual upstream serviu a solicitação e o status da resposta

171 * `desktop_bootstrap.denied` registra uma busca de bootstrap do Claude Desktop rejeitada com o motivo (`not_configured`, `policy_not_opted_in` ou `no_policy_matched`) e a identidade do usuário171 * `desktop_bootstrap.denied` registra uma busca de bootstrap do Claude Desktop rejeitada com o motivo (`not_configured`, `policy_not_opted_in` ou `no_policy_matched`) e a identidade do usuário

172 * `guardrail.trace` registra [qual filtro foi acionado](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#log-which-guardrail-filter-fired), sem o texto correspondente

172 * `admin.denied` registra uma tentativa de autenticação de API de administrador rejeitada com o IP do cliente, método, caminho e um motivo, sem o material de chave apresentado: `invalid_key` quando um `x-api-key` foi apresentado mas não correspondeu a nenhuma chave configurada, `bearer_rejected` quando apenas um cabeçalho `Authorization` foi apresentado e não verificou como uma sessão de gateway em `admin.admin_groups`, ou `no_credentials` quando nenhum cabeçalho foi apresentado173 * `admin.denied` registra uma tentativa de autenticação de API de administrador rejeitada com o IP do cliente, método, caminho e um motivo, sem o material de chave apresentado: `invalid_key` quando um `x-api-key` foi apresentado mas não correspondeu a nenhuma chave configurada, `bearer_rejected` quando apenas um cabeçalho `Authorization` foi apresentado e não verificou como uma sessão de gateway em `admin.admin_groups`, ou `no_credentials` quando nenhum cabeçalho foi apresentado

173* **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 `debug`, `info`, `warn` ou `error`, com `info` como padrão. Em `debug`, cada entrada e atualização também registra os nomes, não os valores, das reivindicações no id\_token, mais os nomes das reivindicações de userinfo quando `userinfo_fallback` forneceu alguma, para que você possa diagnosticar as configurações de `email_claim` e `groups_claim` sem registrar PII. Não afeta eventos de auditoria, que são sempre emitidos.174* **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 `debug`, `info`, `warn` ou `error`, com `info` como padrão. Em `debug`, cada entrada e atualização também registra os nomes, não os valores, das reivindicações no id\_token, mais os nomes das reivindicações de userinfo quando `userinfo_fallback` forneceu alguma, para que você possa diagnosticar as configurações de `email_claim` e `groups_claim` sem registrar PII. Não afeta eventos de auditoria, que são sempre emitidos.

174 175 


311 312 

312As 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 recente falha na inicialização no mais antigo. Remova a nova chave antes de reverter.313As 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 recente falha na inicialização no mais antigo. Remova a nova chave antes de reverter.

313 314 

315> [!WARNING]

316>

317> Remover apenas a chave `groups` de um upstream o deixa aberto para todos os desenvolvedores. Veja [o que remover antes de reverter](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#roll-back-a-gateway-that-uses-groups).

318 

314Como você fixa a versão do gateway em sua própria imagem, correções em novos lançamentos 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 patches que você usa para outros serviços que mantêm credenciais de produção.319Como você fixa a versão do gateway em sua própria imagem, correções em novos lançamentos 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 patches que você usa para outros serviços que mantêm credenciais de produção.

315 320 

316## Segurança321## Segurança


422| No pico de carga, as respostas demoram a começar ou parecem travar, ou falham com um 502 `all upstreams failed` enquanto o upstream está saudável | Uma réplica tem mais requisições abertas do que envia upstream de uma vez, então as requisições extras esperam dentro do gateway. Em um upstream `provider: anthropic`, uma requisição que espera mais tempo que `timeouts.upstream_ttfb_ms` desiste desse upstream, o que produz o 502 quando nenhum upstream posterior a serve. O log mostra um aviso que contém `client requests are open`. | Adicione réplicas, ou aumente o limite em cada réplica. Veja [Concurrent upstream requests](#concurrent-upstream-requests). |427| No pico de carga, as respostas demoram a começar ou parecem travar, ou falham com um 502 `all upstreams failed` enquanto o upstream está saudável | Uma réplica tem mais requisições abertas do que envia upstream de uma vez, então as requisições extras esperam dentro do gateway. Em um upstream `provider: anthropic`, uma requisição que espera mais tempo que `timeouts.upstream_ttfb_ms` desiste desse upstream, o que produz o 502 quando nenhum upstream posterior a serve. O log mostra um aviso que contém `client requests are open`. | Adicione réplicas, ou aumente o limite em cada réplica. Veja [Concurrent upstream requests](#concurrent-upstream-requests). |

423| Em um upstream diferente de `provider: anthropic`, um turno com uma longa pausa de pensamento falha. O proxy na frente do gateway registra uma requisição que permanece aberta por cerca de 12,5 minutos, depois uma sequência de erros `504` | Claude Code encerrou um stream que havia entregado seu primeiro evento de resposta e depois carregou apenas pings de keepalive. Ele reenviou a requisição sem streaming, e cada resposta leva mais tempo do que o timeout do proxy. | Aumente `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para seus desenvolvedores. Veja [Pensamento longo termina em timeouts do proxy](#long-thinking-ends-in-proxy-timeouts). |428| Em um upstream diferente de `provider: anthropic`, um turno com uma longa pausa de pensamento falha. O proxy na frente do gateway registra uma requisição que permanece aberta por cerca de 12,5 minutos, depois uma sequência de erros `504` | Claude Code encerrou um stream que havia entregado seu primeiro evento de resposta e depois carregou apenas pings de keepalive. Ele reenviou a requisição sem streaming, e cada resposta leva mais tempo do que o timeout do proxy. | Aumente `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para seus desenvolvedores. Veja [Pensamento longo termina em timeouts do proxy](#long-thinking-ends-in-proxy-timeouts). |

424| Em `provider: anthropic`, um turno com uma longa pausa de pensamento falha. O proxy registra uma requisição aberta por cerca de 20 minutos, depois erros `502` ou `504` | Claude Code encerrou um stream que havia entregado seu primeiro evento de resposta e depois carregou apenas pings de keepalive. Ele reenviou a requisição sem streaming, e cada resposta leva mais tempo do que a espera do gateway pelo upstream, `timeouts.upstream_ttfb_ms`, ou do que o timeout do proxy. | Aumente `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para seus desenvolvedores. Veja [Pensamento longo em um upstream da Anthropic API](#long-thinking-on-an-anthropic-api-upstream). |429| Em `provider: anthropic`, um turno com uma longa pausa de pensamento falha. O proxy registra uma requisição aberta por cerca de 20 minutos, depois erros `502` ou `504` | Claude Code encerrou um stream que havia entregado seu primeiro evento de resposta e depois carregou apenas pings de keepalive. Ele reenviou a requisição sem streaming, e cada resposta leva mais tempo do que a espera do gateway pelo upstream, `timeouts.upstream_ttfb_ms`, ou do que o timeout do proxy. | Aumente `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para seus desenvolvedores. Veja [Pensamento longo em um upstream da Anthropic API](#long-thinking-on-an-anthropic-api-upstream). |

430| As requisições de um desenvolvedor falham com `API Error: 400 you aren't in a group that can use this gateway. Ask your administrator to add you to one` | Todo upstream tem uma [lista `groups`](https://code.claude.com/docs/pt/claude-apps-gateway-config#what-happens-when-a-developer-is-in-no-listed-group), e a sessão do desenvolvedor não carrega nenhum dos grupos listados. | Adicione o desenvolvedor a um grupo listado no seu IdP, ou liste por último um upstream sem `groups` para atender todos os demais. O gateway lê os grupos novamente na próxima atualização de token do desenvolvedor. Se o IdP omitiu os grupos e seu endpoint userinfo os retorna, defina [`oidc.userinfo_fallback: true`](https://code.claude.com/docs/pt/claude-apps-gateway-config#oidc). |

425| 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`. |431| 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`. |

426| As sessões não são renovadas silenciosamente após definir `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |432| As sessões não são renovadas silenciosamente após definir `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |

427| O navegador mostra "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou acessadas via proxy | Abra o link de verificação diretamente |433| O navegador mostra "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou acessadas via proxy | Abra o link de verificação diretamente |


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

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

451 457 

452Ao reduzir a reivindicação de grupos, mantenha os grupos que você nomeou nestas configurações, que decidem o acesso, a política e os limites de gastos de um desenvolvedor:458Ao reduzir a reivindicação de grupos, mantenha os grupos que você nomeou nestas configurações, que decidem o acesso, a política, os upstreams e os limites de gastos de um desenvolvedor:

453 459 

454* **[`oidc.allowed_groups`](https://code.claude.com/docs/pt/claude-apps-gateway-config#oidc)**: decide quem pode fazer login460* **[`oidc.allowed_groups`](https://code.claude.com/docs/pt/claude-apps-gateway-config#oidc)**: decide quem pode fazer login

455* **[`admin.admin_groups`](https://code.claude.com/docs/pt/claude-apps-gateway-config#admin)**: decide quem pode chamar a API de administração com sua sessão do gateway461* **[`admin.admin_groups`](https://code.claude.com/docs/pt/claude-apps-gateway-config#admin)**: decide quem pode chamar a API de administração com sua sessão do gateway

456* **`match.groups` em [`managed.policies`](https://code.claude.com/docs/pt/claude-apps-gateway-config#managed)**: decide qual política se aplica a um desenvolvedor462* **`match.groups` em [`managed.policies`](https://code.claude.com/docs/pt/claude-apps-gateway-config#managed)**: decide qual política se aplica a um desenvolvedor

463* **`groups` em um [upstream](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#send-each-team-to-its-own-upstream)**: decide quais upstreams atendem um desenvolvedor

457* **[Limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md) `rbac_group`**: decidem quais limites de grupo se aplicam a um desenvolvedor464* **[Limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md) `rbac_group`**: decidem quais limites de grupo se aplicam a um desenvolvedor

458 465 

459### Pensamento longo termina em timeouts do proxy466### Pensamento longo termina em timeouts do proxy

Details

620 620 

621Peça ao desenvolvedor que passe o id da equipe para a qual o trabalho é feito, como `claude --model data-claude-opus-4-8`.621Peça ao desenvolvedor que passe o id da equipe para a qual o trabalho é feito, como `claude --model data-claude-opus-4-8`.

622 622 

623O gateway aplica a [primeira política que corresponde](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#managed), portanto, um desenvolvedor que está apenas nos dois grupos de equipe recebe a política `team-platform`. Suas sessões no id da equipe de dados falham com `is not in your role's availableModels allowlist`, nomeando o modelo padrão do Claude Code e não o id que ele digitou. Se, em vez disso, você listar ambos os grupos de equipe nos `groups` de uma única política, todos em qualquer uma das equipes poderão faturar o perfil de qualquer equipe.623Por padrão, o gateway aplica a [primeira política que corresponde](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#managed), portanto, um desenvolvedor que está apenas nos dois grupos de equipe recebe a política `team-platform`. Suas sessões no id da equipe de dados falham com `is not in your role's availableModels allowlist`, nomeando o modelo padrão do Claude Code e não o id que ele digitou. Se, em vez disso, você listar ambos os grupos de equipe nos `groups` de uma única política, todos em qualquer uma das equipes poderão faturar o perfil de qualquer equipe.

624 624 

625Nos [limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md#set-a-cap) próprios do gateway, o desenvolvedor tem um total e um limite por período, por padrão o menor dos limites de seus grupos, qualquer que seja o id usado por uma sessão. Para evitar que o limite mais baixo de uma equipe interrompa o trabalho para a outra, defina um limite por usuário para o desenvolvedor.625Nos [limites de gastos](https://code.claude.com/docs/pt/claude-apps-gateway-spend-limits.md#set-a-cap) próprios do gateway, o desenvolvedor tem um total e um limite por período, por padrão o menor dos limites de seus grupos, qualquer que seja o id usado por uma sessão. Para evitar que o limite mais baixo de uma equipe interrompa o trabalho para a outra, defina um limite por usuário para o desenvolvedor.

626 626 

Details

99| `--init-only` | Executar hooks de [Setup](https://code.claude.com/docs/pt/hooks.md#setup) e `SessionStart`, depois sair sem iniciar uma conversa | `claude --init-only` |99| `--init-only` | Executar hooks de [Setup](https://code.claude.com/docs/pt/hooks.md#setup) e `SessionStart`, depois sair sem iniciar uma conversa | `claude --init-only` |

100| `--include-hook-events` | Incluir eventos do ciclo de vida do hook no fluxo de saída. Eventos de hook `SessionStart` e `Setup` são sempre incluídos e não precisam deste sinalizador. Alguns eventos de hook, como `Notification`, `SessionEnd`, `PreCompact` e `PostCompact`, nunca produzem um evento `hook_started`, mesmo com este sinalizador. Para esses eventos, Claude Code ainda emite `hook_progress` enquanto um hook de comando que é executado por mais de um segundo produz saída, e emite `hook_response` apenas quando um [hook que é executado em segundo plano](https://code.claude.com/docs/pt/hooks.md#run-hooks-in-the-background) termina. Requer `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |100| `--include-hook-events` | Incluir eventos do ciclo de vida do hook no fluxo de saída. Eventos de hook `SessionStart` e `Setup` são sempre incluídos e não precisam deste sinalizador. Alguns eventos de hook, como `Notification`, `SessionEnd`, `PreCompact` e `PostCompact`, nunca produzem um evento `hook_started`, mesmo com este sinalizador. Para esses eventos, Claude Code ainda emite `hook_progress` enquanto um hook de comando que é executado por mais de um segundo produz saída, e emite `hook_response` apenas quando um [hook que é executado em segundo plano](https://code.claude.com/docs/pt/hooks.md#run-hooks-in-the-background) termina. Requer `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-hook-events "query"` |

101| `--include-partial-messages` | Incluir eventos de streaming parcial na saída. Requer `--print` e `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |101| `--include-partial-messages` | Incluir eventos de streaming parcial na saída. Requer `--print` e `--output-format stream-json` | `claude -p --output-format stream-json --verbose --include-partial-messages "query"` |

102| `--input-format` | Especificar formato de entrada para modo print (opções: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |102| `--input-format` | Especificar formato de entrada para modo print (opções: `text`, `stream-json`) | `claude -p --input-format stream-json --output-format stream-json --verbose` |

103| `--json-schema` | Obter saída JSON validada correspondendo a um JSON Schema após o agente completar seu fluxo de trabalho (apenas modo print). Veja [saídas estruturadas](https://code.claude.com/docs/pt/agent-sdk/structured-outputs.md). Claude Code sai com um erro em um schema inválido e aceita a palavra-chave `format` como uma anotação sem validação do lado do cliente | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |103| `--json-schema` | Obter saída JSON validada correspondendo a um JSON Schema após o agente completar seu fluxo de trabalho (apenas modo print). Veja [saídas estruturadas](https://code.claude.com/docs/pt/agent-sdk/structured-outputs.md). Claude Code sai com um erro em um schema inválido e aceita a palavra-chave `format` como uma anotação sem validação do lado do cliente | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

104| `--maintenance` | Executar hooks de [Setup](https://code.claude.com/docs/pt/hooks.md#setup) com o matcher `maintenance` antes da sessão (apenas modo print) | `claude -p --maintenance "query"` |104| `--maintenance` | Executar hooks de [Setup](https://code.claude.com/docs/pt/hooks.md#setup) com o matcher `maintenance` antes da sessão (apenas modo print) | `claude -p --maintenance "query"` |

105| `--max-budget-usd` | Interromper a execução quando o gasto estimado em chamadas de API atingir este valor (apenas modo print). Claude Code compara o limite com sua [estimativa de custo do lado do cliente](https://code.claude.com/docs/pt/agent-sdk/cost-tracking.md#estimates-not-billing), que pode diferir da sua fatura. Gastos de [subagentes](https://code.claude.com/docs/pt/sub-agents.md) contam para o limite. O gasto pode ultrapassar o limite, portanto [deixe uma margem](https://code.claude.com/docs/pt/agent-sdk/agent-loop.md#budget-headroom). Quando você retorna a uma conversa com `--continue` ou `--resume`, totais [restaurados de execuções anteriores](https://code.claude.com/docs/pt/agent-sdk/cost-tracking.md#accumulate-costs-across-multiple-calls) não contam para ele. Uma vez que o gasto atinge o limite, gerar outro subagente falha com `Budget limit reached`, e Claude Code para subagentes de fundo que ainda estão em execução; os comportamentos de aplicação do limite requerem Claude Code v2.1.217 ou posterior | `claude -p --max-budget-usd 5.00 "query"` |105| `--max-budget-usd` | Interromper a execução quando o gasto estimado em chamadas de API atingir este valor (apenas modo print). Claude Code compara o limite com sua [estimativa de custo do lado do cliente](https://code.claude.com/docs/pt/agent-sdk/cost-tracking.md#estimates-not-billing), que pode diferir da sua fatura. Gastos de [subagentes](https://code.claude.com/docs/pt/sub-agents.md) contam para o limite. O gasto pode ultrapassar o limite, portanto [deixe uma margem](https://code.claude.com/docs/pt/agent-sdk/agent-loop.md#budget-headroom). Quando você retorna a uma conversa com `--continue` ou `--resume`, totais [restaurados de execuções anteriores](https://code.claude.com/docs/pt/agent-sdk/cost-tracking.md#accumulate-costs-across-multiple-calls) não contam para ele. Uma vez que o gasto atinge o limite, gerar outro subagente falha com `Budget limit reached`, e Claude Code para subagentes de fundo que ainda estão em execução; os comportamentos de aplicação do limite requerem Claude Code v2.1.217 ou posterior | `claude -p --max-budget-usd 5.00 "query"` |

106| `--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. Com `--input-format stream-json`, uma mensagem ainda enfileirada quando o limite termina um turno permanece enfileirada e inicia um novo turno com seu próprio limite | `claude -p --max-turns 3 "query"` |106| `--max-turns` | Limitar o número de turnos de agente (apenas modo print). Sem limite por padrão. Com `--input-format stream-json`, uma mensagem ainda enfileirada quando o limite termina um turno permanece enfileirada e inicia um novo turno com seu próprio limite | `claude -p --max-turns 3 "query"` |

107| `--mcp-config` | Carregar servidores MCP de arquivos JSON ou strings (separados por espaço). Quando você passa este sinalizador com `-p`, Claude Code aguarda servidores ainda pendentes se conectarem antes de executar o primeiro turno, até o timeout de inicialização [`MCP_TIMEOUT`](https://code.claude.com/docs/pt/env-vars), 30 segundos por padrão; um servidor com uma [lista de ferramentas em cache](https://code.claude.com/docs/pt/mcp.md#managing-your-servers) pula a espera e se conecta no primeiro uso. Em um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#connection-timing), uma espera mais curta se aplica em vez disso. A espera requer Claude Code v2.1.221 ou posterior | `claude --mcp-config ./mcp.json` |107| `--mcp-config` | Carregar servidores MCP de arquivos JSON ou strings (separados por espaço). Quando você passa este sinalizador com `-p`, Claude Code aguarda servidores ainda pendentes se conectarem antes de executar o primeiro turno, até o timeout de inicialização [`MCP_TIMEOUT`](https://code.claude.com/docs/pt/env-vars), 30 segundos por padrão; um servidor com uma [lista de ferramentas em cache](https://code.claude.com/docs/pt/mcp.md#managing-your-servers) pula a espera e se conecta no primeiro uso. Em um [ambiente auto-hospedado](https://code.claude.com/docs/pt/self-hosted-environments-configuration.md#connection-timing), uma espera mais curta se aplica em vez disso. A espera requer Claude Code v2.1.221 ou posterior | `claude --mcp-config ./mcp.json` |

108| `--model` | Define o modelo para a sessão atual com um [alias de modelo](https://code.claude.com/docs/pt/model-config.md#model-aliases) como `sonnet`, `opus`, `haiku` ou `fable`, ou o nome completo de um modelo. Substitui a configuração [`model`](https://code.claude.com/docs/pt/settings-reference#model) e [`ANTHROPIC_MODEL`](https://code.claude.com/docs/pt/model-config#environment-variables) | `claude --model claude-sonnet-5` |108| `--model` | Define o modelo para a sessão atual com um [alias de modelo](https://code.claude.com/docs/pt/model-config.md#model-aliases) como `sonnet`, `opus`, `haiku` ou `fable`, ou o nome completo de um modelo. Substitui a configuração [`model`](https://code.claude.com/docs/pt/settings-reference#model) e [`ANTHROPIC_MODEL`](https://code.claude.com/docs/pt/model-config#environment-variables) | `claude --model claude-sonnet-5` |

109| `--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>`. [`/rename`](https://code.claude.com/docs/pt/commands) altera o nome durante a sessão e também o mostra na barra de prompt | `claude -n "my-feature-work"` |109| `--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>`. [`/rename`](https://code.claude.com/docs/pt/commands) altera o nome durante a sessão e também o mostra na barra de prompt | `claude -n "my-feature-work"` |

Details

335| **C/C++** | GCC, Clang, cmake, ninja, conan |335| **C/C++** | GCC, Clang, cmake, ninja, conan |

336| **Docker** | docker, dockerd, docker compose |336| **Docker** | docker, dockerd, docker compose |

337| **Databases** | PostgreSQL 16, Redis 7.0 |337| **Databases** | PostgreSQL 16, Redis 7.0 |

338| **Browser** | Chrome for Testing em `/usr/bin/google-chrome`, com a variável de ambiente `CHROME_PATH` definida para esse caminho |

338| **Utilities** | git, gh, jq, yq, ripgrep, tmux, vim, nano |339| **Utilities** | git, gh, jq, yq, ripgrep, tmux, vim, nano |

339 340 

340¹ Bun está instalado mas tem [problemas de compatibilidade](#install-dependencies-with-a-sessionstart-hook) de proxy conhecidos para busca de pacotes.341¹ Bun está instalado mas tem [problemas de compatibilidade](#install-dependencies-with-a-sessionstart-hook) de proxy conhecidos para busca de pacotes.

commands.md +2 −2

Details

35A tabela abaixo lista todos os comandos incluídos no Claude Code. A maioria são comandos integrados cujo comportamento é codificado na CLI. Dois tipos de entradas são marcados:35A tabela abaixo lista todos os comandos incluídos no Claude Code. A maioria são comandos integrados cujo comportamento é codificado na CLI. Dois tipos de entradas são marcados:

36 36 

37* **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills)**: uma skill incluída. Funciona como skills que você escreve: um prompt entregue ao Claude.37* **[Skill](https://code.claude.com/docs/pt/skills.md#bundled-skills)**: uma skill incluída. Funciona como skills que você escreve: um prompt entregue ao Claude.

38 * `/verify` é executado apenas quando você o invoca. Antes da v2.1.215, Claude também podia executar `/verify` por conta própria.38 * `/verify` é executado apenas quando você o invoca.

39* **[Workflow](https://code.claude.com/docs/pt/workflows.md#bundled-workflows)**: um [workflow dinâmico](https://code.claude.com/docs/pt/workflows.md) incluído que distribui trabalho entre muitos subagentes e é executado em segundo plano.39* **[Workflow](https://code.claude.com/docs/pt/workflows.md#bundled-workflows)**: um [workflow dinâmico](https://code.claude.com/docs/pt/workflows.md) incluído que distribui trabalho entre muitos subagentes e é executado em segundo plano.

40 * `/deep-research` é executado apenas quando você o invoca.40 * `/deep-research` é executado apenas quando você o invoca.

41 41 


114| `/model [model]` | Mude o modelo de IA e salve-o como seu padrão para novas sessões. Para modelos que suportam, use setas esquerda/direita para [ajustar nível de esforço](https://code.claude.com/docs/pt/model-config.md#adjust-effort-level). Sem argumento, abre um seletor; pressione `s` em uma linha para mudar apenas para a sessão atual. Consulte [quando o novo modelo começa](https://code.claude.com/docs/pt/interactive-mode.md#when-claude-code-sends-what-you-queued). Antes da v2.1.242, podia esperar. Com `-p`, passe um argumento de modelo, que não é salvo como seu padrão; requer v2.1.205 ou posterior |114| `/model [model]` | Mude o modelo de IA e salve-o como seu padrão para novas sessões. Para modelos que suportam, use setas esquerda/direita para [ajustar nível de esforço](https://code.claude.com/docs/pt/model-config.md#adjust-effort-level). Sem argumento, abre um seletor; pressione `s` em uma linha para mudar apenas para a sessão atual. Consulte [quando o novo modelo começa](https://code.claude.com/docs/pt/interactive-mode.md#when-claude-code-sends-what-you-queued). Antes da v2.1.242, podia esperar. Com `-p`, passe um argumento de modelo, que não é salvo como seu padrão; requer v2.1.205 ou posterior |

115| `/output-style [style]` | Liste [estilos de saída](https://code.claude.com/docs/pt/output-styles.md) ou mude para um, por exemplo `/output-style concise`. Consulte [Altere seu estilo de saída](https://code.claude.com/docs/pt/output-styles.md#change-your-output-style). Requer Claude Code v2.1.269 ou posterior |115| `/output-style [style]` | Liste [estilos de saída](https://code.claude.com/docs/pt/output-styles.md) ou mude para um, por exemplo `/output-style concise`. Consulte [Altere seu estilo de saída](https://code.claude.com/docs/pt/output-styles.md#change-your-output-style). Requer Claude Code v2.1.269 ou posterior |

116| `/passes` | Compartilhe uma semana gratuita de Claude Code com amigos. Visível apenas se sua conta for elegível |116| `/passes` | Compartilhe uma semana gratuita de Claude Code com amigos. Visível apenas se sua conta for elegível |

117| `/permissions` | Gerencie regras de permissão de ferramentas permitir, perguntar e negar. Abre um diálogo interativo onde você pode visualizar regras por escopo, adicionar ou remover regras, gerenciar diretórios de trabalho e revisar [negações recentes do modo auto](https://code.claude.com/docs/pt/auto-mode-config.md#review-denials). Você também pode visualizar e editar [regras do classificador do modo auto](https://code.claude.com/docs/pt/auto-mode-config.md#edit-rules-from-permissions) da aba **Auto mode** do diálogo. Quando você o executa enquanto Claude está respondendo, Claude Code abre o diálogo imediatamente e aplica suas mudanças começando com a próxima chamada de ferramenta do Claude no mesmo turno. Antes da v2.1.234, Claude Code enfileirava o comando até que o turno terminasse. Alias: `/allowed-tools` |117| `/permissions` | Gerencie regras de permissão de ferramentas permitir, perguntar e negar. Abre um diálogo interativo onde você pode visualizar regras por escopo, adicionar ou remover regras, gerenciar diretórios de trabalho e revisar [negações recentes do modo auto](https://code.claude.com/docs/pt/auto-mode-config.md#review-denials). Você também pode visualizar e editar [regras do classificador do modo auto](https://code.claude.com/docs/pt/auto-mode-config.md#edit-rules-from-permissions) da aba **Auto mode** do diálogo. Alias: `/allowed-tools` |

118| `/plan [description]` | Entre no modo de planejamento diretamente do prompt. Passe uma descrição opcional para entrar no modo de planejamento e começar imediatamente com essa tarefa, por exemplo `/plan fix the auth bug` |118| `/plan [description]` | Entre no modo de planejamento diretamente do prompt. Passe uma descrição opcional para entrar no modo de planejamento e começar imediatamente com essa tarefa, por exemplo `/plan fix the auth bug` |

119| `/plugin [subcommand]` | Gerencie [plugins](https://code.claude.com/docs/pt/plugins/overview.md) do Claude Code. Execute sem argumento para abrir o menu de plugin, ou passe um subcomando como `list`, `install`, `enable` ou `disable` para agir diretamente. Claude Code pode ativar um plugin durante a instalação; o [resumo de instalação](https://code.claude.com/docs/pt/plugins/install.md#install-a-plugin) diz se fez ou se você deve executar `/reload-plugins` |119| `/plugin [subcommand]` | Gerencie [plugins](https://code.claude.com/docs/pt/plugins/overview.md) do Claude Code. Execute sem argumento para abrir o menu de plugin, ou passe um subcomando como `list`, `install`, `enable` ou `disable` para agir diretamente. Claude Code pode ativar um plugin durante a instalação; o [resumo de instalação](https://code.claude.com/docs/pt/plugins/install.md#install-a-plugin) diz se fez ou se você deve executar `/reload-plugins` |

120| `/plugin-authoring` | Carregue a referência que Claude usa para [escrever um mod](https://code.claude.com/docs/pt/plugins/mods/create.md#ask-claude-for-a-mod). Claude pode carregá-la por conta própria quando você pede um mod. Esta é uma skill de um [plugin integrado](https://code.claude.com/docs/pt/plugins/mods/overview.md#mods-built-into-claude-code), que você pode desativar em `/plugin`. Requer Claude Code v2.1.287 ou posterior |120| `/plugin-authoring` | Carregue a referência que Claude usa para [escrever um mod](https://code.claude.com/docs/pt/plugins/mods/create.md#ask-claude-for-a-mod). Claude pode carregá-la por conta própria quando você pede um mod. Esta é uma skill de um [plugin integrado](https://code.claude.com/docs/pt/plugins/mods/overview.md#mods-built-into-claude-code), que você pode desativar em `/plugin`. Requer Claude Code v2.1.287 ou posterior |

costs.md +6 −4

Details

20>20>

21> O bloco Session em `/usage` mostra o uso de tokens da API e é destinado a usuários de API. Assinantes do Claude Pro, Max e Ultra têm uso incluído em sua assinatura, portanto, a figura de custo da sessão não é relevante para fins de faturamento. Os assinantes veem barras de uso do plano, estatísticas de atividade e um detalhamento de uso na mesma tela.21> O bloco Session em `/usage` mostra o uso de tokens da API e é destinado a usuários de API. Assinantes do Claude Pro, Max e Ultra têm uso incluído em sua assinatura, portanto, a figura de custo da sessão não é relevante para fins de faturamento. Os assinantes veem barras de uso do plano, estatísticas de atividade e um detalhamento de uso na mesma tela.

22 22 

23O bloco Session no topo de `/usage` mostra estatísticas detalhadas de uso de tokens para sua sessão atual. Claude Code calcula a figura em dólares localmente a partir de contagens de tokens ao preço de tabela, a menos que uma tabela [`modelPricing`](https://code.claude.com/docs/pt/settings-reference#modelpricing) esteja em vigor. Um administrador define uma nas configurações gerenciadas de sua organização para que a figura use suas taxas contratadas, e enquanto uma tabela está em vigor, a linha `Total cost` carrega a nota `at your organization's configured rates`. A figura é uma estimativa, portanto, para faturamento autorizado, consulte a página de Uso no [Claude Console](https://platform.claude.com/usage).23O bloco Session no topo de `/usage` mostra estatísticas detalhadas de uso de tokens para sua sessão atual.

24 

25Claude Code calcula a figura em dólares localmente a partir de contagens de tokens ao preço de tabela, a menos que uma tabela [`modelPricing`](https://code.claude.com/docs/pt/settings-reference#modelpricing) esteja em vigor. Um administrador define uma nas configurações gerenciadas de sua organização para que a figura use suas taxas contratadas, e enquanto uma tabela está em vigor, a linha `Total cost` carrega a nota `at your organization's configured rates`. A figura é uma estimativa, portanto, para faturamento autorizado, consulte [Gerencie custos para sua organização](#manage-costs-for-your-organization).

24 26 

25```text theme={null}27```text theme={null}

26Total cost: $0.5528Total cost: $0.55


138 140 

139Se você executar `/usage-credits` novamente enquanto sua solicitação anterior está aguardando um administrador, Claude Code diz que uma solicitação já foi enviada em vez de enviar uma duplicata. Após um administrador descartar sua solicitação, executar o comando novamente envia uma nova. Antes da v2.1.222, uma solicitação descartada também bloqueava novas solicitações.141Se você executar `/usage-credits` novamente enquanto sua solicitação anterior está aguardando um administrador, Claude Code diz que uma solicitação já foi enviada em vez de enviar uma duplicata. Após um administrador descartar sua solicitação, executar o comando novamente envia uma nova. Antes da v2.1.222, uma solicitação descartada também bloqueava novas solicitações.

140 142 

141Em planos Pro e Max, quando você atinge seu limite de gasto com créditos de uso ainda disponíveis, Claude Code o solicita a aumentar ou remover o limite sem sair da CLI. Se o servidor rejeitar a mudança, consulte [Could not update your spend limit](https://code.claude.com/docs/pt/errors.md#could-not-update-your-spend-limit).143Em planos Pro, Max e Ultra, quando você atinge seu limite de gasto com créditos de uso ainda disponíveis, Claude Code o solicita a aumentar ou remover o limite sem sair da CLI. Se o servidor rejeitar a mudança, consulte [Could not update your spend limit](https://code.claude.com/docs/pt/errors.md#could-not-update-your-spend-limit).

142 144 

143## Gerenciar custos para sua organização145## Gerenciar custos para sua organização

144 146 


149| Sua configuração | Ver gastos | Limitar gastos | Relatório por usuário |151| Sua configuração | Ver gastos | Limitar gastos | Relatório por usuário |

150| :- | :- | :- | :- |152| :- | :- | :- | :- |

151| [Claude for Teams ou Enterprise](#claude-for-teams-and-enterprise) | [Relatório de gastos em análises da organização](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | Limites de gastos nas configurações de administrador | [CSV do relatório de gastos](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans); [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) no Enterprise |153| [Claude for Teams ou Enterprise](#claude-for-teams-and-enterprise) | [Relatório de gastos em análises da organização](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans) | Limites de gastos nas configurações de administrador | [CSV do relatório de gastos](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans); [Enterprise Analytics API](https://platform.claude.com/docs/en/api/admin/analytics) no Enterprise |

152| [Claude Console (API)](#claude-console) | [Página de uso do Console](https://platform.claude.com/usage) | Limites de gastos do workspace | [Dashboard do Console](https://platform.claude.com/claude-code), [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |154| [Claude Console (API)](#claude-console) | [Página de custos do Console](https://platform.claude.com/cost) | Limites de gastos do workspace | [Dashboard do Console](https://platform.claude.com/claude-code), [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) |

153| [Amazon Bedrock, Plataforma de Agentes do Google Cloud, ou Microsoft Foundry](#cloud-providers) | Seu console de faturamento da nuvem | Controles de orçamento da sua nuvem | [OpenTelemetry](https://code.claude.com/docs/pt/monitoring-usage.md) ou um [gateway LLM](https://code.claude.com/docs/pt/llm-gateway) |155| [Amazon Bedrock, Plataforma de Agentes do Google Cloud, ou Microsoft Foundry](#cloud-providers) | Seu console de faturamento da nuvem | Controles de orçamento da sua nuvem | [OpenTelemetry](https://code.claude.com/docs/pt/monitoring-usage.md) ou um [gateway LLM](https://code.claude.com/docs/pt/llm-gateway) |

154 156 

155[Exportação OpenTelemetry](https://code.claude.com/docs/pt/monitoring-usage.md) funciona em todas as configurações e é a única opção que transmite métricas de token e custo por usuário para sua própria pilha de observabilidade em tempo quase real.157[Exportação OpenTelemetry](https://code.claude.com/docs/pt/monitoring-usage.md) funciona em todas as configurações e é a única opção que transmite métricas de token e custo por usuário para sua própria pilha de observabilidade em tempo quase real.


193>195>

194> 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/en/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.196> 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/en/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.

195 197 

196Para relatório por usuário, o [dashboard do Console](https://platform.claude.com/claude-code) mostra gastos e linhas aceitas por membro, e a [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) retorna as mesmas métricas diárias por usuário programaticamente com uma [chave de API de Administrador](https://platform.claude.com/settings/admin-keys). Veja [análises para clientes de API](https://code.claude.com/docs/pt/analytics.md#access-analytics-for-api-customers).198Para relatório por usuário, o [dashboard do Console](https://platform.claude.com/claude-code) mostra gastos e linhas aceitas por membro, e a [Claude Code Analytics API](https://platform.claude.com/docs/en/build-with-claude/claude-code-analytics-api) retorna métricas diárias por usuário programaticamente com uma [chave de API de Administrador](https://platform.claude.com/settings/admin-keys). Veja [análises para clientes de API](https://code.claude.com/docs/pt/analytics.md#access-analytics-for-api-customers).

197 199 

198#### Recomendações de limite de taxa200#### Recomendações de limite de taxa

199 201 

desktop.md +23 −10

Details

131* Iniciar ou parar servidores, ou parar todos de uma vez, no menu **Dev servers** no cabeçalho do painel de navegador131* Iniciar ou parar servidores, ou parar todos de uma vez, no menu **Dev servers** no cabeçalho do painel de navegador

132* Escolher se o navegador mantém cookies depois que você fecha o aplicativo com **Keep cookies** no menu **⋮** do painel de navegador, para que você não tenha que fazer login novamente durante o desenvolvimento132* Escolher se o navegador mantém cookies depois que você fecha o aplicativo com **Keep cookies** no menu **⋮** do painel de navegador, para que você não tenha que fazer login novamente durante o desenvolvimento

133 133 

134Em uma sessão SSH, você perde os cookies do painel quando fecha o Desktop. Não é possível alterar isso com **Keep cookies**.

135 

134Claude cria a configuração inicial do servidor com base em seu projeto. Se seu aplicativo usa um comando dev personalizado, edite `.claude/launch.json` para corresponder à sua configuração. Veja [Configurar servidores de visualização](#configure-preview-servers) para a referência completa.136Claude cria a configuração inicial do servidor com base em seu projeto. Se seu aplicativo usa um comando dev personalizado, edite `.claude/launch.json` para corresponder à sua configuração. Veja [Configurar servidores de visualização](#configure-preview-servers) para a referência completa.

135 137 

136Para limpar os dados salvos do navegador, selecione **Clear browsing data** no menu **⋮** do painel de navegador. Para desativar o navegador completamente, desative **Browser tools** em **Settings > Code** ou **Settings > Claude Code**.138Para limpar os dados salvos do navegador, selecione **Clear browsing data** no menu **⋮** do painel de navegador. Para desativar o navegador completamente, desative **Browser tools** em **Settings > Code** ou **Settings > Claude Code**.


312 314 

313Em qualquer um dos layouts, digite `/context` na caixa de prompt para exibir no chat um detalhamento por categoria da janela de contexto desta sessão.315Em qualquer um dos layouts, digite `/context` na caixa de prompt para exibir no chat um detalhamento por categoria da janela de contexto desta sessão.

314 316 

315Ambos os layouts têm o anel de uso ao lado do seletor de modelo. Clique nele para ver o uso do seu plano, que é compartilhado em todas as suas superfícies Claude Code.317Em ambos os layouts, o anel de uso fica na linha abaixo da caixa de prompt. Clique nele para ver o uso do seu plano, que é compartilhado em todas as suas superfícies Claude Code.

316 318 

317## Deixar Claude usar seu computador319## Deixar Claude usar seu computador

318 320 


409 411 

410#### Executar uma sessão em seu próprio worktree412#### Executar uma sessão em seu próprio worktree

411 413 

412Em um projeto que é um repositório Git, ative **Worktree** antes de iniciar uma sessão para executá-la em seu próprio [Git worktree](https://code.claude.com/docs/pt/worktrees.md), uma cópia isolada do projeto. Por padrão, **Worktree** fica desativado e Claude trabalha na própria pasta do projeto. No [layout atual](#check-which-layout-you-have), ative o botão **Worktree** na [linha abaixo da caixa de prompt](#start-a-session).414Em um projeto que é um repositório Git, ative **Worktree** antes de iniciar uma sessão para executá-la em seu próprio [worktree do Git](https://code.claude.com/docs/pt/worktrees.md), uma cópia isolada do projeto. Por padrão, **Worktree** está desativado e Claude trabalha na própria pasta do projeto. No [layout atual](#check-which-layout-you-have), ative **Worktree** na [linha abaixo da caixa de prompt](#start-a-session).

413 415 

414* **Com um [provedor terceirizado](https://code.claude.com/docs/pt/third-party-integrations.md)**: se a linha abaixo da caixa de prompt mostrar o controle da pasta do projeto, mas nenhum botão **Worktree**, clique nesse controle e ative **Worktree**416* **Com um [provedor terceirizado](https://code.claude.com/docs/pt/third-party-integrations.md)**: se a linha abaixo da caixa de prompt mostrar o controle da pasta do projeto, mas não **Worktree**, clique no controle da pasta do projeto e ative **Worktree**

415* **Como padrão para um [ambiente local ou SSH salvo](#create-a-saved-environment)**: defina **Worktree** ao criar ou editar o ambiente417* **Como padrão para um [ambiente local ou SSH salvo](#create-a-saved-environment)**: defina **Worktree** ao criar ou editar o ambiente

416* **[Layout anterior](#check-which-layout-you-have)**: marque a caixa de seleção **worktree** ao lado do nome do branch, acima da caixa de prompt418* **[Layout anterior](#check-which-layout-you-have)**: marque a caixa de seleção **worktree** ao lado do nome do branch, acima da caixa de prompt

417 419 


1094 1096 

1095##### Conectar no Windows sem o cliente OpenSSH1097##### Conectar no Windows sem o cliente OpenSSH

1096 1098 

1097No Windows, você se conecta pelo cliente SSH integrado do Desktop se seu computador não atender aos [requisitos para o cliente OpenSSH](#use-your-ssh-configuration). Com um provedor terceirizado, você se conecta pelo cliente integrado por padrão, e seu administrador pode alterar isso. Para a configuração, consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1099No Windows, você se conecta por meio do cliente SSH integrado do Desktop se o seu computador não atender aos [requisitos do cliente OpenSSH](#use-your-ssh-configuration). Com um provedor terceirizado, o cliente pelo qual você se conecta também depende da sua versão do Desktop e das configurações do seu administrador. Consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1098 1100 

1099Com o cliente integrado, você ainda pode inserir um nome de `Host` da sua configuração SSH no campo **SSH host** se o seu `PATH` tiver um comando `ssh`, com estes limites:1101Com o cliente integrado, você ainda pode inserir um nome de `Host` da sua configuração SSH no campo **SSH host** se o seu `PATH` tiver um comando `ssh`, com estes limites:

1100 1102 

1101* **Configurações da entrada**: o Desktop usa `HostName`, `User`, `Port` e `IdentityFile`. Ele também usa `ProxyCommand` se houver um shell `sh` no seu `PATH`.1103* **Configurações da entrada**: o Desktop usa `HostName`, `User`, `Port`, `IdentityFile` e `ConnectTimeout`. Ele também usa `ProxyCommand` se houver um shell `sh` no seu `PATH`.

1102* **SSH key (optional)**: deixe este campo vazio para manter o `IdentityFile` da entrada, porque um arquivo de chave que você escolher aqui substitui o `IdentityFile`1104* **SSH key (optional)**: deixe este campo vazio para manter o `IdentityFile` da entrada, porque um arquivo de chave que você escolher aqui substitui o `IdentityFile`

1103* **`CertificateFile` e `ProxyJump`**: o Desktop ignora `CertificateFile`, e a conexão falha se a entrada definir `ProxyJump`. Para usar qualquer uma dessas configurações, [conecte-se pelo cliente OpenSSH](#use-your-ssh-configuration).1105* **`CertificateFile` e `ProxyJump`**: o Desktop ignora `CertificateFile`, e a conexão falha se a entrada definir `ProxyJump`. Para usar qualquer uma dessas configurações, [conecte-se pelo cliente OpenSSH](#use-your-ssh-configuration).

1104 1106 


1198 1200 

1199##### Aumentar o timeout da conexão SSH1201##### Aumentar o timeout da conexão SSH

1200 1202 

1201Se sua configuração SSH não define nenhum `ConnectTimeout` para o host, o Desktop dá ao `ssh` 30 segundos para se conectar. Por meio de um jump host ou de um `ProxyCommand`, esse tempo inclui o tempo que a rota leva para se conectar. Se sua rota precisar de mais tempo, adicione um valor maior à entrada:1203Se sua sessão atingir o timeout enquanto se conecta por meio de um jump host ou de um `ProxyCommand`, aumente `ConnectTimeout` na entrada da máquina remota no seu `~/.ssh/config`. Use mais de 90 segundos. Acrescente qualquer tempo que um jump host ou um `ProxyCommand` espere por você, por exemplo em um prompt de login ou por uma notificação push no telefone:

1202 1204 

1203```text ~/.ssh/config theme={null}1205```text ~/.ssh/config theme={null}

1204Host devbox1206Host devbox


1210 1212 

1211O `ssh` usa o primeiro valor que encontra para um host, portanto mantenha a entrada acima de qualquer entrada `Host *` que defina `ConnectTimeout`. Para confirmar, execute `ssh -G devbox` em um terminal no seu computador. A saída inclui `connecttimeout 120`. Depois de alterar o valor, saia do Desktop e abra-o novamente.1213O `ssh` usa o primeiro valor que encontra para um host, portanto mantenha a entrada acima de qualquer entrada `Host *` que defina `ConnectTimeout`. Para confirmar, execute `ssh -G devbox` em um terminal no seu computador. A saída inclui `connecttimeout 120`. Depois de alterar o valor, saia do Desktop e abra-o novamente.

1212 1214 

1213Se a própria máquina remota aguarda uma aprovação no seu telefone, aprove em até 45 segundos, qualquer que seja o `ConnectTimeout` que você definir. Você não pode aumentar esse limite, porque o próprio Desktop define `ServerAliveInterval` e `ServerAliveCountMax`, e o `ssh` então encerra um login em que a máquina remota não envia nada por esse tempo. Se, em vez disso, um jump host ou um `ProxyCommand` aguardar por você, aumente o `ConnectTimeout` na entrada da máquina remota para cobrir esse tempo.1215Se sua configuração SSH não definir nenhum `ConnectTimeout` para o host, o Desktop dá ao `ssh` 30 segundos para se conectar. Por meio de um jump host ou de um `ProxyCommand`, esse tempo inclui o tempo que a rota leva para se conectar.

1216 

1217| `ConnectTimeout` | Conexão | Tempo que você tem |

1218| - | - | - |

1219| Não definido | Você inicia uma sessão por meio de um jump host ou de um `ProxyCommand`, com o Claude Desktop v4.4212.0 ou posterior no macOS ou Linux | 30 segundos e, depois, uma segunda tentativa com 90 segundos. Se o Desktop mostrou um prompt durante a primeira tentativa, você não tem segunda tentativa. O tempo em um prompt de login que o Desktop mostra para um host `ProxyJump` não conta. Outras esperas na rota contam. |

1220| Não definido | Desktop no Windows ou uma versão anterior, uma máquina remota que define `MaxSessions 1`, ou uma reconexão que o Desktop inicia por conta própria | 30 segundos. Toda espera na rota conta. |

1221| Definido | Toda conexão e reconexão | O valor que você definir. Toda espera na rota conta. |

1222 

1223Se a própria máquina remota esperar por uma aprovação no seu telefone, aprove em até 45 segundos, qualquer que seja o `ConnectTimeout` que você definir. Você não pode aumentar esse limite, porque o próprio Desktop define `ServerAliveInterval` e `ServerAliveCountMax`, e o `ssh` então encerra um login em que a máquina remota não envia nada por esse tempo.

1214 1224 

1215##### Corrigir um bloco `Match host` que apenas o Desktop aplica1225##### Corrigir um bloco `Match host` que apenas o Desktop aplica

1216 1226 


1334>1344>

1335> As edições ainda falham em alguns casos, incluindo estes:1345> As edições ainda falham em alguns casos, incluindo estes:

1336>1346>

1337> * **Cliente SSH integrado**: o Desktop o usa, por exemplo, em uma instalação da Microsoft Store, em um computador Windows sem o OpenSSH 9.4 ou posterior da Microsoft, ou por padrão no Windows com um provedor terceirizado1347> * **Cliente SSH integrado**: o Desktop o usa, por exemplo em uma instalação da Microsoft Store, ou em um computador Windows sem o OpenSSH 9.4 ou posterior da Microsoft

1338> * **Localização do repositório**: o repositório é seu diretório pessoal, uma pasta acima dele ou `~/.claude`1348> * **Localização do repositório**: o repositório é seu diretório pessoal, uma pasta acima dele ou `~/.claude`

1339> * **Caminhos do macOS**: em uma máquina remota macOS, o repositório está em `/Volumes`, ou um nome de pasta no caminho do repositório ou do worktree tem um `~` ou um caractere não ASCII1349> * **Caminhos do macOS**: em uma máquina remota macOS, o repositório está em `/Volumes`, ou um nome de pasta no caminho do repositório ou do worktree tem um `~` ou um caractere não ASCII

1340> * **Restrições de pastas**: sua organização restringe quais pastas as sessões podem usar1350> * **Restrições de pastas**: sua organização restringe quais pastas as sessões podem usar


1369* **Senha memorizada**: uma senha que você permite que o Desktop memorize também funciona sem prompt, mas, para uma ausência longa, prefira uma chave mantida pelo seu agente SSH. Se os logins com essa senha forem interrompidos ou travarem, o Desktop pode parar de se reconectar e aguardar por você.1379* **Senha memorizada**: uma senha que você permite que o Desktop memorize também funciona sem prompt, mas, para uma ausência longa, prefira uma chave mantida pelo seu agente SSH. Se os logins com essa senha forem interrompidos ou travarem, o Desktop pode parar de se reconectar e aguardar por você.

1370* **Qualquer outro prompt**: se a máquina remota solicitar qualquer outra coisa, como um código de uso único, você pode receber uma notificação no seu computador. Clique na notificação, ou envie uma mensagem na sessão, e o Desktop mostra o prompt.1380* **Qualquer outro prompt**: se a máquina remota solicitar qualquer outra coisa, como um código de uso único, você pode receber uma notificação no seu computador. Clique na notificação, ou envie uma mensagem na sessão, e o Desktop mostra o prompt.

1371 1381 

1372> [accordion] Se um jump host pede um login, a interrupção é longa, falta saída ou o processo desapareceu1382> [accordion] Se um jump host pedir login, a interrupção for longa, uma mensagem não for enviada, faltar saída ou o processo tiver desaparecido

1373>1383>

1374> * **Jump host, os pushes param enquanto você está ausente**: isso pode acontecer com o Desktop no macOS ou no Linux quando ninguém responde ao login de um jump host, por exemplo um push para um telefone. O Desktop então para de se reconectar enquanto não há ninguém no seu computador. Quando você desbloqueia ou usa o computador, pode receber outro push, porque o Desktop pode tentar novamente. Após três tentativas sem resposta, ele aguarda até que você tente novamente ou envie uma mensagem.1384> * **Jump host, os pushes param enquanto você está ausente**: isso pode acontecer com o Desktop no macOS ou no Linux quando ninguém responde ao login de um jump host, por exemplo um push para um telefone. O Desktop então para de se reconectar enquanto não há ninguém no seu computador. Quando você desbloqueia ou usa o computador, pode receber outro push, porque o Desktop pode tentar novamente. Após três tentativas sem resposta, ele aguarda até que você tente novamente ou envie uma mensagem.

1375> * **Jump host, os pushes continuam chegando**: onde o Desktop não consegue perceber que ninguém responde, como com o Desktop no Windows, ele continua tentando enquanto tiver um processo ao qual se reconectar, esteja esse processo ainda em execução ou não. Você pode receber outro push a cada tentativa. Para encerrar as tentativas, saia do Desktop, o que [pode custar a tarefa em execução](#reopen-a-session-after-you-quit-desktop).1385> * **Jump host, os pushes continuam chegando**: onde o Desktop não consegue perceber que ninguém responde, como com o Desktop no Windows, ele continua tentando enquanto tiver um processo ao qual se reconectar, esteja esse processo ainda em execução ou não. Você pode receber outro push a cada tentativa. Para encerrar as tentativas, saia do Desktop, o que [pode custar a tarefa em execução](#reopen-a-session-after-you-quit-desktop).

1376> * **Interrupção longa**: o Desktop reduz o ritmo para cerca de uma tentativa a cada cinco minutos. Para se reconectar mais cedo, tente novamente na sessão ou envie uma mensagem, que o Desktop entrega assim que estiver conectado.1386> * **Interrupção longa**: o Desktop desacelera para cerca de uma tentativa a cada cinco minutos. Para se reconectar antes, tente novamente na sessão ou envie uma mensagem. O Desktop tenta entregar a mensagem assim que estiver conectado.

1387> * **Mensagem não enviada**: a linha `Your organization's settings haven't loaded, so your message to <host> wasn't sent. Retry to send it.` abaixo da sua mensagem significa que o Desktop se reconectou e reteve sua mensagem, porque as configurações da sua organização ainda não haviam carregado. Selecione **Retry** para enviar a mensagem agora. Se você não fizer nada, o Desktop tenta novamente assim que as configurações carregarem.

1377> * **Saída ausente**: enquanto o Desktop está desconectado, o auxiliar mantém a saída mais recente do Claude Code de cada sessão em um buffer de 16 MiB e descarta a saída mais antiga. Depois que o Desktop se reconecta, a sessão pode mostrar `Loading recent output from <host>…`. Se o Desktop não conseguir carregar toda a saída, você verá a linha `Some output produced while you were disconnected may be missing here.` Essa linha não significa que a tarefa parou.1388> * **Saída ausente**: enquanto o Desktop está desconectado, o auxiliar mantém a saída mais recente do Claude Code de cada sessão em um buffer de 16 MiB e descarta a saída mais antiga. Depois que o Desktop se reconecta, a sessão pode mostrar `Loading recent output from <host>…`. Se o Desktop não conseguir carregar toda a saída, você verá a linha `Some output produced while you were disconnected may be missing here.` Essa linha não significa que a tarefa parou.

1378> * **Processo sumiu**: o processo terminou enquanto o Desktop estava desconectado, como quando a máquina remota reinicia. O Desktop pode então iniciar um novo a partir do histórico salvo da conversa e dizer ao Claude para continuar a tarefa. Se a tarefa continuar parada, envie uma mensagem. Com um provedor terceirizado, atualize para o Claude Desktop v2.42304.0 ou posterior, porque as versões anteriores nunca continuam a tarefa sozinhas.1389> * **Processo sumiu**: o processo terminou enquanto o Desktop estava desconectado, como quando a máquina remota reinicia. O Desktop pode então iniciar um novo a partir do histórico salvo da conversa e dizer ao Claude para continuar a tarefa. Se a tarefa continuar parada, envie uma mensagem. Com um provedor terceirizado, atualize para o Claude Desktop v2.42304.0 ou posterior, porque as versões anteriores nunca continuam a tarefa sozinhas.

1379 1390 


2290| `<host> is out of disk space` | `[ENOSPC]` ou `[EDQUOT]` | Libere espaço ou cota na máquina remota, no seu diretório pessoal ou em `/tmp` |2301| `<host> is out of disk space` | `[ENOSPC]` ou `[EDQUOT]` | Libere espaço ou cota na máquina remota, no seu diretório pessoal ou em `/tmp` |

2291| `Free up disk space on this computer` | `[ENOSPC]` ou `[EDQUOT]`, em uma mensagem que começa com `Couldn't prepare the deploy locally` | Libere espaço no seu computador |2302| `Free up disk space on this computer` | `[ENOSPC]` ou `[EDQUOT]`, em uma mensagem que começa com `Couldn't prepare the deploy locally` | Libere espaço no seu computador |

2292| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Aguarde um minuto e tente novamente. Se continuar falhando, execute na máquina remota o comando que a mensagem menciona para ver se o Claude Code responde lá. |2303| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | Aguarde um minuto e tente novamente. Se continuar falhando, execute na máquina remota o comando que a mensagem menciona para ver se o Claude Code responde lá. |

2304| `Ask <host>'s administrator to let Claude's server run` | `[SERVER_NOT_RUNNABLE]` ou `[SETUP_DIR_NOEXEC]` | Peça ao administrador da máquina remota que permita a execução de programas a partir de `~/.claude/remote/` nessa máquina, conforme indicam os [requisitos](#remote-machine-requirements-for-ssh-sessions) |

2305| `Try again in a few minutes` | `[DOWNLOAD_BUSY]` | Aguarde alguns minutos e tente novamente. O servidor de download da Anthropic ou um proxy na rede do seu computador informou que está ocupado. Se o cartão continuar aparecendo, pergunte ao administrador dessa rede se um proxy limita downloads. |

2293 2306 

2294Para qualquer outra mensagem, verifique os [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions).2307Para qualquer outra mensagem, verifique os [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions).

2295 2308 

env-vars.md +4 −5

Details

126> * `CLAUDE_CODE_TMUX_TRUECOLOR`126> * `CLAUDE_CODE_TMUX_TRUECOLOR`

127> * `IS_DEMO`127> * `IS_DEMO`

128>128>

129> Uma outra variável tem sua própria regra: `FORCE_HYPERLINK` lê um número, então apenas `0` a desativa. A linha de cada variável também informa sua própria regra.129> A linha de cada variável também indica sua própria regra.

130 130 

131| Variável | Finalidade |131| Variável | Finalidade |

132| :- | :- |132| :- | :- |


239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Defina como `1` para interromper o trabalho em andamento de uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) quando o [supervisor](https://code.claude.com/docs/pt/agent-view.md#the-supervisor-process) parar, reiniciar ou atualizar o processo dessa sessão, em vez de entregá-lo ao próximo processo da sessão. Esse trabalho consiste nos comandos de shell em segundo plano em execução da sessão, além dos subagentes em segundo plano a partir da v2.1.198. Afeta apenas essa transferência: enviar uma sessão para segundo plano com `←` ou [`/background`](https://code.claude.com/docs/pt/agent-view#from-inside-a-session) continua transferindo o trabalho em segundo plano em andamento. Requer o Claude Code v2.1.196 ou posterior |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Defina como `1` para interromper o trabalho em andamento de uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) quando o [supervisor](https://code.claude.com/docs/pt/agent-view.md#the-supervisor-process) parar, reiniciar ou atualizar o processo dessa sessão, em vez de entregá-lo ao próximo processo da sessão. Esse trabalho consiste nos comandos de shell em segundo plano em execução da sessão, além dos subagentes em segundo plano a partir da v2.1.198. Afeta apenas essa transferência: enviar uma sessão para segundo plano com `←` ou [`/background`](https://code.claude.com/docs/pt/agent-view#from-inside-a-session) continua transferindo o trabalho em segundo plano em andamento. Requer o Claude Code v2.1.196 ou posterior |

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

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

242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Defina como `1` para manter disponíveis as ferramentas de navegador do [Claude in Chrome](https://code.claude.com/docs/pt/chrome.md), omitindo a seção do Chrome do system prompt e a [skill incluída](https://code.claude.com/docs/pt/skills.md#bundled-skills) `/claude-in-chrome`. Destina-se a hosts que incorporam o Claude Code e fornecem suas próprias orientações de navegador. Requer o Claude Code v2.1.257 ou posterior |242| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Para hosts que incorporam o Claude Code e fornecem suas próprias orientações de navegador. Defina como `1` para manter as ferramentas de navegador do [Claude in Chrome](https://code.claude.com/docs/pt/chrome.md) disponíveis, omitindo a seção do Chrome do system prompt e a [skill incluída](https://code.claude.com/docs/pt/skills.md#bundled-skills) `/claude-in-chrome`. No VS Code, a extensão na v2.1.314 ou posterior também deixa as instruções do Claude in Chrome fora das mensagens de uma sessão. Requer Claude Code v2.1.257 ou posterior |

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

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

245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Defina como `1` para desativar o [limite de tempo e as negações](https://code.claude.com/docs/pt/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) dos modos `auto` e `bypassPermissions` em remoções de caminhos críticos. Essas remoções então vão para o classificador no modo `auto` e recebem um prompt sem limite de tempo no modo `bypassPermissions` onde quer que o Claude Code possa exibi-lo. Defina-a no ambiente que inicia o Claude Code, já que o Claude Code ignora uma cópia fornecida por meio de um bloco `env` de configurações. Requer o Claude Code v2.1.281 ou posterior |245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Defina como `1` para desativar o [limite de tempo e as negações](https://code.claude.com/docs/pt/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes) dos modos `auto` e `bypassPermissions` em remoções de caminhos críticos. Essas remoções então vão para o classificador no modo `auto` e recebem um prompt sem limite de tempo no modo `bypassPermissions` onde quer que o Claude Code possa exibi-lo. Defina-a no ambiente que inicia o Claude Code, já que o Claude Code ignora uma cópia fornecida por meio de um bloco `env` de configurações. Requer o Claude Code v2.1.281 ou posterior |


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

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

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

310| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout em segundos para a descoberta de arquivos da ferramenta Glob. O padrão é 20 segundos na maioria das plataformas e 60 segundos no WSL |310| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout em segundos para as buscas das ferramentas [Glob](https://code.claude.com/docs/pt/tools-reference.md#glob-tool-behavior) e Grep. O padrão é 20 segundos na maioria das plataformas e 60 segundos no WSL |

311| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Quantos minutos o trabalho em segundo plano pode manter uma meta ativa esperando antes que o Claude Code [peça ao Claude para verificá-la](https://code.claude.com/docs/pt/goal.md#background-work-defers-evaluation). Padrão `30`. Defina `0` para desativar as verificações. Informe minutos inteiros em dígitos simples, no máximo `10080`, que corresponde a uma semana. O Claude Code trata qualquer outro valor como não definido e usa o padrão. Requer Claude Code v2.1.234 ou posterior |311| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Quantos minutos o trabalho em segundo plano pode manter uma meta ativa esperando antes que o Claude Code [peça ao Claude para verificá-la](https://code.claude.com/docs/pt/goal.md#background-work-defers-evaluation). Padrão `30`. Defina `0` para desativar as verificações. Informe minutos inteiros em dígitos simples, no máximo `10080`, que corresponde a uma semana. O Claude Code trata qualquer outro valor como não definido e usa o padrão. Requer Claude Code v2.1.234 ou posterior |

312| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Defina como `0` para desativar a compactação gzip dos corpos de requisição da Claude API, de telemetria e de publicação de [artefatos](https://code.claude.com/docs/pt/artifacts.md) enviados para `api.anthropic.com`. Por padrão, o Claude Code compacta corpos de requisição grandes em conexões diretas e ignora a compactação quando você envia requisições por meio de um proxy, configura um certificado de cliente ou define `NODE_EXTRA_CA_CERTS`. Use `0` se um [proxy com inspeção de TLS](https://code.claude.com/docs/pt/network-config.md#ca-certificate-store) que o Claude Code não consegue detectar tratar incorretamente requisições compactadas |312| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Defina como `0` para desativar a compactação gzip dos corpos de requisição da Claude API, de telemetria e de publicação de [artefatos](https://code.claude.com/docs/pt/artifacts.md) enviados para `api.anthropic.com`. Por padrão, o Claude Code compacta corpos de requisição grandes em conexões diretas e ignora a compactação quando você envia requisições por meio de um proxy, configura um certificado de cliente ou define `NODE_EXTRA_CA_CERTS`. Use `0` se um [proxy com inspeção de TLS](https://code.claude.com/docs/pt/network-config.md#ca-certificate-store) que o Claude Code não consegue detectar tratar incorretamente requisições compactadas |

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


469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuada. Use `ENABLE_PROMPT_CACHING_1H` em vez dela. Não tem efeito em sessões do [Claude apps gateway](https://code.claude.com/docs/pt/claude-apps-gateway), mesmo quando o gateway roteia para o Amazon Bedrock |469| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Descontinuada. Use `ENABLE_PROMPT_CACHING_1H` em vez dela. Não tem efeito em sessões do [Claude apps gateway](https://code.claude.com/docs/pt/claude-apps-gateway), mesmo quando o gateway roteia para o Amazon Bedrock |

470| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search). Não definida ou `true` adia as ferramentas MCP, exceto nos [casos que mantêm a busca de ferramentas desativada](https://code.claude.com/docs/pt/mcp.md#configure-tool-search). `auto` ativa a busca de ferramentas quando as definições atingem 10% da janela de contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Se um gateway rejeitar a busca de ferramentas, consulte [Busca de ferramentas por meio de um gateway de LLM](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway) |470| `ENABLE_TOOL_SEARCH` | Controla o [MCP Tool Search](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search). Não definida ou `true` adia as ferramentas MCP, exceto nos [casos que mantêm a busca de ferramentas desativada](https://code.claude.com/docs/pt/mcp.md#configure-tool-search). `auto` ativa a busca de ferramentas quando as definições atingem 10% da janela de contexto. `auto:N` define um limite personalizado, como `auto:5` para 5%. `false` carrega todas as ferramentas antecipadamente. Se um gateway rejeitar a busca de ferramentas, consulte [Busca de ferramentas por meio de um gateway de LLM](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway) |

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

472| `FORCE_HYPERLINK` | Defina como `1` para ativar hiperlinks OSC 8 clicáveis quando o seu terminal oferece suporte a eles mas não é detectado automaticamente, ou `0` para desativá-los. Quando não definida, o Claude Code ativa hiperlinks apenas quando detecta suporte do terminal. O Claude Code interpreta este valor como um número, não como um booleano, portanto um valor como `false`, `no` ou `off` ativa os hiperlinks em vez de desativá-los. O [selo de PR ou merge request](https://code.claude.com/docs/pt/interactive-mode.md#pr-review-status) no rodapé é renderizado como hiperlink mesmo quando o Claude Code não consegue detectar suporte do terminal, como por SSH. Defina `0` para renderizar o selo como texto simples |472| `FORCE_HYPERLINK` | Defina como `1` para ativar hyperlinks OSC 8 clicáveis quando seu terminal oferece suporte a eles, mas não é detectado automaticamente. Quando não definida, o Claude Code ativa a maioria dos hyperlinks apenas quando detecta suporte no terminal. O [badge de PR ou merge request](https://code.claude.com/docs/pt/interactive-mode.md#pr-review-status) no rodapé e as URLs longas de login são links de qualquer forma. Defina `0`, `false`, `no` ou `off` para renderizar todos eles como texto simples. Antes da v2.1.314, `false`, `no` e `off` ativavam os hyperlinks |

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

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

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


586* Obter [feedback rascunhado pelo Claude](https://code.claude.com/docs/pt/tools-reference.md#sendfeedback-tool-behavior), que o Claude Code ativa por meio de uma flag buscada586* Obter [feedback rascunhado pelo Claude](https://code.claude.com/docs/pt/tools-reference.md#sendfeedback-tool-behavior), que o Claude Code ativa por meio de uma flag buscada

587* Fazer o Claude [tratar colagens grandes como texto colado em vez de digitado](https://code.claude.com/docs/pt/terminal-config.md#how-claude-treats-pasted-text); o conteúdo por trás de um placeholder `[Pasted text #N]` chega ao Claude sem marcação587* Fazer o Claude [tratar colagens grandes como texto colado em vez de digitado](https://code.claude.com/docs/pt/terminal-config.md#how-claude-treats-pasted-text); o conteúdo por trás de um placeholder `[Pasted text #N]` chega ao Claude sem marcação

588* Fazer o Claude Code [excluir ferramentas MCP cujo esquema de entrada a API rejeitaria](https://code.claude.com/docs/pt/mcp.md#tools-with-invalid-input-schemas)588* Fazer o Claude Code [excluir ferramentas MCP cujo esquema de entrada a API rejeitaria](https://code.claude.com/docs/pt/mcp.md#tools-with-invalid-input-schemas)

589* Fazer o Claude Code [compactar uma conversa longa enquanto sua sessão de terminal está ociosa](https://code.claude.com/docs/pt/settings-reference.md#idlecompaction), pouco antes de um cache de prompt de uma hora expirar

590 589 

591### Primeira sessão após uma instalação ou atualização590### Primeira sessão após uma instalação ou atualização

592 591 

errors.md +66 −11

Details

59| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |59| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |

60| `Invalid API key` | [Authentication](#invalid-api-key) |60| `Invalid API key` | [Authentication](#invalid-api-key) |

61| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |61| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |

62| `Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect` | [Autenticação](#claude-code-didnt-send-your-claude-ai-login) |

62| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) |63| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) |

63| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) |64| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) |

64| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) |65| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) |


326| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Tool errors](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |327| `MCP server "<name>" tool "<tool>" timed out after <N>s. The server asked the user a question, and no answer came before the time limit.` | [Tool errors](#mcp-tool-call-timed-out-with-the-servers-question-unanswered) |

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

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

330| `<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories` | [Erros de ferramenta](#setting-blocks-writes-outside-the-working-directories) |

331| `<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories)` | [Erros de ferramenta](#setting-blocks-writes-outside-the-working-directories) |

332| `Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on` | [Erros de ferramenta](#writes-to-claude-code-settings-files-are-blocked) |

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

330| `Path contains null bytes` | [Tool errors](#path-cannot-contain-null-bytes) |334| `Path contains null bytes` | [Tool errors](#path-cannot-contain-null-bytes) |

331| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Erros de ferramenta](#command-contains-an-invisible-character) |335| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Erros de ferramenta](#command-contains-an-invisible-character) |


548 552 

549* Verifique [status.claude.com](https://status.claude.com) ou a página de status do provedor nomeada na mensagem para incidentes ativos553* Verifique [status.claude.com](https://status.claude.com) ou a página de status do provedor nomeada na mensagem para incidentes ativos

550* Aguarde um minuto e envie sua mensagem novamente. Sua mensagem original ainda está na conversa, então para um prompt longo você pode digitar `try again` em vez de colar tudo novamente.554* Aguarde um minuto e envie sua mensagem novamente. Sua mensagem original ainda está na conversa, então para um prompt longo você pode digitar `try again` em vez de colar tudo novamente.

551* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/env-vars) apontar para um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) e todas as requisições falharem dessa forma, verifique se o seu gateway está rejeitando os campos de busca de ferramentas que o Claude Code envia por padrão. Para verificar, defina `ENABLE_TOOL_SEARCH=false` conforme descrito em [Busca de ferramentas por meio de um gateway de LLM](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway) e tente novamente. Antes da v2.1.304, a busca de ferramentas ficava desativada por trás de um gateway, a menos que você a ativasse com `ENABLE_TOOL_SEARCH`.555* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/env-vars) apontar para um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) e todas as requisições falharem dessa forma, verifique se o seu gateway e o upstream dele aceitam os campos de [busca de ferramentas](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway). Por padrão, o Claude Code envia campos de ferramenta `defer_loading` e blocos `tool_reference`, com o cabeçalho `anthropic-beta` que os habilita. Antes da v2.1.304, a busca de ferramentas ficava desativada por trás de um gateway, a menos que você a ativasse com `ENABLE_TOOL_SEARCH`.

552* Se o erro persistir sem nenhum incidente postado, execute `/feedback` para que a Anthropic possa investigar com os detalhes da sua solicitação. Veja [Report an error](#report-an-error) se `/feedback` não estiver disponível no seu ambiente.556* Se o erro persistir sem nenhum incidente postado, execute `/feedback` para que a Anthropic possa investigar com os detalhes da sua solicitação. Veja [Report an error](#report-an-error) se `/feedback` não estiver disponível no seu ambiente.

553 557 

554### API Error: Repeated 529 Overloaded errors558### API Error: Repeated 529 Overloaded errors


672<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.676<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

673```677```

674 678 

675Em uma sessão interativa, uma linha esmaecida `Not run · auto mode's check had no usable answer` aparece sob a chamada de ferramenta em vez desta mensagem. Pressione `Ctrl+O` para ler a mensagem no [visualizador de transcrição](https://code.claude.com/docs/pt/interactive-mode.md#transcript-viewer). As negações `gave no verdict` descritas em [The server returned no safety verdict](#the-server-returned-no-safety-verdict) mostram a mesma linha. Antes da v2.1.296, a mensagem aparecia sob a chamada como um erro vermelho.679Em uma sessão interativa, uma linha esmaecida `Not run · auto mode's check had no usable answer` aparece sob a chamada de ferramenta em vez desta mensagem. A linha também pode substituir uma mensagem informando que [o servidor não deu veredicto](#the-server-returned-no-safety-verdict) ou, fora de uma sessão remota, uma mensagem que começa com `Auto mode could not evaluate`. Pressione `Ctrl+O` para ler a mensagem correspondente no [visualizador de transcrição](https://code.claude.com/docs/pt/interactive-mode.md#transcript-viewer). Antes da v2.1.296, a mensagem aparecia como um erro vermelho.

676 680 

677Quando Claude Code pode determinar a categoria de falha, ele nomeia a categoria entre parênteses após `temporarily unavailable`, por exemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. As categorias são `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` e `(connection failed)`. Se `(timed out)` ou `(connection failed)` se repetir, verifique sua conexão; veja [Unable to connect to API](#unable-to-connect-to-api). Antes da v2.1.229, a mensagem nunca nomeava uma categoria e lia `Wait briefly and then try this action again`.681Quando Claude Code pode determinar a categoria de falha, ele nomeia a categoria entre parênteses após `temporarily unavailable`, por exemplo `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. As categorias são `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)` e `(connection failed)`. Se `(timed out)` ou `(connection failed)` se repetir, verifique sua conexão; veja [Unable to connect to API](#unable-to-connect-to-api). Antes da v2.1.229, a mensagem nunca nomeava uma categoria e lia `Wait briefly and then try this action again`.

678 682 


833* Execute `/usage-credits` para comprar uso adicional em Pro, Max e Ultra, ou para solicitá-lo ao seu administrador em Team e Enterprise. Veja [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) para saber como isso é cobrado.837* Execute `/usage-credits` para comprar uso adicional em Pro, Max e Ultra, ou para solicitá-lo ao seu administrador em Team e Enterprise. Veja [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) para saber como isso é cobrado.

834* Para atualizar seu plano para limites base mais altos, veja [claude.com/pricing](https://claude.com/pricing)838* Para atualizar seu plano para limites base mais altos, veja [claude.com/pricing](https://claude.com/pricing)

835 839 

836Antes de uma janela se esgotar, Claude Code pode avisá-lo de que você usou a maior parte dela, com uma mensagem como `You've used 85% of your session limit · resets 3:45pm`. Para monitorar sua permissão restante continuamente, adicione os campos `rate_limits` a uma [custom status line](https://code.claude.com/docs/pt/statusline.md#rate-limit-usage), ou no Desktop app clique no [usage ring](https://code.claude.com/docs/pt/desktop.md#check-usage) ao lado do seletor de modelo.840Antes de uma janela se esgotar, Claude Code pode avisá-lo de que você usou a maior parte dela, com uma mensagem como `You've used 85% of your session limit · resets 3:45pm`. Para monitorar sua permissão restante, adicione os campos `rate_limits` a uma [custom status line](https://code.claude.com/docs/pt/statusline.md#rate-limit-usage), ou no Desktop app clique no [usage ring](https://code.claude.com/docs/pt/desktop.md#check-usage).

837 841 

838### Usage credits required for 1M context842### Usage credits required for 1M context

839 843 


1074* Execute `/status` para ver a falha e confirmar que `apiKeyHelper` é a fonte de credencial ativa. A linha `apiKeyHelper` mostra `Failing` com o detalhe da última falha, como o código de saída e a saída de erro do comando, e desaparece após a próxima execução bem-sucedida. Antes da v2.1.274, `/status` mostrava apenas a fonte de credencial, não a falha.1078* Execute `/status` para ver a falha e confirmar que `apiKeyHelper` é a fonte de credencial ativa. A linha `apiKeyHelper` mostra `Failing` com o detalhe da última falha, como o código de saída e a saída de erro do comando, e desaparece após a próxima execução bem-sucedida. Antes da v2.1.274, `/status` mostrava apenas a fonte de credencial, não a falha.

1075* Cada vez que o comando falha, seu código de saída e sua saída de erro também aparecem em um painel `Authentication` no terminal. Antes da v2.1.212, o painel se chamava `Cloud authentication`.1079* Cada vez que o comando falha, seu código de saída e sua saída de erro também aparecem em um painel `Authentication` no terminal. Antes da v2.1.212, o painel se chamava `Cloud authentication`.

1076 1080 

1081### Claude Code didn't send your claude.ai login

1082 

1083Envie esta mensagem completa ao seu administrador. Ela lista as alterações que ele pode fazer. A mensagem significa que o Claude Code recusou seu prompt. Enquanto você usar seu login claude.ai, o Claude Code continuará recusando prompts, inclusive após uma reinicialização:

1084 

1085```text theme={null}

1086Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect. Your organization's managed settings may be overriding it. Ask your administrator to keep the key helper and its API address in effect, to name Anthropic's API address in those managed settings, or to remove the key helper. Run /status to see your setting sources.

1087```

1088 

1089**O que fazer:**

1090 

1091* Para informar ao seu administrador quais fontes gerenciadas sua máquina tem, execute `/status` no prompt do Claude Code e copie a [linha `Setting sources`](https://code.claude.com/docs/pt/managed-settings#read-the-source-in-/status). Se uma linha `Skipped sources` aparecer, copie-a também

1092* Se você administra as configurações, consulte [por que o key helper da máquina não está em vigor](https://code.claude.com/docs/pt/server-managed-settings.md#machine-apikeyhelper-not-in-effect)

1093 

1077### Invalid request header value1094### Invalid request header value

1078 1095 

1079Um valor que o Claude Code estava prestes a enviar como cabeçalho de requisição contém um caractere que os cabeçalhos HTTP não conseguem transportar: uma quebra de linha, um byte NUL ou um caractere acima de `U+00FF`, como uma aspa curva ou um espaço de largura zero. O Claude Code interrompe a requisição antes que qualquer coisa seja enviada e informa a variável ou configuração a corrigir. A causa usual é uma credencial colada de um documento ou chat que trazia um caractere invisível ou uma quebra de linha perdida.1096Um valor que o Claude Code estava prestes a enviar como cabeçalho de requisição contém um caractere que os cabeçalhos HTTP não conseguem transportar: uma quebra de linha, um byte NUL ou um caractere acima de `U+00FF`, como uma aspa curva ou um espaço de largura zero. O Claude Code interrompe a requisição antes que qualquer coisa seja enviada e informa a variável ou configuração a corrigir. A causa usual é uma credencial colada de um documento ou chat que trazia um caractere invisível ou uma quebra de linha perdida.


1333* Se `/status` mostrar apenas seu login, execute `/login` uma vez. Se a credencial foi revogada, um novo login a substitui.1350* Se `/status` mostrar apenas seu login, execute `/login` uma vez. Se a credencial foi revogada, um novo login a substitui.

1334* Se a mesma mensagem voltar para a mesma conta de login, a conta ou a organização não está mais ativa. Verifique a conta e a organização que `/status` informa e peça ao administrador da sua organização que restaure o acesso.1351* Se a mesma mensagem voltar para a mesma conta de login, a conta ou a organização não está mais ativa. Verifique a conta e a organização que `/status` informa e peça ao administrador da sua organização que restaure o acesso.

1335* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/env-vars) apontar para um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway), o texto após `401` é a mensagem do seu gateway e não da Anthropic, e o `/login` não a altera. Em vez disso, corrija a credencial que seu gateway espera.1352* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/env-vars) apontar para um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway), o texto após `401` é a mensagem do seu gateway e não da Anthropic, e o `/login` não a altera. Em vez disso, corrija a credencial que seu gateway espera.

1336* Se todas as requisições falharem com `401` depois que seu gateway tiver a credencial que espera, verifique se o gateway está rejeitando os campos de busca de ferramentas que o Claude Code envia por padrão. Para verificar, defina `ENABLE_TOOL_SEARCH=false` conforme descrito em [Busca de ferramentas por meio de um gateway de LLM](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway) e tente novamente. Antes da v2.1.304, a busca de ferramentas ficava desativada atrás de um gateway, a menos que você a ativasse com `ENABLE_TOOL_SEARCH`.1353* Se todas as requisições falharem com `401` depois que seu gateway tiver a credencial que espera, verifique se o gateway e seu upstream aceitam os campos de [tool search](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway). Por padrão, o Claude Code envia campos de ferramenta `defer_loading` e blocos `tool_reference`, com o cabeçalho `anthropic-beta` que os habilita. Antes da v2.1.304, o tool search ficava desativado atrás de um gateway, a menos que você o ativasse com `ENABLE_TOOL_SEARCH`.

1337 1354 

1338### Login expired1355### Login expired

1339 1356 


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

1937* Se você estiver atrás de um proxy corporativo, defina `HTTPS_PROXY` antes de iniciar Claude Code e veja [Network configuration](https://code.claude.com/docs/pt/network-config.md)1954* Se você estiver atrás de um proxy corporativo, defina `HTTPS_PROXY` antes de iniciar Claude Code e veja [Network configuration](https://code.claude.com/docs/pt/network-config.md)

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

1939* Se `ANTHROPIC_BASE_URL` já aponta para seu gateway e toda requisição termina em `Connection dropped`, verifique se seu gateway está rejeitando os campos de tool search que Claude Code envia por padrão. Para verificar, defina `ENABLE_TOOL_SEARCH=false` conforme [Tool search through an LLM gateway](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway) descreve, depois tente novamente. Antes da v2.1.304, o tool search ficava desativado atrás de um gateway, a menos que você o ativasse com `ENABLE_TOOL_SEARCH`.1956* Se `ANTHROPIC_BASE_URL` já aponta para seu gateway e toda requisição termina em `Connection dropped`, verifique se seu gateway e o upstream dele aceitam os campos de [tool search](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway). Por padrão, Claude Code envia campos de ferramenta `defer_loading` e blocos `tool_reference`, com o header `anthropic-beta` que os habilita. Antes da v2.1.304, o tool search ficava desativado atrás de um gateway, a menos que você o ativasse com `ENABLE_TOOL_SEARCH`.

1940* Certifique-se de que seu firewall permite os hosts listados em [Network access requirements](https://code.claude.com/docs/pt/network-config.md#network-access-requirements)1957* Certifique-se de que seu firewall permite os hosts listados em [Network access requirements](https://code.claude.com/docs/pt/network-config.md#network-access-requirements)

1941* Falhas intermitentes são [tentadas novamente de forma automática](#automatic-retries)1958* Falhas intermitentes são [tentadas novamente de forma automática](#automatic-retries)

1942 1959 


2471**O que fazer:**2488**O que fazer:**

2472 2489 

2473* Se a mensagem contiver `context_management: Extra inputs are not permitted`, [atualize o Claude Code](https://code.claude.com/docs/pt/setup.md#update-claude-code) para a v2.1.304 ou posterior. Após a atualização, o Claude Code responde a essa rejeição enviando a requisição mais uma vez sem o campo. Antes da v2.1.304, o Claude Code não tentava novamente após essa rejeição.2490* Se a mensagem contiver `context_management: Extra inputs are not permitted`, [atualize o Claude Code](https://code.claude.com/docs/pt/setup.md#update-claude-code) para a v2.1.304 ou posterior. Após a atualização, o Claude Code responde a essa rejeição enviando a requisição mais uma vez sem o campo. Antes da v2.1.304, o Claude Code não tentava novamente após essa rejeição.

2474* Se a mensagem mencionar `defer_loading` ou `tool_reference`, atualize o Claude Code ou desative a [busca de ferramentas](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway):2491* Se a mensagem nomear `defer_loading` ou `tool_reference`, [atualize o Claude Code](https://code.claude.com/docs/pt/setup.md#update-claude-code) para a v2.1.305 ou posterior. O Claude Code então responde a essa rejeição [enviando a requisição mais uma vez](https://code.claude.com/docs/pt/llm-gateway-protocol.md#retry-without-tool-search) sem os campos de busca de ferramentas.

2475 * [Atualize o Claude Code](https://code.claude.com/docs/pt/setup.md#update-claude-code) para a v2.1.305 ou posterior. O Claude Code então responde a essa rejeição enviando a requisição mais uma vez sem os campos de busca de ferramentas.

2476 * Se você não puder atualizar, ou se a mensagem ainda aparecer depois de atualizar, defina `ENABLE_TOOL_SEARCH=false` no seu shell ou no [`env` das suas configurações](https://code.claude.com/docs/pt/settings-reference#env). Se um arquivo de configurações já definir a variável, altere-a lá, pois esse valor [pode sobrescrever um export do shell](https://code.claude.com/docs/pt/settings-reference.md#how-env-values-interact-with-your-shell). O Claude Code então carrega as ferramentas MCP antecipadamente.

2477* Se o seu gateway descartar o cabeçalho, configure-o para encaminhar o cabeçalho `anthropic-beta`. Consulte [repasse de recursos](https://code.claude.com/docs/pt/llm-gateway-protocol.md#feature-pass-through) para saber o que os gateways devem encaminhar.2492* Se o seu gateway descartar o cabeçalho, configure-o para encaminhar o cabeçalho `anthropic-beta`. Consulte [repasse de recursos](https://code.claude.com/docs/pt/llm-gateway-protocol.md#feature-pass-through) para saber o que os gateways devem encaminhar.

2478* Como fallback, defina [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](https://code.claude.com/docs/pt/env-vars) antes de iniciar. [Desativar recursos de pré-lançamento](https://code.claude.com/docs/pt/llm-gateway-protocol.md#disable-pre-release-capabilities) cobre o escopo exato.2493* Como fallback, defina [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](https://code.claude.com/docs/pt/env-vars) antes de iniciar. [Desativar recursos de pré-lançamento](https://code.claude.com/docs/pt/llm-gateway-protocol.md#disable-pre-release-capabilities) cobre o escopo exato.

2479 2494 


2552* Use um alias como `sonnet` ou `opus` em vez de um ID completo com versão. Os aliases resolvem para um padrão mantido, então não ficam desatualizados. Consulte [Configuração de modelo](https://code.claude.com/docs/pt/model-config.md).2567* Use um alias como `sonnet` ou `opus` em vez de um ID completo com versão. Os aliases resolvem para um padrão mantido, então não ficam desatualizados. Consulte [Configuração de modelo](https://code.claude.com/docs/pt/model-config.md).

2553* Se o modelo errado continuar voltando na CLI, um ID desatualizado está definido em algum lugar. Verifique os locais onde você pode definir um modelo em [ordem de prioridade](https://code.claude.com/docs/pt/model-config.md#setting-your-model) e remova o valor desatualizado.2568* Se o modelo errado continuar voltando na CLI, um ID desatualizado está definido em algum lugar. Verifique os locais onde você pode definir um modelo em [ordem de prioridade](https://code.claude.com/docs/pt/model-config.md#setting-your-model) e remova o valor desatualizado.

2554* O Claude Code informa um login do claude.ai expirado como [Login expired](#login-expired), não como esse erro. Antes da v2.1.206, um login expirado que não podia mais ser renovado fazia todos os modelos falharem com esse erro; execute `/login` se você vir isso em uma versão mais antiga.2569* O Claude Code informa um login do claude.ai expirado como [Login expired](#login-expired), não como esse erro. Antes da v2.1.206, um login expirado que não podia mais ser renovado fazia todos os modelos falharem com esse erro; execute `/login` se você vir isso em uma versão mais antiga.

2555* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/env-vars) apontar para um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) e todos os modelos falharem dessa forma, verifique se o seu gateway está rejeitando os campos de busca de ferramentas que o Claude Code envia por padrão. Para verificar, defina `ENABLE_TOOL_SEARCH=false` conforme descrito em [Busca de ferramentas por meio de um gateway de LLM](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway) e tente novamente. Antes da v2.1.304, a busca de ferramentas ficava desativada atrás de um gateway, a menos que você a ativasse com `ENABLE_TOOL_SEARCH`.2570* Se [`ANTHROPIC_BASE_URL`](https://code.claude.com/docs/pt/env-vars) aponta para um [gateway de LLM](https://code.claude.com/docs/pt/llm-gateway) e todos os modelos falham dessa forma, verifique se o seu gateway e o upstream dele aceitam os campos de [busca de ferramentas](https://code.claude.com/docs/pt/mcp.md#tool-search-through-a-gateway). Por padrão, o Claude Code envia campos de ferramenta `defer_loading` e blocos `tool_reference`, com o cabeçalho `anthropic-beta` que os habilita. Antes da v2.1.304, a busca de ferramentas ficava desativada atrás de um gateway, a menos que você a ativasse com `ENABLE_TOOL_SEARCH`.

2556* Para implantações no Agent Platform do Google Cloud, consulte [Solução de problemas do Agent Platform do Google Cloud](https://code.claude.com/docs/pt/google-vertex-ai.md#troubleshooting).2571* Para implantações no Agent Platform do Google Cloud, consulte [Solução de problemas do Agent Platform do Google Cloud](https://code.claude.com/docs/pt/google-vertex-ai.md#troubleshooting).

2557 2572 

2558### Model is not a recognized model id2573### Model is not a recognized model id


4563* Se Claude deveria ser capaz de mudar o arquivo, remova ou estreite a regra de negação `Read` em `/permissions` ou em [settings](https://code.claude.com/docs/pt/settings-reference.md#permission-settings)4578* Se Claude deveria ser capaz de mudar o arquivo, remova ou estreite a regra de negação `Read` em `/permissions` ou em [settings](https://code.claude.com/docs/pt/settings-reference.md#permission-settings)

4564* Se o arquivo deve permanecer intocado, mantenha a regra e adicione uma regra de negação `Edit` para o mesmo caminho para bloquear a ferramenta NotebookEdit também4579* Se o arquivo deve permanecer intocado, mantenha a regra e adicione uma regra de negação `Edit` para o mesmo caminho para bloquear a ferramenta NotebookEdit também

4565 4580 

4581### Configuração bloqueia escritas fora dos diretórios de trabalho

4582 

4583Quando Claude tenta escrever um arquivo e a chamada de ferramenta falha com esta mensagem, o caminho está fora dos [diretórios de trabalho](https://code.claude.com/docs/pt/permissions.md#working-directories) da sessão e [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) está ativado:

4584 

4585```text wrap theme={null}

4586<path> is outside <dirs>; the permissions.blockWritesOutsideWorkingDirectories setting blocks writes outside the working directories. Ask the user to add the directory with /add-dir, or to remove that setting.

4587```

4588 

4589Claude Code recusa essa escrita em todos os modos de permissão. A recusa também pode dizer:

4590 

4591```text wrap theme={null}

4592<path>: Writes outside the working directories are blocked (permissions.blockWritesOutsideWorkingDirectories). Add the directory with /add-dir, or remove that setting.

4593```

4594 

4595**O que fazer:**

4596 

4597* Se Claude não deveria escrever lá, não faça nada

4598* Para deixar Claude escrever em um diretório existente que contém o caminho, execute `/add-dir <directory>` no prompt do Claude Code, ou passe `--add-dir <directory>` ao iniciar o Claude Code

4599* Se o caminho é um arquivo de configurações do Claude Code, como `~/.claude/settings.json`, edite-o você mesmo. Adicionar seu diretório com `/add-dir` não ajuda, porque Claude Code então recusa a escrita [como um arquivo de configurações](#writes-to-claude-code-settings-files-are-blocked).

4600* Para manter um diretório gravável em todas as sessões, liste-o em [`permissions.additionalDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-additionaldirectories) nas suas configurações de usuário ou gerenciadas

4601* Para desativar `permissions.blockWritesOutsideWorkingDirectories`, remova-a de cada arquivo de configurações que a define e, em seguida, reinicie o Claude Code

4602* Se nenhum dos seus arquivos de configurações tem `permissions.blockWritesOutsideWorkingDirectories`, ela pode vir de `--settings` ou de uma aplicação hospedeira. Claude Code também recusa essas escritas enquanto não consegue ler `permissions` nas suas [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#keys-that-fail-closed). Pergunte a quem inicia ou gerencia a sessão.

4603 

4604### Writes to Claude Code settings files are blocked

4605 

4606Quando Claude tenta escrever um arquivo e a chamada de ferramenta falha com esta mensagem, Claude Code trata o arquivo como um de seus arquivos de configurações e [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) está ativado:

4607 

4608```text wrap theme={null}

4609<path>: Writes to Claude Code settings files are blocked while permissions.blockWritesOutsideWorkingDirectories is on, because a settings file can lift that block. While a managed settings folder cannot be resolved, any .json file counts as one.

4610```

4611 

4612**O que fazer:**

4613 

4614* Para mudar uma configuração, edite você mesmo o arquivo de configurações

4615* Para deixar Claude editar arquivos de configurações novamente, remova `permissions.blockWritesOutsideWorkingDirectories` de cada arquivo de configurações que a define e, em seguida, reinicie o Claude Code

4616* Se o arquivo não é um dos seus arquivos de configurações, encontre-o entre os outros arquivos que Claude Code trata como arquivos de configurações:

4617 * **Um arquivo que você passou para `--agents` ou `--mcp-config`**: edite-o você mesmo

4618 * **A cópia armazenada das [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md#security-considerations) e os arquivos mantidos com ela**: peça a um [Owner](https://code.claude.com/docs/pt/server-managed-settings.md#access-control) para mudar a configuração nas configurações gerenciadas pelo servidor.

4619 * **Qualquer arquivo `.json`, enquanto Claude Code não consegue determinar para onde a pasta [`managed-settings.d/`](https://code.claude.com/docs/pt/managed-settings#split-a-file-based-policy-across-teams) leva**: peça ao seu administrador para verificar essa pasta

4620 

4566### Path cannot contain null bytes4621### Path cannot contain null bytes

4567 4622 

4568Uma chamada de ferramenta de arquivo teve seu argumento path ou pattern contendo um byte nulo, que sistemas de arquivos e ferramentas de pesquisa não podem aceitar. Read, Write, Edit, NotebookEdit, Glob, e Grep verificam isso, e a mensagem nomeia a ferramenta e o argumento:4623Uma chamada de ferramenta de arquivo teve seu argumento path ou pattern contendo um byte nulo, que sistemas de arquivos e ferramentas de pesquisa não podem aceitar. Read, Write, Edit, NotebookEdit, Glob, e Grep verificam isso, e a mensagem nomeia a ferramenta e o argumento:


6147Em um script ou arnês que lê stderr, corresponda ao prefixo `[claude-code:unrecognized_model]`. Após o prefixo e um espaço, Claude Code escreve um objeto JSON de uma linha. Claude Code pode adicionar campos a ele em uma versão posterior, então ignore qualquer campo que você não espera. Ele escreve pelo menos estes dois:6202Em um script ou arnês que lê stderr, corresponda ao prefixo `[claude-code:unrecognized_model]`. Após o prefixo e um espaço, Claude Code escreve um objeto JSON de uma linha. Claude Code pode adicionar campos a ele em uma versão posterior, então ignore qualquer campo que você não espera. Ele escreve pelo menos estes dois:

6148 6203 

6149* `model`: a string do modelo conforme você a configurou6204* `model`: a string do modelo conforme você a configurou

6150* `query_source`: o caminho da solicitação que usou o modelo. Claude Code relata `sdk` para uma execução `-p` e um valor que começa com `agent:` para um subagente.6205* `query_source`: o caminho da requisição que usou o modelo. Por exemplo, o valor é `sdk` para a conversa principal de uma execução `-p` e começa com `agent:` para um subagente.

6151 6206 

6152Claude Code escreve a linha em um de dois lugares, dependendo de como você a executa:6207Claude Code escreve a linha em um de dois lugares, dependendo de como você a executa:

6153 6208 

6154* No [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `-p`, Claude Code escreve em stderr sob cada `--output-format`, para que você possa analisar stdout sem filtrar a linha6209* No [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `-p`, Claude Code escreve em stderr sob cada `--output-format`, para que você possa analisar stdout sem filtrar a linha

6155* Em uma sessão interativa ou uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), Claude Code escreve no log de depuração; execute com `--debug` para capturá-lo em `~/.claude/debug/<session-id>.txt`6210* Em uma sessão interativa ou uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md), Claude Code escreve no log de depuração; execute com `--debug` para capturá-lo em `~/.claude/debug/<session-id>.txt`

6156 6211 

6157Claude Code escreve a linha uma vez por string de modelo por processo. Escreve uma linha separada para cada ID não reconhecido adicional, como um que um [subagente](https://code.claude.com/docs/pt/sub-agents.md#choose-a-model) ou [funcionalidade em segundo plano](https://code.claude.com/docs/pt/costs.md#background-token-usage) usa.6212Claude Code escreve a linha uma vez por ID de modelo por processo. Escreve uma linha separada para cada ID não reconhecido adicional, como um que um [subagente](https://code.claude.com/docs/pt/sub-agents.md#choose-a-model) ou uma [funcionalidade em segundo plano](https://code.claude.com/docs/pt/model-config.md#environment-variables) usa.

6158 6213 

6159Claude Code não escreve a linha para IDs de provedor que resolve para um modelo que reconhece, como IDs Amazon Bedrock `us.anthropic.claude-...`, IDs da plataforma de agentes do Google Cloud com um sufixo de versão `@`, e nomes de implantação do Microsoft Foundry que contêm um ID de modelo Claude. Claude Code verifica o modelo atrás de um [ARN de perfil de inferência de aplicação](https://code.claude.com/docs/pt/amazon-bedrock.md#map-each-model-version-to-an-inference-profile) do Amazon Bedrock em vez do próprio ARN. Escreve nenhuma linha para um ARN que não pode resolver, como um digitado incorretamente.6214Claude Code não escreve a linha para IDs de provedor que resolve para um modelo que reconhece, como IDs Amazon Bedrock `us.anthropic.claude-...`, IDs da plataforma de agentes do Google Cloud com um sufixo de versão `@`, e nomes de implantação do Microsoft Foundry que contêm um ID de modelo Claude. Claude Code verifica o modelo atrás de um [ARN de perfil de inferência de aplicação](https://code.claude.com/docs/pt/amazon-bedrock.md#map-each-model-version-to-an-inference-profile) do Amazon Bedrock em vez do próprio ARN. Escreve nenhuma linha para um ARN que não pode resolver, como um digitado incorretamente.

6160 6215 

fast-mode.md +8 −1

Details

14 14 

15O modo rápido não é um modelo diferente. Ele usa Claude Opus com uma configuração de API diferente que prioriza a velocidade sobre a eficiência de custo. Você obtém qualidade e capacidades idênticas com respostas mais rápidas. O modo rápido é suportado no Opus 5.5, Opus 5 e Opus 4.8. Não está disponível no Sonnet, Haiku ou outros modelos.15O modo rápido não é um modelo diferente. Ele usa Claude Opus com uma configuração de API diferente que prioriza a velocidade sobre a eficiência de custo. Você obtém qualidade e capacidades idênticas com respostas mais rápidas. O modo rápido é suportado no Opus 5.5, Opus 5 e Opus 4.8. Não está disponível no Sonnet, Haiku ou outros modelos.

16 16 

17> [!WARNING]

18>

19> O modo rápido para Opus 4.8 foi descontinuado em 30 de outubro de 2026 e será removido em 30 de novembro de 2026. Se o Opus 4.8 ainda for o seu modelo com o modo rápido ativado após essa data, a API rejeitará suas requisições. Até essa data, mude para o Opus 5.5 ou desative o modo rápido na sua sessão:

20>

21> * **Para manter o modo rápido**: use [`/model`](https://code.claude.com/docs/pt/model-config#setting-your-model) para mudar para o [Opus 5.5](https://code.claude.com/docs/pt/model-config.md#model-aliases), o que requer o Claude Code v2.1.280 ou posterior. O modo rápido permanece ativado após a mudança. Se uma nova sessão ainda iniciar no Opus 4.8, consulte [Uma nova sessão inicia em um modelo diferente do que você escolheu](https://code.claude.com/docs/pt/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked).

22> * **Para permanecer no Opus 4.8 na velocidade padrão**: execute [`/fast off`](https://code.claude.com/docs/pt/commands)

23 

17O Opus 4.7 não suporta modo rápido, portanto alternar para ele desativa o modo rápido. O modo rápido para Opus 4.7 foi descontinuado em 25 de junho de 2026 e removido em 24 de julho de 2026.24O Opus 4.7 não suporta modo rápido, portanto alternar para ele desativa o modo rápido. O modo rápido para Opus 4.7 foi descontinuado em 25 de junho de 2026 e removido em 24 de julho de 2026.

18 25 

19O que você precisa saber:26O que você precisa saber:


88 95 

89* **Pro, Max e Ultra**: você paga pelo modo rápido com seus créditos de uso. Vá para [**Settings > Usage**](https://claude.ai/settings/usage) em claude.ai, onde a seção **Usage credits** mostra quanto você gastou em créditos de uso este mês. Essa figura inclui o modo rápido, mas não o separa individualmente.96* **Pro, Max e Ultra**: você paga pelo modo rápido com seus créditos de uso. Vá para [**Settings > Usage**](https://claude.ai/settings/usage) em claude.ai, onde a seção **Usage credits** mostra quanto você gastou em créditos de uso este mês. Essa figura inclui o modo rápido, mas não o separa individualmente.

90* **Team e Enterprise**: sua organização paga pelo seu uso do modo rápido com seus créditos de uso. Para ver seu próprio gasto de créditos de uso, execute [`/usage`](https://code.claude.com/docs/pt/costs#check-your-usage-credits-spend). Para ver onde sua organização vê esse gasto, consulte [Claude for Teams and Enterprise](https://code.claude.com/docs/pt/costs.md#claude-for-teams-and-enterprise).97* **Team e Enterprise**: sua organização paga pelo seu uso do modo rápido com seus créditos de uso. Para ver seu próprio gasto de créditos de uso, execute [`/usage`](https://code.claude.com/docs/pt/costs#check-your-usage-credits-spend). Para ver onde sua organização vê esse gasto, consulte [Claude for Teams and Enterprise](https://code.claude.com/docs/pt/costs.md#claude-for-teams-and-enterprise).

91* **Claude Console**: sua organização paga pelo modo rápido junto com o resto de seu uso de API. Nas páginas [Usage](https://platform.claude.com/usage) e [Cost](https://platform.claude.com/cost) do Console, selecione **Speed (Research Preview)** no menu **Group by** para separar o modo rápido do uso em velocidade padrão. Você vê essa opção apenas quando o intervalo de datas selecionado inclui uso do modo rápido.98* **Claude Console**: sua organização paga pelo modo rápido junto com o resto de seu uso de API. Nas páginas [Usage](https://platform.claude.com/usage) e [Cost](https://platform.claude.com/cost) do Console, selecione **Speed (research preview)** no menu **Group by** para separar o modo rápido do uso em velocidade padrão. Você vê essa opção apenas quando o intervalo de datas selecionado inclui uso do modo rápido.

92 99 

93## Decidir quando usar o modo rápido100## Decidir quando usar o modo rápido

94 101 

Details

192 192 

193Quando Claude Code inicia com a Plataforma de Agentes do Google Cloud configurada, ele verifica que os modelos que pretende usar estão acessíveis no seu projeto.193Quando Claude Code inicia com a Plataforma de Agentes do Google Cloud configurada, ele verifica que os modelos que pretende usar estão acessíveis no seu projeto.

194 194 

195Se você fixou uma versão de modelo que é mais antiga que o padrão atual do Claude Code, e seu projeto pode invocar a versão mais recente, Claude Code o solicita a atualizar a fixação. Aceitar escreve o novo ID de modelo no seu [arquivo de configurações do usuário](https://code.claude.com/docs/pt/settings.md) e reinicia Claude Code. Recusar é lembrado até a próxima mudança de versão padrão.195Você pode ter fixado uma versão de modelo que é mais antiga que o padrão atual do Claude Code. Se seu projeto pode invocar a versão mais recente, Claude Code solicita que você atualize a fixação:

196 

197* **Se você aceitar**: Claude Code escreve o novo ID de modelo no seu [arquivo de configurações do usuário](https://code.claude.com/docs/pt/settings.md) e reinicia

198* **Se você recusar**: Claude Code lembra sua escolha até a próxima mudança de versão padrão

199 

200Para uma fixação no bloco `env` das [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md), Claude Code não executa nenhuma verificação e não mostra nenhum prompt.

196 201 

197Se você não fixou um modelo e o padrão atual não está disponível no seu projeto, Claude Code volta para a versão anterior para a sessão atual e mostra um aviso. Ele tenta versões anteriores do modelo padrão primeiro e, quando o padrão é um modelo Opus e nenhuma versão Opus está disponível, volta para o modelo Sonnet padrão. O fallback não é persistido. Ative o modelo mais recente no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) ou [fixe uma versão](#5-pin-model-versions) para tornar a escolha permanente.202Se você não fixou um modelo e o padrão atual não está disponível no seu projeto, Claude Code volta para a versão anterior para a sessão atual e mostra um aviso. Ele tenta versões anteriores do modelo padrão primeiro e, quando o padrão é um modelo Opus e nenhuma versão Opus está disponível, volta para o modelo Sonnet padrão. O fallback não é persistido. Ative o modelo mais recente no [Model Garden](https://console.cloud.google.com/vertex-ai/model-garden) ou [fixe uma versão](#5-pin-model-versions) para tornar a escolha permanente.

198 203 

hooks.md +3 −3

Details

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

581| :- | :- | :- |581| :- | :- | :- |

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

583| `model` | não | Modelo a usar para avaliação. Padrão para o modelo que Claude Code usa para [funcionalidade em background](https://code.claude.com/docs/pt/costs.md#background-token-usage) |583| `model` | não | Modelo a usar para avaliação. Padrão para o modelo que Claude Code usa para [funcionalidade em background](https://code.claude.com/docs/pt/model-config.md#environment-variables) |

584 584 

585### Referenciar scripts por caminho585### Referenciar scripts por caminho

586 586 


3914 3914 

3915Em vez de executar um comando Bash, hooks baseados em prompt:3915Em vez de executar um comando Bash, hooks baseados em prompt:

3916 3916 

39171. Enviam a entrada do hook e seu prompt para um modelo Claude, por padrão aquele que Claude Code usa para [funcionalidade em segundo plano](https://code.claude.com/docs/pt/costs.md#background-token-usage)39171. Enviam a entrada do hook e seu prompt para um modelo Claude, por padrão aquele que Claude Code usa para [funcionalidade em segundo plano](https://code.claude.com/docs/pt/model-config.md#environment-variables)

39182. O LLM responde com JSON estruturado contendo uma decisão39182. O LLM responde com JSON estruturado contendo uma decisão

39193. Claude Code processa a decisão automaticamente39193. Claude Code processa a decisão automaticamente

3920 3920 


3947| :- | :- | :- |3947| :- | :- | :- |

3948| `type` | sim | Deve ser `"prompt"` |3948| `type` | sim | Deve ser `"prompt"` |

3949| `prompt` | sim | O texto do prompt a enviar para o LLM. Use `$ARGUMENTS` como placeholder para a entrada JSON do hook. Se `$ARGUMENTS` não estiver presente, entrada JSON é anexada ao prompt |3949| `prompt` | sim | O texto do prompt a enviar para o LLM. Use `$ARGUMENTS` como placeholder para a entrada JSON do hook. Se `$ARGUMENTS` não estiver presente, entrada JSON é anexada ao prompt |

3950| `model` | não | Modelo a usar para avaliação. Padrão para o modelo que Claude Code usa para [funcionalidade em segundo plano](https://code.claude.com/docs/pt/costs.md#background-token-usage) |3950| `model` | não | Modelo a usar para avaliação. Padrão para o modelo que Claude Code usa para [funcionalidade em segundo plano](https://code.claude.com/docs/pt/model-config.md#environment-variables) |

3951| `timeout` | não | Timeout em segundos. Padrão: 30 |3951| `timeout` | não | Timeout em segundos. Padrão: 30 |

3952| `continueOnBlock` | não | Nos eventos aos quais se aplica, `true` alimenta uma razão `ok: false` de volta para Claude e continua em vez de terminar o turno. Padrão: `false`. Veja [Esquema de resposta](#response-schema) para comportamento por evento |3952| `continueOnBlock` | não | Nos eventos aos quais se aplica, `true` alimenta uma razão `ok: false` de volta para Claude e continua em vez de terminar o turno. Padrão: `false`. Veja [Esquema de resposta](#response-schema) para comportamento por evento |

3953 3953 

Details

708 708 

709Em uma [sessão de fundo](https://code.claude.com/docs/pt/agent-view.md#attach-to-a-session) anexada, `Left` desanexa e retorna você à visualização de agente, mesmo enquanto a resposta ainda está chegando. A pergunta lateral continua em execução enquanto você está ausente. Na próxima vez que você anexar à sessão, a sobreposição reabre com a pergunta lateral ou com sua resposta. Antes da v2.1.257, `Left` não desanexava lá.709Em uma [sessão de fundo](https://code.claude.com/docs/pt/agent-view.md#attach-to-a-session) anexada, `Left` desanexa e retorna você à visualização de agente, mesmo enquanto a resposta ainda está chegando. A pergunta lateral continua em execução enquanto você está ausente. Na próxima vez que você anexar à sessão, a sobreposição reabre com a pergunta lateral ou com sua resposta. Antes da v2.1.257, `Left` não desanexava lá.

710 710 

711`/btw` vê sua conversa completa mas não tem ferramentas. Um [subagentesubagente](https://code.claude.com/docs/pt/sub-agents.md) tem ferramentas e começa a partir do prompt que recebe, ou, para uma [bifurcação](https://code.claude.com/docs/pt/sub-agents.md#fork-the-current-conversation), a partir de uma cópia desta conversa. Use `/btw` para perguntar sobre o que Claude já sabe desta sessão; use um subagentesubagente para descobrir algo novo.711`/btw` vê sua conversa completa, ou a [transcrição do subagente que você tem aberta](#ask-btw-about-a-subagent), mas não tem ferramentas. Um [subagente](https://code.claude.com/docs/pt/sub-agents.md) tem ferramentas e começa a partir do prompt que recebe. Uma [bifurcação](https://code.claude.com/docs/pt/sub-agents.md#fork-the-current-conversation) começa a partir de uma cópia desta conversa. Use `/btw` para perguntar sobre o que Claude já sabe desta sessão; use um subagente para descobrir algo novo.

712 

713### Pergunte ao /btw sobre um subagente

714 

715Com a [transcrição de um subagente aberta](https://code.claude.com/docs/pt/sub-agents.md#observe-and-steer-running-forks), Claude responde ao `/btw` a partir dessa transcrição em vez da conversa principal, para que você possa perguntar o que o subagente fez. Um `/btw` posterior a partir dessa transcrição vê apenas as perguntas laterais que você fez a partir dela. Requer Claude Code v2.1.314 ou posterior.

716 

717A partir da transcrição de um colega de uma [equipe de agentes](https://code.claude.com/docs/pt/agent-teams.md), Claude responde a partir da conversa principal.

712 718 

713## Lista de tarefas719## Lista de tarefas

714 720 


749* **Após seu computador dormir**: se ele dormiu por mais de cerca de 30 minutos e o limite foi resetado enquanto dormia, a primeira linha diz `Your usage limit has reset` e a segunda diz `Press enter to continue`. Pressione `Enter` para continuar. Após um sono mais curto, ou um que terminou antes do reset, Claude Code continua automaticamente.755* **Após seu computador dormir**: se ele dormiu por mais de cerca de 30 minutos e o limite foi resetado enquanto dormia, a primeira linha diz `Your usage limit has reset` e a segunda diz `Press enter to continue`. Pressione `Enter` para continuar. Após um sono mais curto, ou um que terminou antes do reset, Claude Code continua automaticamente.

750* **Antecipadamente**: quando você termina de adicionar [créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) com `/usage-credits`, faz login novamente após `/upgrade`, ou muda de modelo com `/model` durante a espera, Claude Code verifica se o uso está disponível novamente e continua imediatamente se estiver. Ele não verifica após uma atualização ou compra que você faz em um navegador por conta própria. Em [`opusplan`](https://code.claude.com/docs/pt/model-config#opusplan-model-setting) e outras configurações de modelo que executam o modo de plano em um modelo diferente, Claude Code aguarda o reset.756* **Antecipadamente**: quando você termina de adicionar [créditos de uso](https://code.claude.com/docs/pt/costs.md#add-usage-credits-to-your-subscription) com `/usage-credits`, faz login novamente após `/upgrade`, ou muda de modelo com `/model` durante a espera, Claude Code verifica se o uso está disponível novamente e continua imediatamente se estiver. Ele não verifica após uma atualização ou compra que você faz em um navegador por conta própria. Em [`opusplan`](https://code.claude.com/docs/pt/model-config#opusplan-model-setting) e outras configurações de modelo que executam o modo de plano em um modelo diferente, Claude Code aguarda o reset.

751 757 

752A tarefa continuada é executada como qualquer outro turno. Claude Code ainda solicita [permissões](https://code.claude.com/docs/pt/permissions.md) como de costume, portanto a tarefa pode parar em um prompt enquanto você está ausente. Se atingir o limite novamente, Claude Code reativa a espera automaticamente no máximo duas vezes seguidas, depois para e mostra `Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again`.758Na tarefa continuada, Claude Code ainda solicita [permissões](https://code.claude.com/docs/pt/permissions.md) como de costume, portanto a tarefa pode parar em um prompt enquanto você está ausente. Se a tarefa atingir o limite novamente, a espera começa de novo.

759 

760Após três continuações automáticas, a continuação automática para e a notificação `Automatic continue stopped after repeated usage-limit hits` aparece. Execute `/rate-limit-options` para escolher o que fazer em seguida. Quando você envia outro prompt, ou escolhe uma espera nesse menu, a contagem recomeça. A continuação automática também para após três continuações para um [`/goal`](https://code.claude.com/docs/pt/goal) ou uma [tarefa agendada com escopo de sessão](https://code.claude.com/docs/pt/scheduled-tasks.md) que é executada ao longo de várias janelas de reset.

753 761 

754### Cancelar a espera762### Cancelar a espera

755 763 

Details

237* Quando o upstream rejeita uma entrada `role: "system"` dentro de `messages`, Claude Code tenta novamente uma vez sem essas mensagens de sistema no meio da conversa e leva o texto delas em mensagens de usuário. Requisições posteriores na conversa mantêm esse formato até o desenvolvedor executar `/clear` ou a conversa ser compactada237* Quando o upstream rejeita uma entrada `role: "system"` dentro de `messages`, Claude Code tenta novamente uma vez sem essas mensagens de sistema no meio da conversa e leva o texto delas em mensagens de usuário. Requisições posteriores na conversa mantêm esse formato até o desenvolvedor executar `/clear` ou a conversa ser compactada

238* Quando o upstream rejeita apenas o marcador `cache_control` em uma mensagem de sistema no meio da conversa, Claude Code mantém as mensagens de sistema e tenta novamente uma vez com o marcador movido. O marcador vai na última entrada em `messages` que não é uma mensagem de sistema, nessa nova tentativa e em requisições posteriores até Claude Code sair238* Quando o upstream rejeita apenas o marcador `cache_control` em uma mensagem de sistema no meio da conversa, Claude Code mantém as mensagens de sistema e tenta novamente uma vez com o marcador movido. O marcador vai na última entrada em `messages` que não é uma mensagem de sistema, nessa nova tentativa e em requisições posteriores até Claude Code sair

239* Quando o upstream rejeita uma [assinatura de pensamento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluindo com um `400` cuja mensagem diz que o bloco está `bound to a different conversation`, Claude Code remove blocos de pensamento anteriores da solicitação, tenta novamente, e os mantém fora de cada solicitação posterior. Novas respostas ainda incluem pensamento239* Quando o upstream rejeita uma [assinatura de pensamento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluindo com um `400` cuja mensagem diz que o bloco está `bound to a different conversation`, Claude Code remove blocos de pensamento anteriores da solicitação, tenta novamente, e os mantém fora de cada solicitação posterior. Novas respostas ainda incluem pensamento

240* Quando o gateway ou seu upstream rejeita a entrada da [ferramenta advisor](https://code.claude.com/docs/pt/advisor.md) em `tools` como um tipo de ferramenta não reconhecido, Claude Code tenta novamente a solicitação uma vez sem essa entrada e seu valor `anthropic-beta`. Solicitações posteriores para essa URL base deixam o advisor de fora até Claude Code sair, e `/advisor` fica indisponível para o desenvolvedor por esse tempo. Claude Code reconhece essa rejeição por uma resposta `400` ou `422` cuja mensagem nomeia o tipo de ferramenta após `Input tag`, como `Input tag 'advisor_20260301'`. Antes da v2.1.280, Claude Code não tentava novamente essa rejeição240* Quando o gateway ou seu upstream rejeita a entrada da [ferramenta advisor](https://code.claude.com/docs/pt/advisor.md) em `tools` como um tipo de ferramenta não reconhecido, Claude Code tenta novamente a requisição uma vez sem essa entrada e seu valor `anthropic-beta`. [Requisições posteriores](#how-long-a-rejected-beta-value-stays-out) os omitem. Claude Code reconhece essa rejeição por uma resposta `400` ou `422` cuja mensagem nomeia o tipo de ferramenta após `Input tag`, como `Input tag 'advisor_20260301'`. Antes da v2.1.280, Claude Code não tentava novamente essa rejeição

241* Quando o upstream rejeita `output_config.effort` ou seu valor `anthropic-beta`, Claude Code tenta novamente e não adiciona nenhum dos dois às requisições para esse modelo até Claude Code sair. Seu gateway não precisa de nenhuma alteração se encaminhar o `400` do upstream sem modificações e a mensagem:241* Quando o upstream rejeita `output_config.effort` ou seu valor `anthropic-beta`, o gateway vê a requisição mais uma vez sem eles. [Requisições posteriores](#how-long-a-rejected-beta-value-stays-out) os omitem. Seu gateway não precisa de nenhuma alteração se encaminhar o `400` do upstream sem modificações e a mensagem:

242 * Nomear `output_config.effort` junto com `Extra inputs are not permitted`242 * Nomear `output_config.effort` junto com `Extra inputs are not permitted`

243 * Disser que o modelo não suporta o parâmetro de esforço243 * Disser que o modelo não suporta o parâmetro de esforço

244 * Começar com `Unexpected value(s)` e listar `effort-2025-11-24` para o header `anthropic-beta`. Requer v2.1.310 ou posterior. Desenvolvedores cujo [`ANTHROPIC_BETAS`](https://code.claude.com/docs/pt/env-vars) lista o valor continuam enviando-o e recebendo o `400`, então peça a eles que removam essa entrada244 * Começar com `Unexpected value(s)` e listar `effort-2025-11-24` para o header `anthropic-beta`. Requer v2.1.310 ou posterior. Desenvolvedores cujo [`ANTHROPIC_BETAS`](https://code.claude.com/docs/pt/env-vars) lista o valor continuam enviando-o e recebendo o `400`, então peça a eles que removam essa entrada

245* Quando o upstream rejeita o campo `context_management` ou seu valor `anthropic-beta`, o gateway vê a requisição mais uma vez sem eles. Se o gateway os vir novamente em uma requisição posterior e o upstream os rejeitar novamente, a mesma nova tentativa acontece. Claude Code reconhece essa rejeição por sua mensagem, por exemplo uma que contenha `context_management: Extra inputs are not permitted`. Antes da v2.1.304, Claude Code não tentava novamente essa rejeição245* Quando o upstream rejeita o campo `context_management` ou seu valor `anthropic-beta`, o gateway vê a requisição mais uma vez sem eles. [Requisições posteriores](#how-long-a-rejected-beta-value-stays-out) os omitem. Claude Code reconhece essa rejeição por sua mensagem, por exemplo uma que contenha `context_management: Extra inputs are not permitted`. Antes da v2.1.304, Claude Code não tentava novamente essa rejeição

246* Quando um `400` rejeita outro valor `anthropic-beta` pelo nome, o gateway vê a requisição mais uma vez sem ele se [a nova tentativa cobrir esse valor](#retry-without-a-rejected-beta-value)

246* Quando o upstream rejeita um campo de ferramenta beta diferente de `defer_loading`, como `strict`, o `400` chega ao desenvolvedor. Antes disso, o gateway pode ver a requisição novamente [sem os campos de busca de ferramentas](#retry-without-tool-search). Para deixar de enviar esses campos, peça aos desenvolvedores que definam [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)247* Quando o upstream rejeita um campo de ferramenta beta diferente de `defer_loading`, como `strict`, o `400` chega ao desenvolvedor. Antes disso, o gateway pode ver a requisição novamente [sem os campos de busca de ferramentas](#retry-without-tool-search). Para deixar de enviar esses campos, peça aos desenvolvedores que definam [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities)

247 248 

248A rejeição `bound to a different conversation` vem da verificação de [pensamento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) da API, que falha quando conteúdo de `system`, `tools`, ou `messages` anteriores difere da solicitação que produziu o pensamento. Um gateway que reescreve qualquer um desses conteúdos pode causar a rejeição em si; [Bibliotecas, proxies e gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cobre o que passar inalterado.249A rejeição `bound to a different conversation` vem da verificação de [pensamento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) da API, que falha quando conteúdo de `system`, `tools`, ou `messages` anteriores difere da solicitação que produziu o pensamento. Um gateway que reescreve qualquer um desses conteúdos pode causar a rejeição em si; [Bibliotecas, proxies e gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cobre o que passar inalterado.

249 250 

250A maior parte dessa lógica de retry corresponde à redação de erro do upstream, então encaminhe corpos de resposta de erro inalterados. Um gateway que envolve erros upstream em seu próprio envelope quebra o caminho de recuperação, mesmo quando preserva o código de status, a menos que a mensagem do envelope carregue um token `capability_rejected:` estável. [O gateway de aplicativos Claude substitui esses tokens pela redação de erro dos provedores de nuvem](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#upstream-error-messages), por exemplo `capability_rejected: prompt_too_long`.251A maior parte dessa lógica de retry corresponde à redação de erro do upstream, então encaminhe corpos de resposta de erro inalterados. Um gateway que envolve erros upstream em seu próprio envelope quebra o caminho de recuperação, mesmo quando preserva o código de status, a menos que a mensagem do envelope carregue um token `capability_rejected:` estável. [O gateway de aplicativos Claude substitui esses tokens pela redação de erro dos provedores de nuvem](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#upstream-error-messages), por exemplo `capability_rejected: prompt_too_long`.

251 252 

253#### Tentar novamente sem um valor beta rejeitado

254 

255Quando um `400` rejeita pelo nome um valor `anthropic-beta` que essa nova tentativa cobre, o gateway vê a requisição mais uma vez sem ele. [Requisições posteriores](#how-long-a-rejected-beta-value-stays-out) omitem o valor. A maioria dos valores que ela cobre requer v2.1.314 ou posterior.

256 

257Seu gateway não precisa de nenhuma alteração se a mensagem do `400` que ele retorna carregar o valor em qualquer uma destas formas:

258 

259* **A frase da API**: a frase `Unexpected value(s)` que lista o valor para o header `anthropic-beta`

260* **Um token `beta_header:`**: `capability_rejected: beta_header:` seguido do valor, um [token `capability_rejected:`](#automatic-retry-and-error-forwarding)

261 

262A nova tentativa não cobre casos como um valor com sua própria nova tentativa, um valor que Claude Code não reconhece, ou uma mensagem que não nomeia nenhum valor:

263 

264* **Um valor com sua própria nova tentativa, como advisor ou busca de ferramentas**: o gateway vê [a nova tentativa própria dessa capacidade](#automatic-retry-and-error-forwarding) em vez disso

265* **Um valor que Claude Code não reconhece**: um valor que um desenvolvedor definiu por meio de `ANTHROPIC_BETAS` permanece em cada requisição, então as requisições do desenvolvedor continuam falhando com o `400`. Peça ao desenvolvedor que remova a entrada

266* **Um `invalid beta flag` isolado**: Claude Code tenta adivinhar qual valor o upstream rejeitou. Se a requisição carregava um valor que ele tenta adivinhar, o gateway vê a requisição novamente sem esse valor. Se o `400` ainda chegar ao desenvolvedor, faça seu gateway nomear o valor rejeitado em uma dessas formas

267 

268#### Por quanto tempo um valor beta rejeitado fica de fora

269 

270| Upstream rejeitou | Requisições que o omitem | Até |

271| :- | :- | :- |

272| O tipo de ferramenta advisor, ou o valor `anthropic-beta` do advisor | Requisições para a mesma URL base. `/advisor` fica indisponível | Claude Code sair |

273| `output_config.effort` ou seu valor `anthropic-beta` | Requisições para o mesmo modelo | Claude Code sair |

274| `context_management` ou outro valor `anthropic-beta` que a [nova tentativa por nome](#retry-without-a-rejected-beta-value) cobre | Requisições na mesma conversa | A conversa terminar ou Claude Code reconstruir seu prompt, como quando a conversa principal é compactada |

275| `context_management` ou outro valor que essa nova tentativa cobre, quando a mensagem de erro começa com a própria frase da API para a rejeição, como `Unexpected value(s)`, ou carrega um token `beta_header:` | Também novas conversas no modelo que a requisição rejeitada nomeou, inclusive após `/clear` | Claude Code sair |

276 

252#### Tentar novamente sem busca de ferramentas277#### Tentar novamente sem busca de ferramentas

253 278 

254Na v2.1.305 ou posterior, uma requisição que carrega [campos `defer_loading` e blocos `tool_reference`](https://code.claude.com/docs/pt/mcp#tool-search-through-a-gateway) pode chegar novamente sem eles após um `400` ou `422` cuja causa Claude Code não reconhece. Após uma nova tentativa bem-sucedida, as requisições posteriores também os omitem.279Na v2.1.305 ou posterior, Claude Code reenvia uma requisição sem [campos `defer_loading` e blocos `tool_reference`](https://code.claude.com/docs/pt/mcp#tool-search-through-a-gateway) após um `400` ou `422` que nomeia a busca de ferramentas ou cuja causa ele não reconhece. Após uma nova tentativa bem-sucedida, as requisições posteriores nessa conversa também os omitem.

255 280 

256As requisições do desenvolvedor continuam funcionando sem nenhuma alteração no gateway, com suas ferramentas MCP carregadas antecipadamente. Claude Code tenta a busca de ferramentas novamente mais tarde, então o gateway pode ver outra requisição rejeitada seguida de sua nova tentativa. Para manter os campos fora de todas as requisições, peça aos desenvolvedores que definam `ENABLE_TOOL_SEARCH=false`. Para a busca de ferramentas em si, Claude Code espera que o gateway encaminhe os campos `defer_loading` e os blocos `tool_reference` com seu valor `anthropic-beta`.281As requisições do desenvolvedor continuam funcionando sem nenhuma alteração no gateway, com suas ferramentas MCP carregadas antecipadamente. Quando Claude Code tenta a busca de ferramentas novamente, o gateway vê outra requisição rejeitada seguida de sua nova tentativa. Para a busca de ferramentas em si, Claude Code espera que o gateway encaminhe os campos `defer_loading` e os blocos `tool_reference` com seu valor `anthropic-beta`.

257 282 

258### Desabilitar capacidades de pré-lançamento283### Desabilitar capacidades de pré-lançamento

259 284 

Details

166| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Consulta o `/v1/models` do gateway na inicialização e adiciona os nomes retornados ao seletor `/model` | Seu gateway serve `/v1/models` e você quer que os seletores dos desenvolvedores sejam preenchidos a partir dele |166| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Consulta o `/v1/models` do gateway na inicialização e adiciona os nomes retornados ao seletor `/model` | Seu gateway serve `/v1/models` e você quer que os seletores dos desenvolvedores sejam preenchidos a partir dele |

167| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Impede que Claude Code envie cabeçalhos de capacidade pré-lançamento e campos de corpo. [Desabilite capacidades pré-lançamento](https://code.claude.com/docs/pt/llm-gateway-protocol.md#disable-pre-release-capabilities) cobre o escopo exato | Seu gateway encaminha para um Amazon Bedrock ou Google Cloud's Agent Platform upstream que rejeita campos beta. Veja [Requisitos do gateway](#gateway-requirements) |167| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Impede que Claude Code envie cabeçalhos de capacidade pré-lançamento e campos de corpo. [Desabilite capacidades pré-lançamento](https://code.claude.com/docs/pt/llm-gateway-protocol.md#disable-pre-release-capabilities) cobre o escopo exato | Seu gateway encaminha para um Amazon Bedrock ou Google Cloud's Agent Platform upstream que rejeita campos beta. Veja [Requisitos do gateway](#gateway-requirements) |

168| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` ou `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Restaura [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) quando sua verificação de disponibilidade, que chama `api.anthropic.com` diretamente em vez de seguir `ANTHROPIC_BASE_URL`, falha, é interceptada ou é ignorada por falta de uma credencial Anthropic | Sua organização usa modo rápido, e os desenvolvedores autenticam com `ANTHROPIC_AUTH_TOKEN` sozinho, com uma chave emitida pelo gateway em `ANTHROPIC_API_KEY` ou de um `apiKeyHelper`, ou sua rede bloqueia ou intercepta solicitações diretas para `api.anthropic.com`; [use modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) cobre qual das duas variáveis corresponde à sua configuração |168| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` ou `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Restaura [modo rápido](https://code.claude.com/docs/pt/fast-mode.md) quando sua verificação de disponibilidade, que chama `api.anthropic.com` diretamente em vez de seguir `ANTHROPIC_BASE_URL`, falha, é interceptada ou é ignorada por falta de uma credencial Anthropic | Sua organização usa modo rápido, e os desenvolvedores autenticam com `ANTHROPIC_AUTH_TOKEN` sozinho, com uma chave emitida pelo gateway em `ANTHROPIC_API_KEY` ou de um `apiKeyHelper`, ou sua rede bloqueia ou intercepta solicitações diretas para `api.anthropic.com`; [use modo rápido atrás de proxies e gateways LLM](https://code.claude.com/docs/pt/fast-mode.md#use-fast-mode-behind-proxies-and-llm-gateways) cobre qual das duas variáveis corresponde à sua configuração |

169| `ANTHROPIC_MODEL` ou [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](https://code.claude.com/docs/pt/model-config) | Define qual nome de modelo Claude Code solicita para a sessão principal e para tráfego em segundo plano | Seu gateway roteia nomes de modelo que não correspondem aos padrões do Claude Code, ou você roteia [funcionalidade em segundo plano](https://code.claude.com/docs/pt/costs.md#background-token-usage) para um modelo diferente. Rotear tanto os nomes de substituição quanto os IDs de modelo integrados que Claude Code solicita quando nenhuma substituição é definida, já que algumas subchamadas de segundo plano solicitam um ID integrado independentemente da substituição; [configuração de modelo](https://code.claude.com/docs/pt/model-config.md) cobre qual modelo cada parte de uma sessão usa |169| `ANTHROPIC_MODEL` ou [`ANTHROPIC_DEFAULT_HAIKU_MODEL`](https://code.claude.com/docs/pt/model-config) | Define qual nome de modelo Claude Code solicita para a sessão principal e para tráfego em segundo plano | Seu gateway roteia nomes de modelo que não correspondem aos padrões do Claude Code, ou você roteia [funcionalidade em segundo plano](https://code.claude.com/docs/pt/model-config.md#environment-variables) para um modelo diferente. Roteie tanto os nomes de substituição quanto os IDs de modelo integrados que Claude Code solicita quando nenhuma substituição é definida, já que algumas subchamadas em segundo plano solicitam um ID integrado independentemente da substituição |

170| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL`, ou `ANTHROPIC_AWS_BASE_URL` com as [variáveis para esse provedor](https://code.claude.com/docs/pt/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway) | Aponta Claude Code para o gateway através de uma URL base específica do provedor. Amazon Bedrock e Google Cloud's Agent Platform também mudam para o formato de solicitação nativa desses provedores | Seu gateway está na frente do Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform na AWS; veja [Formatos de API](https://code.claude.com/docs/pt/llm-gateway-protocol.md#api-formats) |170| `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, `ANTHROPIC_FOUNDRY_BASE_URL`, ou `ANTHROPIC_AWS_BASE_URL` com as [variáveis para esse provedor](https://code.claude.com/docs/pt/llm-gateway-connect.md#route-to-a-cloud-provider-through-a-gateway) | Aponta Claude Code para o gateway através de uma URL base específica do provedor. Amazon Bedrock e Google Cloud's Agent Platform também mudam para o formato de solicitação nativa desses provedores | Seu gateway está na frente do Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, ou Claude Platform na AWS; veja [Formatos de API](https://code.claude.com/docs/pt/llm-gateway-protocol.md#api-formats) |

171 171 

172#### Distribua através de configurações gerenciadas172#### Distribua através de configurações gerenciadas

mcp.md +20 −4

Details

952* Para um servidor cujo cabeçalho `Authorization` você configurou, em `headers` ou por meio de um [`headersHelper`](#use-dynamic-headers-for-custom-authentication), um `401` ou `403` durante a conexão não sinaliza o servidor, porque a credencial a ser corrigida é aquela que você configurou. Em vez disso, o Claude Code informa que a conexão falhou. Se você definiu esse cabeçalho a partir de uma referência `${VAR}`, verifique se essa variável é uma das que o Claude Code [lê como vazia](#credential-variables-that-read-as-empty).952* Para um servidor cujo cabeçalho `Authorization` você configurou, em `headers` ou por meio de um [`headersHelper`](#use-dynamic-headers-for-custom-authentication), um `401` ou `403` durante a conexão não sinaliza o servidor, porque a credencial a ser corrigida é aquela que você configurou. Em vez disso, o Claude Code informa que a conexão falhou. Se você definiu esse cabeçalho a partir de uma referência `${VAR}`, verifique se essa variável é uma das que o Claude Code [lê como vazia](#credential-variables-that-read-as-empty).

953* Para um conector [entregue a uma sessão na nuvem](#how-connectors-reach-claude-code), o Claude Code não executa um fluxo de login, porque o proxy da sessão se autentica no conector com a autorização que você concedeu no claude.ai. Quando um conector ali precisar ser autorizado novamente, reconecte-o em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) em vez de fazê-lo a partir da sessão.953* Para um conector [entregue a uma sessão na nuvem](#how-connectors-reach-claude-code), o Claude Code não executa um fluxo de login, porque o proxy da sessão se autentica no conector com a autorização que você concedeu no claude.ai. Quando um conector ali precisar ser autorizado novamente, reconecte-o em [claude.ai/customize/connectors](https://claude.ai/customize/connectors) em vez de fazê-lo a partir da sessão.

954 954 

955Quando um servidor OAuth no qual você já fez login rejeita seu token armazenado com `401 Unauthorized`, o Claude Code atualiza o token, reconecta e tenta novamente a requisição uma vez. Ele sinaliza o servidor em `/mcp` somente se essa nova tentativa também falhar. Em uma execução de `claude -p` ou do Agent SDK no macOS, uma requisição que o Claude Code enviou enquanto não conseguia ler seu token armazenado falha com um [erro de credenciais armazenadas](https://code.claude.com/docs/pt/errors.md#couldnt-read-the-stored-credentials-for-mcp-server) em vez disso.955Quando um servidor OAuth no qual você já fez login rejeita seu token armazenado com `401 Unauthorized`, o Claude Code se reconecta com ou sem um novo token:

956 

957* **Seu login armazenado tem um refresh token**: ele atualiza o token, reconecta e tenta novamente a requisição uma vez. O servidor é sinalizado em `/mcp` somente se essa nova tentativa também falhar.

958* **Seu login armazenado não tem refresh token**: ele se conecta uma vez sem o token. Se o servidor responder, suas ferramentas funcionam enquanto você está desconectado, e o token rejeitado é excluído. Se o servidor também rejeitar essa conexão, o `/mcp` mostra que o servidor precisa de autenticação.

959 

960Em uma execução de `claude -p` ou do Agent SDK no macOS, uma requisição que o Claude Code enviou enquanto não conseguia ler seu token armazenado falha com um [erro de credenciais armazenadas](https://code.claude.com/docs/pt/errors.md#couldnt-read-the-stored-credentials-for-mcp-server).

956 961 

957Quando o servidor rejeita o refresh token armazenado, o Claude Code mostra imediatamente um aviso apontando para `/mcp`. Abra `/mcp` e selecione **Re-authenticate** no servidor para fazer login novamente antes que a próxima chamada de ferramenta falhe.962Quando o servidor rejeita o refresh token armazenado, o Claude Code mostra imediatamente um aviso apontando para `/mcp`. Abra `/mcp` e selecione **Re-authenticate** no servidor para fazer login novamente antes que a próxima chamada de ferramenta falhe.

958 963 


1640 1645 

1641## Responder a solicitações de elicitação MCP1646## Responder a solicitações de elicitação MCP

1642 1647 

1643Os servidores MCP podem solicitar entrada estruturada de você durante uma tarefa usando elicitação. Quando um servidor precisa de informações que não consegue obter por conta própria, Claude Code exibe um diálogo interativo e passa sua resposta de volta para o servidor. Nenhuma configuração é necessária do seu lado: diálogos de elicitação aparecem automaticamente quando um servidor os solicita.1648Os servidores MCP podem solicitar entrada estruturada de você durante uma tarefa usando elicitação. Quando um servidor precisa de informações que não consegue obter por conta própria, Claude Code exibe um diálogo interativo no terminal e passa sua resposta de volta para o servidor. Nenhuma configuração é necessária do seu lado: diálogos de elicitação aparecem automaticamente quando um servidor os solicita.

1644 1649 

1645Os servidores podem solicitar entrada de duas maneiras:1650Os servidores podem solicitar entrada de duas maneiras:

1646 1651 


1653 1658 

1654Se você está construindo um servidor MCP que usa elicitação, consulte a [especificação de elicitação MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalhes do protocolo e exemplos de esquema.1659Se você está construindo um servidor MCP que usa elicitação, consulte a [especificação de elicitação MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para detalhes do protocolo e exemplos de esquema.

1655 1660 

1661### Responder a uma solicitação de elicitação em uma sessão na nuvem

1662 

1663Quando a tarefa do Claude na sua sessão na nuvem aguarda uma solicitação de um servidor MCP, o servidor precisa de algo de você, como um valor ou um login. Se a solicitação aparecer como um cartão em claude.ai/code ou na guia **Code** do aplicativo Desktop, responda no cartão:

1664 

1665* **Modo de formulário**: preencha os campos e clique em **Submit**

1666* **Modo de URL**: clique em **Open link**, conclua o fluxo que ele abre e depois clique em **I’m done, continue** no cartão

1667 

1668Para recusar a solicitação, clique em **Decline**. Claude continua assim que o servidor responde.

1669 

1670Se você não vir nenhum cartão em nenhum desses lugares, não poderá responder à solicitação ali. Na sua própria sessão, clique no botão de parar ali para encerrar o turno.

1671 

1656### Modos de elicitação que Claude Code declara1672### Modos de elicitação que Claude Code declara

1657 1673 

1658Se você desenvolve um servidor MCP, as capacidades de cliente que Claude Code envia ao se conectar informam ao seu servidor quais modos de elicitação ele pode solicitar. Claude Code declara `elicitation: {form: {}, url: {}}` nas seguintes conexões, portanto um servidor em qualquer uma delas pode solicitar ambos os modos:1674Se você desenvolve um servidor MCP, as capacidades de cliente que Claude Code envia ao se conectar informam ao seu servidor quais modos de elicitação ele pode solicitar. Claude Code declara `elicitation: {form: {}, url: {}}` nas seguintes conexões, portanto um servidor em qualquer uma delas pode solicitar ambos os modos:


1815> * **Você definiu `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: veja [como isso afeta a busca de ferramentas](#configure-tool-search)1831> * **Você definiu `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`**: veja [como isso afeta a busca de ferramentas](#configure-tool-search)

1816> * **Uma requisição falhou com um erro que menciona `defer_loading` ou `tool_reference`**: veja [Extra inputs are not permitted](https://code.claude.com/docs/pt/errors.md#extra-inputs-are-not-permitted)1832> * **Uma requisição falhou com um erro que menciona `defer_loading` ou `tool_reference`**: veja [Extra inputs are not permitted](https://code.claude.com/docs/pt/errors.md#extra-inputs-are-not-permitted)

1817 1833 

1818Quando `ANTHROPIC_BASE_URL` aponta para um gateway, a busca de ferramentas está ativada por padrão, então as requisições incluem campos de ferramenta `defer_loading` e blocos `tool_reference` para o gateway encaminhar. Enquanto a busca de ferramentas está ativada, as ferramentas MCP são [adiadas](#scale-with-mcp-tool-search). Para, em vez disso, carregar todas as ferramentas antecipadamente, defina `ENABLE_TOOL_SEARCH=false` no seu shell ou no [`env` das suas configurações](https://code.claude.com/docs/pt/settings-reference#env). Antes da v2.1.304, a busca de ferramentas ficava desativada atrás de um gateway, a menos que `ENABLE_TOOL_SEARCH` fosse `true`, `auto` ou `auto:N`.1834Quando `ANTHROPIC_BASE_URL` aponta para um gateway, Claude Code espera que o gateway encaminhe campos de ferramenta `defer_loading` e blocos `tool_reference` [junto com o cabeçalho `anthropic-beta`](https://code.claude.com/docs/pt/llm-gateway-protocol#beta-header-and-body-field-pairs). A busca de ferramentas está ativada por padrão atrás do gateway, então as ferramentas MCP são [adiadas](#scale-with-mcp-tool-search) e as requisições incluem esses campos e blocos. Antes da v2.1.304, a busca de ferramentas ficava desativada atrás de um gateway, a menos que `ENABLE_TOOL_SEARCH` fosse `true`, `auto` ou `auto:N`.

1819 1835 

1820Na v2.1.305 ou posterior, Claude Code pode [tentar novamente uma requisição sem a busca de ferramentas](https://code.claude.com/docs/pt/llm-gateway-protocol.md#retry-without-tool-search) após um `400` ou `422` cuja causa ele não reconhece. Quando a nova tentativa funciona, nada aparece na tela e você não precisa fazer nada: as ferramentas MCP são carregadas antecipadamente. Claude Code tenta a busca de ferramentas novamente mais tarde, ao custo de outra requisição rejeitada. Para evitar essas requisições, defina `ENABLE_TOOL_SEARCH=false`.1836Na v2.1.305 ou posterior, Claude Code pode [tentar novamente uma requisição sem a busca de ferramentas](https://code.claude.com/docs/pt/llm-gateway-protocol.md#retry-without-tool-search) após um `400` ou `422`. Quando a nova tentativa funciona, nada aparece na tela e você não precisa fazer nada: as ferramentas MCP são carregadas antecipadamente. Claude Code tenta a busca de ferramentas novamente mais tarde, ao custo de outra requisição rejeitada.

1821 1837 

1822#### Ferramentas que permanecem adiadas abaixo do limite de `ENABLE_TOOL_SEARCH=auto`1838#### Ferramentas que permanecem adiadas abaixo do limite de `ENABLE_TOOL_SEARCH=auto`

1823 1839 

memory.md +6 −5

Details

206- Inclua comentários de documentação OpenAPI206- Inclua comentários de documentação OpenAPI

207```207```

208 208 

209Regras sem um campo `paths` são carregadas incondicionalmente e se aplicam a todos os arquivos. Uma regra com escopo de caminho carrega quando Claude usa a ferramenta Read, Write ou Edit em um arquivo correspondente. Ela também carrega quando Claude visualiza um arquivo correspondente com um comando Bash que [conta como leitura](https://code.claude.com/docs/pt/tools-reference.md#edit-tool-behavior), como `cat` ou `head` em um único arquivo. A correspondência também funciona quando Claude alcança um arquivo através de um caminho symlinked para o diretório do projeto, por exemplo em um checkout symlinked.209Uma regra com escopo de caminho carrega quando Claude usa a ferramenta Read, Write ou Edit em um arquivo correspondente. Ela também carrega quando Claude visualiza um arquivo correspondente com um comando Bash que [conta como leitura](https://code.claude.com/docs/pt/tools-reference.md#edit-tool-behavior), como `cat` ou `head` em um único arquivo. A correspondência também funciona quando Claude alcança um arquivo através de um caminho symlinked para o diretório do projeto, por exemplo em um checkout symlinked.

210 210 

211Cada padrão é relativo ao diretório base da regra:211Cada padrão é relativo ao diretório base da regra:

212 212 


219 219 

220| Padrão | Corresponde |220| Padrão | Corresponde |

221| - | - |221| - | - |

222| `**/*.ts` | Todos os arquivos TypeScript em qualquer diretório |222| `**/*.ts` | Arquivos `.ts` em qualquer lugar sob o diretório base |

223| `src/**/*` | Todos os arquivos sob o diretório `src/` |223| `src/**/*` | Todos os arquivos sob o `src/` do diretório base |

224| `*.md` | Arquivos Markdown na raiz do projeto |224| `*.md` | Arquivos `.md` em qualquer lugar sob o diretório base |

225| `src/components/*.tsx` | Componentes React em um diretório específico |225| `/*.md` | Arquivos `.md` diretamente no diretório base, não em subpastas |

226| `src/components/*.tsx` | Arquivos `.tsx` diretamente no `src/components/` do diretório base, não em subpastas |

226 227 

227Você pode especificar vários padrões e usar expansão de chaves para corresponder várias extensões em um padrão:228Você pode especificar vários padrões e usar expansão de chaves para corresponder várias extensões em um padrão:

228 229 

model-config.md +1 −1

Details

933| `ANTHROPIC_DEFAULT_FABLE_MODEL` | O modelo a usar para `fable`, e o ID de modelo que Claude Code reconhece como modelo Fable para [fallback automático de modelo](#automatic-model-fallback) em provedores de terceiros |933| `ANTHROPIC_DEFAULT_FABLE_MODEL` | O modelo a usar para `fable`, e o ID de modelo que Claude Code reconhece como modelo Fable para [fallback automático de modelo](#automatic-model-fallback) em provedores de terceiros |

934| `ANTHROPIC_DEFAULT_OPUS_MODEL` | O modelo a usar para `opus`, ou para `opusplan` quando o modo de planejamento está ativo. |934| `ANTHROPIC_DEFAULT_OPUS_MODEL` | O modelo a usar para `opus`, ou para `opusplan` quando o modo de planejamento está ativo. |

935| `ANTHROPIC_DEFAULT_SONNET_MODEL` | O modelo a usar para `sonnet`, ou para `opusplan` quando o modo de planejamento não está ativo. |935| `ANTHROPIC_DEFAULT_SONNET_MODEL` | O modelo a usar para `sonnet`, ou para `opusplan` quando o modo de planejamento não está ativo. |

936| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | O modelo a usar para `haiku`, ou [funcionalidade de fundo](https://code.claude.com/docs/pt/costs.md#background-token-usage) |936| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | O modelo a usar para `haiku`, ou funcionalidade de fundo |

937| `CLAUDE_CODE_SUBAGENT_MODEL` | O modelo padrão para [subagentes](https://code.claude.com/docs/pt/sub-agents.md#choose-a-model), companheiros de [equipe de agentes](https://code.claude.com/docs/pt/agent-teams.md#specify-teammates-and-models), e agentes de [fluxo de trabalho](https://code.claude.com/docs/pt/workflows.md) que não são atribuídos a um modelo de outra forma. Aceita um alias como `haiku` ou um nome de modelo completo. Um modelo por invocação ou o campo `model` de uma definição, incluindo `inherit`, tem precedência. Para alterar isso, defina [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](https://code.claude.com/docs/pt/sub-agents#run-every-subagent-on-one-model) |937| `CLAUDE_CODE_SUBAGENT_MODEL` | O modelo padrão para [subagentes](https://code.claude.com/docs/pt/sub-agents.md#choose-a-model), companheiros de [equipe de agentes](https://code.claude.com/docs/pt/agent-teams.md#specify-teammates-and-models), e agentes de [fluxo de trabalho](https://code.claude.com/docs/pt/workflows.md) que não são atribuídos a um modelo de outra forma. Aceita um alias como `haiku` ou um nome de modelo completo. Um modelo por invocação ou o campo `model` de uma definição, incluindo `inherit`, tem precedência. Para alterar isso, defina [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](https://code.claude.com/docs/pt/sub-agents#run-every-subagent-on-one-model) |

938 938 

939Em provedores de terceiros, [Personalizar exibição e capacidades do modelo fixado](#customize-pinned-model-display-and-capabilities) descreve o que a linha de um modelo fixado no seletor `/model` mostra.939Em provedores de terceiros, [Personalizar exibição e capacidades do modelo fixado](#customize-pinned-model-display-and-capabilities) descreve o que a linha de um modelo fixado no seletor `/model` mostra.

Details

1559 1559 

1560> [!NOTE]1560> [!NOTE]

1561>1561>

1562> As métricas de custo são aproximações. Para dados de faturamento oficiais, consulte seu provedor de API (Claude Console, Amazon Bedrock ou Google Cloud's Agent Platform).1562> As métricas de custo são aproximações. Para dados de faturamento oficiais, consulte [Gerenciar custos para sua organização](https://code.claude.com/docs/pt/costs.md#manage-costs-for-your-organization).

1563 1563 

1564Claude Code conta cada resposta de streaming em relação às métricas de custo e token exatamente uma vez, incluindo quando um gateway ou proxy atrás de `ANTHROPIC_BASE_URL` transmite uso progressivamente em vários frames.1564Claude Code conta cada resposta de streaming em relação às métricas de custo e token exatamente uma vez, incluindo quando um gateway ou proxy atrás de `ANTHROPIC_BASE_URL` transmite uso progressivamente em vários frames.

1565 1565 

Details

41* Leituras fora dos diretórios de trabalho enquanto [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer [retry não-sandboxizado](https://code.claude.com/docs/pt/sandboxing.md#the-unsandboxed-retry-escape-hatch) que precisa de aprovação para executar fora do sandbox, mesmo em modo automático e modo `bypassPermissions`. Requer Claude Code v2.1.257 ou posterior.41* Leituras fora dos diretórios de trabalho enquanto [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) está ativado: comandos Bash reconhecidos de leitura de arquivo e qualquer [retry não-sandboxizado](https://code.claude.com/docs/pt/sandboxing.md#the-unsandboxed-retry-escape-hatch) que precisa de aprovação para executar fora do sandbox, mesmo em modo automático e modo `bypassPermissions`. Requer Claude Code v2.1.257 ou posterior.

42 42 

43 Um comando que o analisador de shell não consegue rastrear, como um que muda de diretório mais de uma vez ou executa um subshell, solicita da mesma forma mesmo quando não nomeia nenhum caminho externo. Este prompt não se aplica quando o comando é executado no [sandbox](https://code.claude.com/docs/pt/sandboxing.md) e o sandbox impõe o bloqueio.43 Um comando que o analisador de shell não consegue rastrear, como um que muda de diretório mais de uma vez ou executa um subshell, solicita da mesma forma mesmo quando não nomeia nenhum caminho externo. Este prompt não se aplica quando o comando é executado no [sandbox](https://code.claude.com/docs/pt/sandboxing.md) e o sandbox impõe o bloqueio.

44* Gravações fora dos diretórios de trabalho enquanto [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) está ativado: Claude Code recusa chamadas de `Write`, `Edit` e `NotebookEdit` nesses locais, exceto para [alguns de seus próprios arquivos](https://code.claude.com/docs/pt/settings-reference.md#what-the-write-block-refuses-and-what-stays-writable). A chave não limita comandos de shell, ferramentas MCP ou os programas que os hooks executam, então use [sandboxing](https://code.claude.com/docs/pt/sandboxing.md) para limitar onde os comandos de shell gravam. Requer Claude Code v2.1.314 ou posterior.

44 45 

45## Configurações comuns46## Configurações comuns

46 47 


531Qualquer que seja sua resposta, Claude continua trabalhando:532Qualquer que seja sua resposta, Claude continua trabalhando:

532 533 

533* **Sim, e continue permitindo qualquer leitura fora dos diretórios de trabalho**: a leitura executa, leituras posteriores fora dos diretórios de trabalho executam como antes, e Claude Code registra sua resposta para que o prompt não apareça novamente534* **Sim, e continue permitindo qualquer leitura fora dos diretórios de trabalho**: a leitura executa, leituras posteriores fora dos diretórios de trabalho executam como antes, e Claude Code registra sua resposta para que o prompt não apareça novamente

534* **Não, e bloqueie leituras fora dos diretórios de trabalho a partir de agora**: a leitura é recusada, e Claude Code define [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) como `true` em suas configurações de usuário, o que faz as ferramentas de arquivo recusarem tais leituras em cada sessão posterior e em cada modo de permissão. Para deixar Claude ler tal caminho depois, adicione seu diretório com `/add-dir` ou remova a configuração.535* **Não, e bloqueie leituras fora dos diretórios de trabalho a partir de agora**: a leitura é recusada, e Claude Code define [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) como `true` em suas configurações de usuário, o que faz as ferramentas de arquivo recusarem tais leituras nesta e em cada sessão posterior e em cada modo de permissão. Para suspender o bloqueio, remova a configuração de cada [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#settings-files-and-who-they-affect) que a define e, em seguida, reinicie cada sessão em execução. Para um diretório nesta sessão, use `/add-dir`.

535* **Não, e pergunte novamente na próxima vez**: a leitura é recusada, e a próxima leitura fora dos diretórios de trabalho solicita confirmação novamente536* **Não, e pergunte novamente na próxima vez**: a leitura é recusada, e a próxima leitura fora dos diretórios de trabalho solicita confirmação novamente

536* **Sim, mas pergunte novamente na próxima vez**: a leitura executa, nada é salvo, e a próxima leitura fora dos diretórios de trabalho solicita confirmação novamente537* **Sim, mas pergunte novamente na próxima vez**: a leitura executa, nada é salvo, e a próxima leitura fora dos diretórios de trabalho solicita confirmação novamente

537 538 


553 554 

554Quando o modo auto não consegue aprovar as ações de sua sessão, o que acontece depende do caso:555Quando o modo auto não consegue aprovar as ações de sua sessão, o que acontece depende do caso:

555 556 

556* **Uma ação bloqueada**: Claude Code mostra uma notificação e lista a ação em `/permissions` na aba **Recently denied**, onde você pode pressionar `r` para tentar novamente com uma aprovação manual.557* **Uma ação bloqueada**: Claude Code mostra uma notificação e lista a ação em `/permissions` na aba **Recently blocked**, onde você pode [aprovar a ação para que Claude possa tentar novamente](https://code.claude.com/docs/pt/auto-mode-config.md#review-denials).

557* **Bloqueios repetidos**: se o classificador bloquear uma ação 3 vezes seguidas ou 20 vezes no total, o modo auto pausa e Claude Code volta a solicitar confirmação. Aprovar a ação solicitada retoma o modo auto. Consulte [Limites de bloqueio repetido](#repeated-block-thresholds) para saber como os bloqueios são contados.558* **Bloqueios repetidos**: se o classificador bloquear uma ação 3 vezes seguidas ou 20 vezes no total, o modo auto pausa e Claude Code volta a solicitar confirmação. Aprovar a ação solicitada retoma o modo auto. Consulte [Limites de bloqueio repetido](#repeated-block-thresholds) para saber como os bloqueios são contados.

558* **Sem veredito do classificador**: quando uma verificação de segurança separada do modo auto recusa a própria requisição do classificador, ou a resposta do classificador não pode ser analisada, Claude Code nega a ação sem a notificação ou a entrada em **Recently denied**. Consulte [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/pt/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) para a mensagem que cada caso mostra e o que fazer.559* **Sem veredito do classificador**: quando uma verificação de segurança separada do modo auto recusa a própria requisição do classificador, ou a resposta do classificador não pode ser analisada, Claude Code bloqueia a ação sem a notificação ou a entrada em **Recently blocked**. Consulte [Auto mode cannot determine the safety of an action](https://code.claude.com/docs/pt/errors.md#auto-mode-cannot-determine-the-safety-of-an-action) para a mensagem que cada caso mostra e o que fazer.

559* **Sem veredito do servidor**: sob a [revisão do classificador no servidor](#server-side-classifier-review), Claude Code nega uma ação para a qual o servidor não dá veredito, e interrompe o turno após dez respostas seguidas sem veredito. Consulte [O servidor não retornou veredito de segurança](https://code.claude.com/docs/pt/errors.md#the-server-returned-no-safety-verdict).560* **Sem veredito do servidor**: sob a [revisão do classificador no servidor](#server-side-classifier-review), Claude Code nega uma ação para a qual o servidor não dá veredito, e interrompe o turno após dez respostas seguidas sem veredito. Consulte [O servidor não retornou veredito de segurança](https://code.claude.com/docs/pt/errors.md#the-server-returned-no-safety-verdict).

560* **Uma mudança de modo durante uma verificação**: se você mudar de modo de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado. Em vez disso, você recebe um prompt de aprovação, ou a ação é negada automaticamente no [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).561* **Uma mudança de modo durante uma verificação**: se você mudar de modo de permissão enquanto uma verificação do classificador está pendente, Claude Code descarta um veredito que o novo modo não teria solicitado. Em vez disso, você recebe um prompt de aprovação, ou a ação é negada automaticamente no [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

561 562 


738 739 

739Em uma sessão iniciada com [`--restricted`](https://code.claude.com/docs/pt/cli-reference#cli-flags), que requer Claude Code v2.1.248 ou posterior, o classificador não consegue aprovar gravações em caminhos protegidos.740Em uma sessão iniciada com [`--restricted`](https://code.claude.com/docs/pt/cli-reference#cli-flags), que requer Claude Code v2.1.248 ou posterior, o classificador não consegue aprovar gravações em caminhos protegidos.

740 741 

742Enquanto [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) estiver ativado, Claude Code recusa gravações de `Write`, `Edit` e `NotebookEdit` em arquivos de configurações em todos os modos de permissão.

743 

741Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação que a [verificação de symlink](https://code.claude.com/docs/pt/permissions.md#symlinks) resolve para um caminho protegido solicita você em vez disso quando o caminho que Claude solicitou não é em si protegido.744Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação que a [verificação de symlink](https://code.claude.com/docs/pt/permissions.md#symlinks) resolve para um caminho protegido solicita você em vez disso quando o caminho que Claude solicitou não é em si protegido.

742 745 

743Regras [`permissions.allow`](https://code.claude.com/docs/pt/permissions#manage-permissions) em arquivos de configurações não pré-aprovam gravações em caminhos protegidos. A verificação de segurança é executada antes de Claude Code avaliar regras de permissão de arquivos de configurações, então uma entrada como `Edit(.claude/**)` em `~/.claude/settings.json` ou `.claude/settings.json` não altera o resultado por modo na tabela acima. Em modos que solicitam, o prompt para uma gravação na pasta `.claude/` do projeto ou em `~/.claude/` pode oferecer uma destas opções com escopo de sessão:746Regras [`permissions.allow`](https://code.claude.com/docs/pt/permissions#manage-permissions) em arquivos de configurações não pré-aprovam gravações em caminhos protegidos. A verificação de segurança é executada antes de Claude Code avaliar regras de permissão de arquivos de configurações, então uma entrada como `Edit(.claude/**)` em `~/.claude/settings.json` ou `.claude/settings.json` não altera o resultado por modo na tabela acima. Em modos que solicitam, o prompt para uma gravação na pasta `.claude/` do projeto ou em `~/.claude/` pode oferecer uma destas opções com escopo de sessão:


776* `.devcontainer.json`779* `.devcontainer.json`

777* `.ripgreprc`, `pyrightconfig.json`780* `.ripgreprc`, `pyrightconfig.json`

778* `.mcp.json`, `.claude.json`781* `.mcp.json`, `.claude.json`

782* `remote-settings.json`, a cópia armazenada das [configurações gerenciadas pelo servidor](https://code.claude.com/docs/pt/server-managed-settings.md) da sua organização, e os arquivos de assinatura, sincronização e consentimento que Claude Code mantém junto com ela, em `~/.claude` ou no diretório para o qual [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/pt/env-vars) aponta

779* Um arquivo que você passou para [`--settings`](https://code.claude.com/docs/pt/cli-reference#cli-flags), `--mcp-config` ou `--agents` ao iniciar a sessão783* Um arquivo que você passou para [`--settings`](https://code.claude.com/docs/pt/cli-reference#cli-flags), `--mcp-config` ou `--agents` ao iniciar a sessão

780* O arquivo para o qual seu [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#settings-files-and-who-they-affect) de usuário, de projeto ou local aponta quando o próprio arquivo de configurações é um link simbólico, por exemplo, para um repositório de dotfiles. Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação nesse arquivo solicita você em vez disso, mesmo quando uma regra de permissão corresponde. Se o caminho do próprio arquivo também for o de um arquivo de configurações, como `.claude/settings.json` em outra pasta, a gravação vai para o classificador como as demais gravações em caminhos protegidos784* O arquivo para o qual seu [arquivo de configurações](https://code.claude.com/docs/pt/settings.md#settings-files-and-who-they-affect) de usuário, de projeto ou local aponta quando o próprio arquivo de configurações é um link simbólico, por exemplo, para um repositório de dotfiles. Nos modos que roteiam gravações em caminhos protegidos para o classificador, uma gravação nesse arquivo solicita você em vez disso, mesmo quando uma regra de permissão corresponde. Se o caminho do próprio arquivo também for o de um arquivo de configurações, como `.claude/settings.json` em outra pasta, a gravação vai para o classificador como as demais gravações em caminhos protegidos

781 785 

permissions.md +9 −2

Details

668 668 

669Você não pode adicionar a maioria dos [caminhos de rede](https://code.claude.com/docs/pt/errors.md#working-directory-is-a-network-path), como o compartilhamento UNC `\\server\share`, como diretórios de trabalho, porque consultá-los pode contatar o host que eles nomeiam. No Windows, mapeie o compartilhamento para uma letra de unidade e passe a unidade com `--add-dir` na inicialização.669Você não pode adicionar a maioria dos [caminhos de rede](https://code.claude.com/docs/pt/errors.md#working-directory-is-a-network-path), como o compartilhamento UNC `\\server\share`, como diretórios de trabalho, porque consultá-los pode contatar o host que eles nomeiam. No Windows, mapeie o compartilhamento para uma letra de unidade e passe a unidade com `--add-dir` na inicialização.

670 670 

671Defina [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) para fazer com que as ferramentas de arquivo recusem os caminhos que ela delimita em todos os modos de permissão. No modo auto, Claude Code oferece ativá-la na primeira vez que Claude [lê fora dos diretórios de trabalho](https://code.claude.com/docs/pt/permission-modes.md#first-read-outside-the-working-directories).

672 

673Em sessões em segundo plano no macOS, o host da sessão solicita acesso a pastas protegidas como `~/Desktop`, `~/Documents` e `~/Downloads` separadamente do seu terminal quando Claude precisa ler ou gravar arquivos nelas; se as leituras nessas pastas falharem com `Operation not permitted`, consulte [como conceder acesso a pastas para sessões em segundo plano](https://code.claude.com/docs/pt/agent-view.md#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos).671Em sessões em segundo plano no macOS, o host da sessão solicita acesso a pastas protegidas como `~/Desktop`, `~/Documents` e `~/Downloads` separadamente do seu terminal quando Claude precisa ler ou gravar arquivos nelas; se as leituras nessas pastas falharem com `Operation not permitted`, consulte [como conceder acesso a pastas para sessões em segundo plano](https://code.claude.com/docs/pt/agent-view.md#background-sessions-can’t-read-desktop-documents-or-downloads-on-macos).

674 672 

673### Bloquear leituras e gravações das ferramentas de arquivo fora dos diretórios de trabalho

674 

675Para fazer com que as ferramentas de arquivo de Claude recusem caminhos fora dos diretórios de trabalho em todos os modos de permissão, incluindo `bypassPermissions`, defina uma ou ambas destas chaves como `true`:

676 

677* **[`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories)**: as ferramentas de arquivo recusam leituras nesses locais, exceto arquivos de que o próprio Claude Code precisa. No modo auto, Claude Code oferece ativá-la na primeira vez que Claude [lê fora dos diretórios de trabalho](https://code.claude.com/docs/pt/permission-modes.md#first-read-outside-the-working-directories).

678* **[`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories)**: as ferramentas `Write`, `Edit` e `NotebookEdit` recusam gravações nesses locais, exceto alguns dos próprios arquivos do Claude Code, como arquivos de plano. A chave não limita comandos de shell, ferramentas MCP nem os programas que os hooks executam; portanto, use [sandboxing](https://code.claude.com/docs/pt/sandboxing.md) para limitar onde os comandos de shell gravam. Requer Claude Code v2.1.314 ou posterior.

679 

680Para manter um diretório externo acessível enquanto qualquer uma das chaves estiver como `true`, [adicione-o como diretório de trabalho](https://code.claude.com/docs/pt/settings-reference.md#let-one-directory-through-the-read-or-write-block).

681 

675### Mover a sessão para outro diretório682### Mover a sessão para outro diretório

676 683 

677Para mover a sessão para um diretório de trabalho principal diferente, em vez de [adicionar um diretório](#working-directories) junto ao atual, execute `/cd <path>`. Claude Code mantém a conversa, carrega o `CLAUDE.md` do novo diretório e solicita que você [confie no workspace](#project-allow-rules-and-workspace-trust) se ainda não tiver trabalhado nele. Depois disso, Claude Code [encontra a sessão movida](https://code.claude.com/docs/pt/sessions.md#where-the-session-picker-looks) quando você executa `--resume` a partir do novo diretório.684Para mover a sessão para um diretório de trabalho principal diferente, em vez de [adicionar um diretório](#working-directories) junto ao atual, execute `/cd <path>`. Claude Code mantém a conversa, carrega o `CLAUDE.md` do novo diretório e solicita que você [confie no workspace](#project-allow-rules-and-workspace-trust) se ainda não tiver trabalhado nele. Depois disso, Claude Code [encontra a sessão movida](https://code.claude.com/docs/pt/sessions.md#where-the-session-picker-looks) quando você executa `--resume` a partir do novo diretório.

Details

256 256 

257### Pare o trabalho em segundo plano257### Pare o trabalho em segundo plano

258 258 

259Os temporizadores param quando o módulo é recarregado. Para trabalho de longa duração dentro de um hook, [`next.signal`](https://code.claude.com/docs/pt/plugins/mods/reference#the-hook-function) é um `AbortSignal` que aborta quando o evento que seu hook está manipulando é abandonado, por exemplo quando o usuário interrompe, então passe-o para qualquer coisa de longa duração.259Os temporizadores param quando o módulo é recarregado. Para trabalho de longa duração dentro de um hook, [`next.signal`](https://code.claude.com/docs/pt/plugins/mods/reference#the-hook-function) é um `AbortSignal` que aborta quando o evento que seu hook está manipulando é abandonado, por exemplo quando o usuário interrompe. Passe-o para qualquer coisa de longa duração.

260 260 

261### Chamadas e trabalho em segundo plano depois que o usuário interrompe um turno261### Chamadas e trabalho em segundo plano depois que o usuário interrompe um turno

262 262 

Details

738})738})

739```739```

740 740 

741O Claude Code agora executa seu hook `ui.render` uma vez por segundo. O timer para quando o módulo recarrega, e a nova instância do módulo inicia o seu próprio.741O Claude Code agora executa seu hook `ui.render` uma vez por segundo. O timer para depois que o módulo recarrega, e a nova instância do módulo inicia o seu próprio.

742 742 

743### Com que frequência um site pode redesenhar743### Com que frequência um site pode redesenhar

744 744 

plugins/org.md +1 −1

Details

339Para executar canais estáveis e de acesso antecipado, hospede dois marketplaces que apontam para refs diferentes dos mesmos plugins. Depois dê a cada grupo de usuários seu próprio marketplace através de configurações gerenciadas por endpoint separadas ou uma política de gateway. As configurações gerenciadas pelo servidor do console de administração [se aplicam a cada usuário na sua organização](https://code.claude.com/docs/pt/server-managed-settings.md#current-limitations), então não podem atribuir configurações diferentes a grupos diferentes.339Para executar canais estáveis e de acesso antecipado, hospede dois marketplaces que apontam para refs diferentes dos mesmos plugins. Depois dê a cada grupo de usuários seu próprio marketplace através de configurações gerenciadas por endpoint separadas ou uma política de gateway. As configurações gerenciadas pelo servidor do console de administração [se aplicam a cada usuário na sua organização](https://code.claude.com/docs/pt/server-managed-settings.md#current-limitations), então não podem atribuir configurações diferentes a grupos diferentes.

340 340 

341* Implante [configurações gerenciadas por endpoint](https://code.claude.com/docs/pt/managed-settings.md#delivery-mechanisms) separadas, como um arquivo de configurações gerenciadas ou um perfil MDM, para os dispositivos de cada grupo. Para verificar se o arquivo ou perfil por grupo se aplica em um dispositivo que também tem uma fonte de nível de organização, veja [How Claude Code combines managed sources](https://code.claude.com/docs/pt/managed-settings.md#precedence-within-the-managed-tier).341* Implante [configurações gerenciadas por endpoint](https://code.claude.com/docs/pt/managed-settings.md#delivery-mechanisms) separadas, como um arquivo de configurações gerenciadas ou um perfil MDM, para os dispositivos de cada grupo. Para verificar se o arquivo ou perfil por grupo se aplica em um dispositivo que também tem uma fonte de nível de organização, veja [How Claude Code combines managed sources](https://code.claude.com/docs/pt/managed-settings.md#precedence-within-the-managed-tier).

342* Defina uma [política de gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#managed) por grupo. O gateway aplica a primeira política cuja regra de correspondência se encaixa em um usuário, então ordene as políticas para que cada usuário chegue à política do seu grupo. O mapa `extraKnownMarketplaces` dessa política não se mescla com o de qualquer outra política, então liste cada marketplace que o grupo precisa nele, não apenas seu marketplace de canal.342* Defina uma [política de gateway de aplicativos Claude](https://code.claude.com/docs/pt/claude-apps-gateway-config.md#managed) por grupo. Por padrão, o gateway aplica a primeira política cuja regra de correspondência se encaixa em um usuário, então ordene as políticas para que cada usuário chegue à política do seu grupo. O mapa `extraKnownMarketplaces` dessa política não se mescla com o de qualquer outra política, então liste cada marketplace que o grupo precisa nele, não apenas seu marketplace de canal.

343 343 

344Com qualquer mecanismo, o grupo estável recebe esta configuração:344Com qualquer mecanismo, o grupo estável recebe esta configuração:

345 345 

Details

51>51>

52> Até que você aceite a confirmação única do Remote Control, `claude remote-control` explica o que faz e pergunta `Enable Remote Control? (y/n)` antes de iniciar o servidor. Responda `y` para aceitar e iniciar o servidor. Se você recusar, Claude Code sai sem iniciar o servidor e pergunta novamente na próxima vez que você executar o comando.52> Até que você aceite a confirmação única do Remote Control, `claude remote-control` explica o que faz e pergunta `Enable Remote Control? (y/n)` antes de iniciar o servidor. Responda `y` para aceitar e iniciar o servidor. Se você recusar, Claude Code sai sem iniciar o servidor e pergunta novamente na próxima vez que você executar o comando.

53>53>

54> O processo continua em execução no seu terminal em modo servidor, aguardando conexões remotas. Ele exibe uma URL de sessão que você pode usar para [conectar de outro dispositivo](#connect-from-another-device), e você pode pressionar a barra de espaço para mostrar um código QR para acesso rápido do seu telefone. Enquanto uma sessão remota está ativa, o terminal mostra o status da conexão e a atividade da ferramenta.54> O processo continua em execução no seu terminal em modo servidor, aguardando conexões remotas. Ele exibe uma URL que você pode usar para [conectar de outro dispositivo](#connect-from-another-device), e você pode pressionar a barra de espaço para mostrar um código QR para acesso rápido do seu telefone. Enquanto uma sessão remota está ativa, o terminal mostra o status da conexão e a atividade da ferramenta.

55>55>

56> Passe qualquer um destes sinalizadores após `remote-control`:56> Passe qualquer um destes sinalizadores após `remote-control`:

57>57>


151 151 

152Depois que uma sessão de Remote Control está ativa, você tem algumas maneiras de conectar de outro dispositivo:152Depois que uma sessão de Remote Control está ativa, você tem algumas maneiras de conectar de outro dispositivo:

153 153 

154* **Abra a URL da sessão** em qualquer navegador para ir diretamente à sessão em [claude.ai/code](https://claude.ai/code).154* **Abra a URL que Claude Code exibe** em qualquer navegador para ir a [claude.ai/code](https://claude.ai/code).

155* **Digitalize o código QR** mostrado ao lado da URL da sessão para abri-lo diretamente no aplicativo Claude. Com `claude remote-control`, pressione a barra de espaço para alternar a exibição do código QR.155* **Digitalize o código QR** mostrado ao lado da URL para abri-la no aplicativo Claude. Com `claude remote-control`, pressione a barra de espaço para alternar a exibição do código QR.

156* **Abra [claude.ai/code](https://claude.ai/code) ou o aplicativo Claude** e encontre a sessão por nome na lista de sessões. No aplicativo móvel Claude, toque em **Code** na navegação para acessar a lista de sessões. As sessões de Remote Control mostram um ícone de computador com um ponto de status verde quando online.156* **Abra [claude.ai/code](https://claude.ai/code) ou o aplicativo Claude** e encontre a sessão por nome na lista de sessões. No aplicativo móvel Claude, toque em **Code** na navegação para acessar a lista de sessões. As sessões de Remote Control mostram um ícone de computador com um ponto de status verde quando online.

157 157 

158Quando você se conecta, o dispositivo mostra quaisquer subagentos e fluxos de trabalho que a sessão já tem em execução em segundo plano. Pare um deles do dispositivo, e Claude Code para essa tarefa na sua máquina.158Quando você se conecta, o dispositivo mostra quaisquer subagentos e fluxos de trabalho que a sessão já tem em execução em segundo plano. Pare um deles do dispositivo, e Claude Code para essa tarefa na sua máquina.

routines.md +1 −1

Details

105 105 

106**5. Selecionar um ambiente**106**5. Selecionar um ambiente**

107 107 

108Depois que você seleciona um repositório, **Cloud environment** aparece abaixo dele. Escolha um [ambiente na nuvem](https://code.claude.com/docs/pt/cloud-environments.md) para a tarefa. Os ambientes controlam a que a sessão na nuvem tem acesso:108Depois que você seleciona um repositório, **Cloud environment** aparece abaixo dele. Escolha um [ambiente na nuvem](https://code.claude.com/docs/pt/cloud-environments.md) para a tarefa. Se um ambiente já estiver selecionado, você pode mantê-lo ou selecionar outro. Os ambientes controlam a que a sessão na nuvem tem acesso:

109 109 

110* **Acesso à rede**: defina o nível de acesso à internet disponível durante cada execução110* **Acesso à rede**: defina o nível de acesso à internet disponível durante cada execução

111* **Variáveis de ambiente**: forneça valores que Claude pode usar durante cada execução. Elas são [visíveis para qualquer pessoa que use o ambiente](https://code.claude.com/docs/pt/cloud-environments.md#what-carries-over-from-your-setup), portanto, em um ambiente hospedado pela Anthropic, armazene as chaves das APIs que Claude chama durante uma execução como [segredos de rede](https://code.claude.com/docs/pt/cloud-environments.md#add-network-secrets). Essa seção também lista as requisições que nunca recebem um segredo111* **Variáveis de ambiente**: forneça valores que Claude pode usar durante cada execução. Elas são [visíveis para qualquer pessoa que use o ambiente](https://code.claude.com/docs/pt/cloud-environments.md#what-carries-over-from-your-setup), portanto, em um ambiente hospedado pela Anthropic, armazene as chaves das APIs que Claude chama durante uma execução como [segredos de rede](https://code.claude.com/docs/pt/cloud-environments.md#add-network-secrets). Essa seção também lista as requisições que nunca recebem um segredo

Details

157* **Chaves de login first-party**: [`forceLoginOrgUUID`](https://code.claude.com/docs/pt/settings-reference#forceloginorguuid) e os valores `"claudeai"` e `"console"` de [`forceLoginMethod`](https://code.claude.com/docs/pt/settings-reference#forceloginmethod). Se você também implantar uma política MDM ou arquivo de configurações gerenciadas, defina-as lá e nas configurações gerenciadas pelo servidor a partir do claude.ai até que todos os clientes executem a v2.1.299 ou posterior. Para saber onde definir as chaves depois disso, e qual valor de fonte se aplica, veja [Qual fonte gerenciada fornece chaves de login](https://code.claude.com/docs/pt/managed-settings.md#which-managed-source-supplies-login-keys).157* **Chaves de login first-party**: [`forceLoginOrgUUID`](https://code.claude.com/docs/pt/settings-reference#forceloginorguuid) e os valores `"claudeai"` e `"console"` de [`forceLoginMethod`](https://code.claude.com/docs/pt/settings-reference#forceloginmethod). Se você também implantar uma política MDM ou arquivo de configurações gerenciadas, defina-as lá e nas configurações gerenciadas pelo servidor a partir do claude.ai até que todos os clientes executem a v2.1.299 ou posterior. Para saber onde definir as chaves depois disso, e qual valor de fonte se aplica, veja [Qual fonte gerenciada fornece chaves de login](https://code.claude.com/docs/pt/managed-settings.md#which-managed-source-supplies-login-keys).

158* **Chaves de login do gateway**: o Claude Code nunca lê [`forceLoginGatewayUrl`](https://code.claude.com/docs/pt/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/pt/settings-reference#gatewayinternalnetworks) ou o valor `"gateway"` de [`forceLoginMethod`](https://code.claude.com/docs/pt/settings-reference#forceloginmethod) das configurações gerenciadas pelo servidor, portanto um valor lá não se aplica nem oculta um definido em uma política MDM ou arquivo de configurações gerenciadas. A entrada [`managedSourcesBehavior`](https://code.claude.com/docs/pt/settings-reference#managedsourcesbehavior) diz qual fonte de administrador na máquina as fornece.158* **Chaves de login do gateway**: o Claude Code nunca lê [`forceLoginGatewayUrl`](https://code.claude.com/docs/pt/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/pt/settings-reference#gatewayinternalnetworks) ou o valor `"gateway"` de [`forceLoginMethod`](https://code.claude.com/docs/pt/settings-reference#forceloginmethod) das configurações gerenciadas pelo servidor, portanto um valor lá não se aplica nem oculta um definido em uma política MDM ou arquivo de configurações gerenciadas. A entrada [`managedSourcesBehavior`](https://code.claude.com/docs/pt/settings-reference#managedsourcesbehavior) diz qual fonte de administrador na máquina as fornece.

159 159 

160#### Quando o `apiKeyHelper` de uma máquina não está em vigor

161 

162Quando suas configurações gerenciadas pelo servidor são a fonte selecionada, um `apiKeyHelper` no arquivo de configurações gerenciadas ou na política MDM de uma máquina não está em vigor. O Claude Code então [recusa prompts](https://code.claude.com/docs/pt/errors.md#claude-code-didnt-send-your-claude-ai-login) em uma sessão que usaria um login claude.ai salvo, desde que ambas as condições a seguir sejam verdadeiras:

163 

164* O arquivo ou a política ativa um provedor de nuvem, ou qualquer fonte define um endereço de API diferente do da Anthropic

165* As configurações gerenciadas pelo servidor não definem nenhum helper e não nomeiam o endereço de API da Anthropic

166 

167Para eliminar a recusa, mantenha o helper e seu endereço de API em vigor, nomeie o endereço de API da Anthropic nas configurações gerenciadas pelo servidor ou remova o helper da política da máquina. A recusa requer Claude Code v2.1.314 ou posterior.

168 

160### Comportamento de busca e cache169### Comportamento de busca e cache

161 170 

162O Claude Code busca configurações dos servidores da Anthropic na inicialização e faz polling para atualizações a cada hora durante sessões ativas.171O Claude Code busca configurações dos servidores da Anthropic na inicialização e faz polling para atualizações a cada hora durante sessões ativas.

settings.md +3 −0

Details

184* [`model`](https://code.claude.com/docs/pt/settings-reference#model): use [`/model`](https://code.claude.com/docs/pt/model-config#setting-your-model) para mudar no meio da sessão. Cada modelo tem seu próprio cache de prompt, então a primeira solicitação após uma mudança relê toda a conversa sem cache; veja [Mudando modelos](https://code.claude.com/docs/pt/prompt-caching.md#switching-models)184* [`model`](https://code.claude.com/docs/pt/settings-reference#model): use [`/model`](https://code.claude.com/docs/pt/model-config#setting-your-model) para mudar no meio da sessão. Cada modelo tem seu próprio cache de prompt, então a primeira solicitação após uma mudança relê toda a conversa sem cache; veja [Mudando modelos](https://code.claude.com/docs/pt/prompt-caching.md#switching-models)

185* [`effortLevel`](https://code.claude.com/docs/pt/settings-reference#effortlevel) e [`modelSettings`](https://code.claude.com/docs/pt/settings-reference#modelsettings): use [`/effort`](https://code.claude.com/docs/pt/model-config#adjust-effort-level) para alterar esforço no meio da sessão185* [`effortLevel`](https://code.claude.com/docs/pt/settings-reference#effortlevel) e [`modelSettings`](https://code.claude.com/docs/pt/settings-reference#modelsettings): use [`/effort`](https://code.claude.com/docs/pt/model-config#adjust-effort-level) para alterar esforço no meio da sessão

186 186 

187Se você remover [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) no meio da sessão, as ferramentas de arquivo mantêm o bloqueio na sessão em execução. Para suspendê-lo, remova a chave de todos os arquivos de configurações que a definem e, em seguida, reinicie cada sessão em execução.

188 

187### Confirme o que foi carregado189### Confirme o que foi carregado

188 190 

189Execute `/status` dentro do Claude Code para ver quais fontes de configurações estão ativas. A aba **Status** inclui uma linha `Setting sources` que lista cada arquivo de configurações que o Claude Code carregou para a sessão atual, como `User settings` ou `Project local settings`. Quando [configurações gerenciadas](https://code.claude.com/docs/pt/admin-setup.md#decide-how-settings-reach-devices) estão em vigor, a entrada de configurações gerenciadas mostra entre parênteses como chegaram à sua máquina.191Execute `/status` dentro do Claude Code para ver quais fontes de configurações estão ativas. A aba **Status** inclui uma linha `Setting sources` que lista cada arquivo de configurações que o Claude Code carregou para a sessão atual, como `User settings` ou `Project local settings`. Quando [configurações gerenciadas](https://code.claude.com/docs/pt/admin-setup.md#decide-how-settings-reach-devices) estão em vigor, a entrada de configurações gerenciadas mostra entre parênteses como chegaram à sua máquina.


307| [`enableArtifact`](https://code.claude.com/docs/pt/settings-reference#enableartifact) | `false` de qualquer escopo, e `disableArtifact: true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `true`; nada reativa a [ferramenta Artifact](https://code.claude.com/docs/pt/artifacts.md#disable-artifacts). Requer Claude Code v2.1.242 ou posterior |309| [`enableArtifact`](https://code.claude.com/docs/pt/settings-reference#enableartifact) | `false` de qualquer escopo, e `disableArtifact: true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `true`; nada reativa a [ferramenta Artifact](https://code.claude.com/docs/pt/artifacts.md#disable-artifacts). Requer Claude Code v2.1.242 ou posterior |

308| [`isolatePeerMachines`](https://code.claude.com/docs/pt/settings-reference#isolatepeermachines) | `true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `false` |310| [`isolatePeerMachines`](https://code.claude.com/docs/pt/settings-reference#isolatepeermachines) | `true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `false` |

309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `false`. Requer Claude Code v2.1.257 ou posterior |311| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `false`. Requer Claude Code v2.1.257 ou posterior |

312| [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) | `true` de qualquer escopo | Respeitado mesmo quando uma fonte gerenciada define `false`. Requer Claude Code v2.1.314 ou posterior |

310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/pt/settings-reference#automode-classifyallshell) | `true` de `~/.claude/settings.json` ou `--settings` | Respeitado mesmo quando uma fonte gerenciada define `false` |313| [`autoMode.classifyAllShell`](https://code.claude.com/docs/pt/settings-reference#automode-classifyallshell) | `true` de `~/.claude/settings.json` ou `--settings` | Respeitado mesmo quando uma fonte gerenciada define `false` |

311| [`remoteControlAtStartup`](https://code.claude.com/docs/pt/settings-reference#remotecontrolatstartup) | `false` de `.claude/settings.json` ou `.claude/settings.local.json` | Respeitado mesmo quando uma fonte gerenciada define `true`; um `true` de projeto ou local é ignorado |314| [`remoteControlAtStartup`](https://code.claude.com/docs/pt/settings-reference#remotecontrolatstartup) | `false` de `.claude/settings.json` ou `.claude/settings.local.json` | Respeitado mesmo quando uma fonte gerenciada define `true`; um `true` de projeto ou local é ignorado |

312| [`crossSessionInbound`](https://code.claude.com/docs/pt/settings-reference#crosssessioninbound) | Um valor mais restritivo de `.claude/settings.json` ou `.claude/settings.local.json`, na escala `accept` \< `hold` \< `refuse` | Respeitado sobre valores gerenciados, de `--settings` e de usuário; um valor de projeto ou local que não seja mais restritivo é ignorado |315| [`crossSessionInbound`](https://code.claude.com/docs/pt/settings-reference#crosssessioninbound) | Um valor mais restritivo de `.claude/settings.json` ou `.claude/settings.local.json`, na escala `accept` \< `hold` \< `refuse` | Respeitado sobre valores gerenciados, de `--settings` e de usuário; um valor de projeto ou local que não seja mais restritivo é ignorado |

Details

144| [`permissions.allow`](#permissions-allow) | Aprove [usos de ferramentas](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) listados sem um prompt | Configurações de permissão | Any file |144| [`permissions.allow`](#permissions-allow) | Aprove [usos de ferramentas](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) listados sem um prompt | Configurações de permissão | Any file |

145| [`permissions.ask`](#permissions-ask) | Sempre solicite antes de [usos de ferramentas](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) listados | Configurações de permissão | Any file |145| [`permissions.ask`](#permissions-ask) | Sempre solicite antes de [usos de ferramentas](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) listados | Configurações de permissão | Any file |

146| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Faça as ferramentas de arquivo recusarem leituras fora dos [diretórios de trabalho](https://code.claude.com/docs/pt/permissions.md#working-directories) em cada modo de permissão | Configurações de permissão | Any file |146| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Faça as ferramentas de arquivo recusarem leituras fora dos [diretórios de trabalho](https://code.claude.com/docs/pt/permissions.md#working-directories) em cada modo de permissão | Configurações de permissão | Any file |

147| [`permissions.blockWritesOutsideWorkingDirectories`](#permissions-blockwritesoutsideworkingdirectories) | Faça as ferramentas `Write`, `Edit` e `NotebookEdit` recusarem caminhos fora dos [diretórios de trabalho](https://code.claude.com/docs/pt/permissions.md#working-directories) em cada modo de permissão, exceto [alguns dos próprios arquivos de Claude Code](#what-the-write-block-refuses-and-what-stays-writable) | Configurações de permissão | Any file |

147| [`permissions.defaultMode`](#permissions-defaultmode) | Defina o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md#which-mode-a-session-starts-in) em que novas sessões começam | Configurações de permissão | Any file |148| [`permissions.defaultMode`](#permissions-defaultmode) | Defina o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md#which-mode-a-session-starts-in) em que novas sessões começam | Configurações de permissão | Any file |

148| [`permissions.deny`](#permissions-deny) | Bloqueie [usos de ferramentas](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) listados, incluindo leituras de arquivos que contêm segredos | Configurações de permissão | Any file |149| [`permissions.deny`](#permissions-deny) | Bloqueie [usos de ferramentas](https://code.claude.com/docs/pt/permissions.md#permission-rule-syntax) listados, incluindo leituras de arquivos que contêm segredos | Configurações de permissão | Any file |

149| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impeça qualquer pessoa de entrar no [modo bypassPermissions](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | Any file |150| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impeça qualquer pessoa de entrar no [modo bypassPermissions](https://code.claude.com/docs/pt/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) | Configurações de permissão | Any file |


727 728 

728### `showThinkingSummaries`729### `showThinkingSummaries`

729 730 

730Veja resumos do [pensamento estendido](https://code.claude.com/docs/pt/model-config.md#extended-thinking) do Claude em sessões interativas. Defina esta chave se quiser os resumos completos ao expandir o pensamento com `Ctrl+O`. Quando não definida ou `false`, a API da Anthropic oculta os blocos de pensamento e o Claude Code mostra um resumo recolhido.731Veja resumos do [pensamento estendido](https://code.claude.com/docs/pt/model-config.md#extended-thinking) do Claude em sessões interativas. Defina esta chave se quiser os resumos completos ao expandir o pensamento com `Ctrl+O`. Quando não definida ou `false`, a API da Anthropic oculta os blocos de pensamento e o Claude Code mostra um stub recolhido.

731 732 

732* **Escopo**: [`Any file`](#scopes)733* **Escopo**: [`Any file`](#scopes)

733* **Tipo**: Boolean734* **Tipo**: Boolean

734 * `true`: você vê os resumos completos de pensamento ao expandir o pensamento com `Ctrl+O`735 * `true`: você vê os resumos completos de pensamento ao expandir o pensamento com `Ctrl+O`

735 * `false`: a API da Anthropic oculta os blocos de pensamento e o Claude Code mostra um resumo recolhido736 * `false`: a API da Anthropic oculta os blocos de pensamento e o Claude Code mostra um stub recolhido

736* **Padrão**: `false`737* **Padrão**: `false`

737 738 

738```json settings.json theme={null}739```json settings.json theme={null}


901Controle quais ferramentas Claude pode usar sem perguntar, quais sempre solicitam e quais são bloqueadas, e defina o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) em que uma sessão começa. Cada chave `permissions.*` abaixo se aninha sob este objeto.902Controle quais ferramentas Claude pode usar sem perguntar, quais sempre solicitam e quais são bloqueadas, e defina o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) em que uma sessão começa. Cada chave `permissions.*` abaixo se aninha sob este objeto.

902 903 

903* **Escopo**: [`Any file`](#scopes)904* **Escopo**: [`Any file`](#scopes)

904* **Tipo**: objeto com `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `defaultMode`, `disableBypassPermissionsMode` e `disableAutoMode`905* **Tipo**: objeto com `allow`, `ask`, `deny`, `additionalDirectories`, `blockReadsOutsideWorkingDirectories`, `blockWritesOutsideWorkingDirectories`, `defaultMode`, `disableBypassPermissionsMode` e `disableAutoMode`

905* **Padrão**: não definido906* **Padrão**: não definido

906 907 

907Este exemplo aprova comandos `npm run` sem perguntar, solicita antes de `git push`, bloqueia leituras de `.env` e inicia sessões em `acceptEdits`:908Este exemplo aprova comandos `npm run` sem perguntar, solicita antes de `git push`, bloqueia leituras de `.env` e inicia sessões em `acceptEdits`:


1062}1063}

1063```1064```

1064 1065 

1066Para levantar o bloqueio, remova a chave de cada arquivo de configurações que a define e depois reinicie cada sessão em execução.

1067 

1065Diretórios que você adiciona com `--add-dir`, `/add-dir` ou `additionalDirectories` em suas configurações de usuário ou gerenciadas contam como diretórios de trabalho para o bloqueio. Diretórios adicionados apenas em configurações de repositório não contam: aqueles em `.claude/settings.json` e aqueles em `.claude/settings.local.json` a menos que git relate esse arquivo como não rastreado. Em um diretório que não é um repositório git, ou quando git rastreia o arquivo, Claude Code trata `.claude/settings.local.json` como configurações de repositório, portanto coloque diretórios que você quer manter legíveis em suas configurações de usuário em vez disso.1068Diretórios que você adiciona com `--add-dir`, `/add-dir` ou `additionalDirectories` em suas configurações de usuário ou gerenciadas contam como diretórios de trabalho para o bloqueio. Diretórios adicionados apenas em configurações de repositório não contam: aqueles em `.claude/settings.json` e aqueles em `.claude/settings.local.json` a menos que git relate esse arquivo como não rastreado. Em um diretório que não é um repositório git, ou quando git rastreia o arquivo, Claude Code trata `.claude/settings.local.json` como configurações de repositório, portanto coloque diretórios que você quer manter legíveis em suas configurações de usuário em vez disso.

1066 1069 

1067Quando [`autoMemoryDirectory`](#automemorydirectory) vem do `.claude/settings.json` do projeto, ou de um `.claude/settings.local.json` [tratado como fornecido pelo repositório](https://code.claude.com/docs/pt/permissions.md#when-your-local-settings-file-needs-trust), Claude Code não carrega nenhuma [memória automática](https://code.claude.com/docs/pt/memory.md#storage-location) desse diretório e não salva nenhuma nele.1070Quando [`autoMemoryDirectory`](#automemorydirectory) vem do `.claude/settings.json` do projeto, ou de um `.claude/settings.local.json` [tratado como fornecido pelo repositório](https://code.claude.com/docs/pt/permissions.md#when-your-local-settings-file-needs-trust), Claude Code não carrega nenhuma [memória automática](https://code.claude.com/docs/pt/memory.md#storage-location) desse diretório e não salva nenhuma nele.

1068 1071 

1069Para levantar o bloqueio, remova a chave de cada arquivo de configurações que a define, depois inicie uma nova sessão.

1070 

1071#### Comandos em sandbox sob o bloqueio1072#### Comandos em sandbox sob o bloqueio

1072 1073 

1073Quando [sandboxing](https://code.claude.com/docs/pt/sandboxing.md) está ativado, o bloqueio também cobre comandos em sandbox. Claude Code nega a eles acesso de leitura ao seu diretório pessoal e às outras raízes que contêm arquivos de usuário: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media` e `/srv`. Ele então reabre os diretórios de trabalho, [worktrees](https://code.claude.com/docs/pt/worktrees.md) que Claude Code cria na sessão, o diretório temporário da sessão e as partes de `~/.claude` que os comandos precisam, como skills e plugins. Enquanto o bloqueio está em vigor, entradas `allowRead` e `allowWrite` de configurações de repositório não contam.1074Quando [sandboxing](https://code.claude.com/docs/pt/sandboxing.md) está ativado, o bloqueio também cobre comandos em sandbox. Claude Code nega a eles acesso de leitura ao seu diretório pessoal e às outras raízes que contêm arquivos de usuário: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media` e `/srv`. Ele então reabre os diretórios de trabalho, [worktrees](https://code.claude.com/docs/pt/worktrees.md) que Claude Code cria na sessão, o diretório temporário da sessão e as partes de `~/.claude` que os comandos precisam, como skills e plugins. Enquanto o bloqueio está em vigor, entradas `allowRead` e `allowWrite` de configurações de repositório não contam.


1092 1093 

1093Se um arquivo reaberto contém um segredo, como um token `http.extraHeader`, adicione seu caminho a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Uma entrada `denyRead` que cobre um arquivo sempre tem precedência sobre esta reabertura.1094Se um arquivo reaberto contém um segredo, como um token `http.extraHeader`, adicione seu caminho a [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Uma entrada `denyRead` que cobre um arquivo sempre tem precedência sobre esta reabertura.

1094 1095 

1096### `permissions.blockWritesOutsideWorkingDirectories`

1097 

1098Faça as ferramentas `Write`, `Edit` e `NotebookEdit` recusarem caminhos fora dos seus [diretórios de trabalho](https://code.claude.com/docs/pt/permissions.md#working-directories) em cada modo de permissão, incluindo `bypassPermissions`, exceto [alguns dos próprios arquivos de Claude Code](#what-the-write-block-refuses-and-what-stays-writable). A chave não limita comandos de shell, ferramentas MCP ou os programas que os hooks executam. Para limitar onde os comandos de shell gravam, ative o [sandboxing](https://code.claude.com/docs/pt/sandboxing.md). Requer Claude Code v2.1.314 ou posterior.

1099 

1100Depois que a chave é ativada, Claude Code também remove as ferramentas `EnterWorktree` e `ExitWorktree` ou recusa chamadas a elas. Para continuar trabalhando em worktrees, siga [Claude não tem a ferramenta `EnterWorktree`](https://code.claude.com/docs/pt/worktrees#claude-has-no-enterworktree-tool).

1101 

1102* **Escopo**: [`Any file`](#scopes). Um `true` em qualquer arquivo que a sessão carrega se aplica, portanto um repositório pode ativar o bloqueio para si mesmo, mas não pode levantar o seu. Em uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md), Claude Code pode não aplicar a chave, porque as ferramentas de arquivo são executadas em um contêiner que é ele próprio o limite.

1103* **Tipo**: Booleano

1104 * `true`: ativa o bloqueio

1105 * `false`: o mesmo que não definido; o bloqueio ainda se aplica se outro arquivo definir `true`

1106* **Padrão**: não definido, portanto gravações fora dos diretórios de trabalho seguem seu [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md). O bloqueio também fica ativo enquanto Claude Code não consegue ler o objeto `permissions` nas suas [configurações gerenciadas](https://code.claude.com/docs/pt/managed-settings.md#keys-that-fail-closed).

1107 

1108```json settings.json theme={null}

1109{

1110 "permissions": {

1111 "blockWritesOutsideWorkingDirectories": true

1112 }

1113}

1114```

1115 

1116Para testar o bloqueio, peça a Claude para usar a ferramenta Write para criar um arquivo fora dos seus diretórios de trabalho, como `~/block-test.txt` se o seu diretório pessoal não for um deles. Claude Code recusa a chamada, e a recusa informa que a [configuração bloqueia gravações fora dos diretórios de trabalho](https://code.claude.com/docs/pt/errors.md#setting-blocks-writes-outside-the-working-directories).

1117 

1118Para levantar o bloqueio, remova a chave de cada arquivo de configurações que a define e depois reinicie Claude Code.

1119 

1120#### O que o bloqueio de gravação recusa e o que permanece gravável

1121 

1122Alguns dos próprios arquivos de Claude Code permanecem graváveis, como arquivos de plano, o [scratchpad](https://code.claude.com/docs/pt/claude-directory.md#session-scratchpad-directory), o diretório `tmp` de uma [sessão em segundo plano](https://code.claude.com/docs/pt/agent-view.md) e arquivos `.md` na [memória automática](https://code.claude.com/docs/pt/memory.md#storage-location) deste projeto.

1123 

1124Além dos seus próprios arquivos fora dos diretórios de trabalho, o bloqueio recusa gravações em:

1125 

1126* **Arquivos de configurações do Claude Code**: Claude Code [recusa essas gravações](https://code.claude.com/docs/pt/errors.md#writes-to-claude-code-settings-files-are-blocked) também dentro dos diretórios de trabalho, porque um arquivo de configurações pode levantar o bloqueio. Edite os arquivos de configurações você mesmo.

1127* **Um diretório que apenas as configurações de repositório adicionam**: um que [`additionalDirectories`](#permissions-additionaldirectories) lista apenas em `.claude/settings.json`, ou em `.claude/settings.local.json` a menos que git relate esse arquivo como não rastreado

1128* **O worktree de um subagente**: as edições de arquivo de um subagente [`isolation: worktree`](https://code.claude.com/docs/pt/worktrees#isolate-subagents-with-worktrees) são recusadas quando o seu worktree fica fora dos diretórios de trabalho

1129* **Memória automática em um diretório que o repositório escolheu**: um diretório que [`autoMemoryDirectory`](#automemorydirectory) nomeia nas configurações de repositório

1130 

1131Os arquivos de configurações permanecem recusados independentemente do que você adicionar. Para permitir uma gravação em qualquer um dos outros casos, [adicione um diretório de trabalho](#let-one-directory-through-the-read-or-write-block). `/add-dir` precisa de um diretório que exista, portanto nomeie o diretório `.claude/worktrees` na raiz do repositório para worktrees de subagentes.

1132 

1133#### Permitir um diretório através do bloqueio de leitura ou gravação

1134 

1135Para permitir que Claude alcance um diretório fora do projeto enquanto `blockReadsOutsideWorkingDirectories` ou `blockWritesOutsideWorkingDirectories` é `true`, adicione-o como diretório de trabalho. Execute `/add-dir <directory>` na sessão, passe `--add-dir <directory>` ao iniciar Claude Code ou liste-o em `additionalDirectories` nas suas configurações de usuário ou gerenciadas. Nenhuma [regra de permissão](https://code.claude.com/docs/pt/permissions.md#read-and-edit) deixa as ferramentas de arquivo de Claude passarem por nenhum dos bloqueios.

1136 

1095### `permissions.defaultMode`1137### `permissions.defaultMode`

1096 1138 

1097Defina o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) em que novas sessões começam. Quando você deixa não definido, as sessões começam no [padrão integrado](https://code.claude.com/docs/pt/permission-modes.md#which-mode-a-session-starts-in) para sua superfície.1139Defina o [modo de permissão](https://code.claude.com/docs/pt/permission-modes.md) em que novas sessões começam. Quando você deixa não definido, as sessões começam no [padrão integrado](https://code.claude.com/docs/pt/permission-modes.md#which-mode-a-session-starts-in) para sua superfície.


2427* **Sessão**: você está em uma sessão interativa no terminal, no painel de chat da extensão do VS Code ou na aba Code do aplicativo desktop quando a sessão é executada na sua máquina ou via SSH2469* **Sessão**: você está em uma sessão interativa no terminal, no painel de chat da extensão do VS Code ou na aba Code do aplicativo desktop quando a sessão é executada na sua máquina ou via SSH

2428* **Compactação automática**: [`autoCompactEnabled`](#autocompactenabled) está ativada2470* **Compactação automática**: [`autoCompactEnabled`](#autocompactenabled) está ativada

2429* **Cache de prompt**: a conversa está no [TTL de cache de prompt de uma hora](https://code.claude.com/docs/pt/prompt-caching.md#which-ttl-each-request-gets)2471* **Cache de prompt**: a conversa está no [TTL de cache de prompt de uma hora](https://code.claude.com/docs/pt/prompt-caching.md#which-ttl-each-request-gets)

2430* **Feature flags**: o Claude Code consegue [buscar feature flags da Anthropic](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching)

2431* **Tamanho**: o contexto da conversa atingiu o limite de tokens, que você pode [alterar](#change-the-idle-compaction-threshold) a partir do padrão de 200.0002472* **Tamanho**: o contexto da conversa atingiu o limite de tokens, que você pode [alterar](#change-the-idle-compaction-threshold) a partir do padrão de 200.000

2432* **Tempo ocioso**: passou-se cerca de uma hora desde a última requisição, e seu computador permanece ativo até lá2473* **Tempo ocioso**: passou-se cerca de uma hora desde a última requisição, e seu computador permanece ativo até lá

2433 2474 


2449Para desativar ou ativar a compactação em ociosidade de dentro de uma sessão no terminal, execute `/config` e altere a linha **Idle compaction**. Sua escolha é salva nas suas configurações de usuário e se aplica imediatamente. A linha requer o Claude Code v2.1.302 ou posterior. Se você executa uma dessas versões e o `/config` não mostra a linha, verifique estas causas:2490Para desativar ou ativar a compactação em ociosidade de dentro de uma sessão no terminal, execute `/config` e altere a linha **Idle compaction**. Sua escolha é salva nas suas configurações de usuário e se aplica imediatamente. A linha requer o Claude Code v2.1.302 ou posterior. Se você executa uma dessas versões e o `/config` não mostra a linha, verifique estas causas:

2450 2491 

2451* **Outra fonte de configurações define a chave**: um valor nas configurações gerenciadas, na flag `--settings` ou em um arquivo de configurações de projeto ou local sobrescreve suas configurações de usuário. Altere a chave nessa fonte2492* **Outra fonte de configurações define a chave**: um valor nas configurações gerenciadas, na flag `--settings` ou em um arquivo de configurações de projeto ou local sobrescreve suas configurações de usuário. Altere a chave nessa fonte

2452* **Feature flags indisponíveis**: onde o Claude Code não consegue [buscar feature flags da Anthropic](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), a compactação em ociosidade não é executada, então não há nada para desativar2493* **Feature flags indisponíveis em uma versão anterior à v2.1.314**: onde o Claude Code não consegue [buscar feature flags da Anthropic](https://code.claude.com/docs/pt/env-vars.md#features-that-need-feature-flag-fetching), a compactação em ociosidade não é executada, então não há nada para desativar

2453 2494 

2454A chave requer o Claude Code v2.1.290 ou posterior. Em uma versão anterior, que ignora esta chave, desative [`autoCompactEnabled`](#autocompactenabled) para interromper a compactação em ociosidade.2495A chave requer o Claude Code v2.1.290 ou posterior. Em uma versão anterior, que ignora esta chave, desative [`autoCompactEnabled`](#autocompactenabled) para interromper a compactação em ociosidade.

2455 2496 

slack.md +9 −11

Details

49 49 

501. Abra o aplicativo Claude no Slack clicando em "Claude" na seção Aplicativos501. Abra o aplicativo Claude no Slack clicando em "Claude" na seção Aplicativos

512. Abra a aba App Home512. Abra a aba App Home

523. Clique em "Connect" para vincular sua conta Slack com sua conta Claude523. Clique em **Connect Claude account** para vincular sua conta Slack com sua conta Claude

534. Conclua o fluxo de autenticação em seu navegador534. Conclua o fluxo de autenticação em seu navegador

54 54 

55**3. Configure sessões na nuvem**55**3. Configure sessões na nuvem**


71 71 

72> [!NOTE]72> [!NOTE]

73>73>

74> No modo Code + Chat, se Claude rotear uma mensagem para Chat, mas você queria uma sessão de codificação, você pode clicar em "Retry as Code" para criar uma sessão Claude Code. Da mesma forma, se for roteada para Code, mas você queria uma sessão Chat, você pode escolher essa opção nessa thread.74> No modo Code + Chat, se Claude responder no Chat, mas você queria uma sessão de codificação, clique em **Switch to code repo...** na resposta e selecione um repositório. Claude então inicia uma sessão Claude Code com sua mensagem.

75 75 

76**5. Adicione Claude aos canais**76**5. Adicione Claude aos canais**

77 77 


1072. **Detecção**: Claude analisa sua mensagem e detecta intenção de codificação1072. **Detecção**: Claude analisa sua mensagem e detecta intenção de codificação

1083. **Criação de sessão**: Uma nova sessão Claude Code é criada em claude.ai/code1083. **Criação de sessão**: Uma nova sessão Claude Code é criada em claude.ai/code

1094. **Atualizações de progresso**: Claude publica atualizações de status em sua thread do Slack conforme o trabalho progride1094. **Atualizações de progresso**: Claude publica atualizações de status em sua thread do Slack conforme o trabalho progride

1105. **Conclusão**: Quando concluído, Claude o @menciona com um resumo e botões de ação1105. **Conclusão**: Quando concluído, Claude atualiza sua mensagem na thread com a resposta final e botões de ação, e envia a você uma mensagem direta com um link para ela

1116. **Revisão**: Clique em "View Session" para ver a transcrição completa ou "Create PR" para abrir um pull request1116. **Revisão**: Clique em **View session** para ver a transcrição completa ou em **Create PR** para abrir um pull request

112 112 

113## Elementos da interface do usuário113## Elementos da interface do usuário

114 114 

115### Ações de mensagem115### Ações de mensagem

116 116 

117* **View Session**: Abre a sessão Claude Code completa em seu navegador, onde você pode ver todo o trabalho realizado, continuar a sessão ou fazer solicitações adicionais.117* **View session**: Abre a sessão Claude Code completa em seu navegador, onde você pode ver todo o trabalho realizado, continuar a sessão ou fazer solicitações adicionais.

118* **Create PR**: Cria um pull request diretamente das alterações da sessão.118* **Create PR**: Abre a página de comparação do GitHub para o branch da sessão, onde você cria o pull request. Aparece na mensagem de status que Claude publicou quando a sessão começou, assim que a sessão termina.

119* **Retry as Code**: Se Claude inicialmente responder como um assistente de chat, mas você queria uma sessão de codificação, clique neste botão para tentar novamente a solicitação como uma tarefa Claude Code.119* **Switch to code repo...**: Se Claude responder no Chat, mas você queria uma sessão de codificação, clique neste botão e selecione um repositório, e Claude inicia uma sessão Claude Code com sua solicitação original.

120* **Change Repo**: Permite que você selecione um repositório diferente se Claude escolheu incorretamente.

121 120 

122### Seleção de repositório121### Seleção de repositório

123 122 

124Claude seleciona automaticamente um repositório com base no contexto de sua conversa no Slack. Se vários repositórios pudessem se aplicar, Claude pode exibir um dropdown permitindo que você escolha o correto.123Claude seleciona automaticamente um repositório com base no contexto de sua conversa no Slack. Se Claude não conseguir identificar a qual repositório você se refere, ele pede que você escolha: clique em **Select repository** e selecione um da lista.

125 124 

126## Acesso e permissões125## Acesso e permissões

127 126 


219 218 

220### Repositório errado selecionado219### Repositório errado selecionado

221 220 

2221. Clique no botão "Change Repo" para selecionar um repositório diferente221Inclua o nome do repositório em sua solicitação para seleção mais precisa.

2232. Inclua o nome do repositório em sua solicitação para seleção mais precisa

224 222 

225### Erros de autenticação223### Erros de autenticação

226 224 

sub-agents.md +2 −2

Details

1048 1048 

1049Considere [Skills](https://code.claude.com/docs/pt/skills.md) em vez disso quando você quer prompts ou fluxos de trabalho reutilizáveis que são executados no contexto da conversa principal em vez de contexto de subagente isolado.1049Considere [Skills](https://code.claude.com/docs/pt/skills.md) em vez disso quando você quer prompts ou fluxos de trabalho reutilizáveis que são executados no contexto da conversa principal em vez de contexto de subagente isolado.

1050 1050 

1051Para uma pergunta sobre algo já em sua conversa, use [`/btw`](https://code.claude.com/docs/pt/interactive-mode#side-questions-with-%2Fbtw) em vez de um subagente. Ele vê seu contexto completo mas não tem acesso a ferramentas, e a resposta não é adicionada ao histórico.1051Para uma pergunta sobre algo já em sua conversa, use [`/btw`](https://code.claude.com/docs/pt/interactive-mode#side-questions-with-%2Fbtw) em vez de um subagente. Ele não tem acesso a ferramentas, e a resposta não é adicionada ao histórico.

1052 1052 

1053### Deixar subagentes gerar seus próprios subagentes1053### Deixar subagentes gerar seus próprios subagentes

1054 1054 


1242| `x` | Parar a bifurcação selecionada se estiver em execução, ou descartar sua linha se não estiver mais em execução. Na linha da sessão principal, ou na linha da bifurcação cuja transcrição você abriu com `Enter`, `x` digita no prompt em vez disso |1242| `x` | Parar a bifurcação selecionada se estiver em execução, ou descartar sua linha se não estiver mais em execução. Na linha da sessão principal, ou na linha da bifurcação cuja transcrição você abriu com `Enter`, `x` digita no prompt em vez disso |

1243| `Esc` | Retornar foco para a entrada de prompt |1243| `Esc` | Retornar foco para a entrada de prompt |

1244 1244 

1245Com a transcrição de uma bifurcação ou subagente aberta, mensagens de acompanhamento e [skills](https://code.claude.com/docs/pt/skills.md) vão para esse agente, e comandos integrados vão para sua conversa principal, com estas salvaguardas:1245Com a transcrição de uma bifurcação ou subagente aberta, mensagens de acompanhamento e [skills](https://code.claude.com/docs/pt/skills.md) vão para esse agente. No Claude Code v2.1.314 ou posterior, [`/btw`](https://code.claude.com/docs/pt/interactive-mode#ask-btw-about-a-subagent) responde a partir da transcrição aberta. Outros comandos integrados vão para sua conversa principal, com estas salvaguardas:

1246 1246 

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

1248* `/model` e `/fast` definem o modelo e o modo rápido da conversa principal, não os do agente visualizado, então não são executados a partir desta visualização. Um aviso informa o motivo.1248* `/model` e `/fast` definem o modelo e o modo rápido da conversa principal, não os do agente visualizado, então não são executados a partir desta visualização. Um aviso informa o motivo.

Details

6 6 

7> Referência completa das ferramentas que Claude Code pode usar, incluindo requisitos de permissão e comportamento por ferramenta.7> Referência completa das ferramentas que Claude Code pode usar, incluindo requisitos de permissão e comportamento por ferramenta.

8 8 

9Claude Code tem acesso a um conjunto de ferramentas integradas que o ajudam a entender e modificar sua base de código. Os nomes das ferramentas são as strings exatas que você usa em [regras de permissão](https://code.claude.com/docs/pt/permissions.md#tool-specific-permission-rules), [listas de ferramentas de subagentes](https://code.claude.com/docs/pt/sub-agents.md) e [correspondências de hooks](https://code.claude.com/docs/pt/hooks.md).9Claude Code tem acesso a um conjunto de ferramentas integradas que o ajudam a entender e modificar sua base de código. Os nomes das ferramentas são as strings exatas que você usa em [regras de permissão](https://code.claude.com/docs/pt/permissions.md#tool-specific-permission-rules), [listas de ferramentas de subagentes](https://code.claude.com/docs/pt/sub-agents.md) e [matchers de hooks](https://code.claude.com/docs/pt/hooks.md).

10 10 

11Para controlar quais ferramentas Claude pode usar e quando ele pede primeiro, configure [regras de permissão](https://code.claude.com/docs/pt/permissions.md#tool-specific-permission-rules) em suas configurações, [hooks](https://code.claude.com/docs/pt/hooks.md) ou [lista de ferramentas de um subagente](https://code.claude.com/docs/pt/sub-agents.md#supported-frontmatter-fields). Veja [Configurar ferramentas com regras de permissão e hooks](#configure-tools-with-permission-rules-and-hooks) para cada local que aceita um nome de ferramenta.11Para controlar quais ferramentas Claude pode usar e quando ele pede primeiro, configure [regras de permissão](https://code.claude.com/docs/pt/permissions.md#tool-specific-permission-rules) em suas configurações, [hooks](https://code.claude.com/docs/pt/hooks.md) ou [lista de ferramentas de um subagente](https://code.claude.com/docs/pt/sub-agents.md#supported-frontmatter-fields). Veja [Configurar ferramentas com regras de permissão e hooks](#configure-tools-with-permission-rules-and-hooks) para cada local que aceita um nome de ferramenta.

12 12 


14 14 

15> [!NOTE]15> [!NOTE]

16>16>

17> Em [modo automático](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), um classificador decide a maioria dos prompts de permissão em vez de você. A coluna `Permission required` mostra se a ferramenta solicita em [Modo Manual](https://code.claude.com/docs/pt/permission-modes.md) para caminhos dentro do diretório de trabalho. Ferramentas de acesso a arquivos marcadas como Não, incluindo `Read`, `Grep` e `Glob`, ainda solicitam para caminhos fora do [diretório de trabalho e diretórios adicionais](https://code.claude.com/docs/pt/permissions.md#working-directories). `Bash` é marcado como Sim, mas executa um conjunto integrado de [comandos somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands) sem solicitar.17> No [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), um classificador decide a maioria dos prompts de permissão em vez de você. A coluna `Permission required` mostra se a ferramenta solicita em [Modo Manual](https://code.claude.com/docs/pt/permission-modes.md) para caminhos dentro do diretório de trabalho. Ferramentas de acesso a arquivos marcadas como Não, incluindo `Read`, `Grep` e `Glob`, ainda solicitam para caminhos fora do [diretório de trabalho e diretórios adicionais](https://code.claude.com/docs/pt/permissions.md#working-directories). `Bash` é marcado como Sim, mas executa um conjunto integrado de [comandos somente leitura](https://code.claude.com/docs/pt/permissions.md#read-only-commands) sem solicitar.

18 18 

19| Ferramenta | Descrição | Permissão necessária |19| Ferramenta | Descrição | Permissão necessária |

20| :- | :- | :- |20| :- | :- | :- |


27| `CronList` | Lista todas as tarefas agendadas com escopo de sessão | Não |27| `CronList` | Lista todas as tarefas agendadas com escopo de sessão | Não |

28| `Edit` | Faz edições direcionadas em arquivos específicos. Veja [Comportamento da ferramenta Edit](#edit-tool-behavior) | Sim |28| `Edit` | Faz edições direcionadas em arquivos específicos. Veja [Comportamento da ferramenta Edit](#edit-tool-behavior) | Sim |

29| `EndConversation` | Encerra a sessão, em casos raros de entrada abusiva sustentada ou quando você pede a Claude para demonstrar a ferramenta. Veja [Comportamento da ferramenta EndConversation](#endconversation-tool-behavior) | Não |29| `EndConversation` | Encerra a sessão, em casos raros de entrada abusiva sustentada ou quando você pede a Claude para demonstrar a ferramenta. Veja [Comportamento da ferramenta EndConversation](#endconversation-tool-behavior) | Não |

30| `EnterPlanMode` | Muda para o modo de plano para projetar uma abordagem antes de codificar | Não |30| `EnterPlanMode` | Muda para o modo de planejamento para projetar uma abordagem antes de codificar | Não |

31| `EnterWorktree` | Cria um [git worktree](https://code.claude.com/docs/pt/worktrees.md) isolado e muda para ele. Passe um `path` para mudar para um worktree existente em vez de criar um novo. Na primeira entrada, o alvo pode ser um worktree do repositório atual ou, em um espaço de trabalho multi-repositório, de um repositório aninhado dentro dele. Antes da v2.1.203, um worktree de repositório aninhado era rejeitado. Um `path` fora de `.claude/worktrees/` solicita sua aprovação antes de entrar, pois move o diretório de trabalho da sessão e o acesso de escrita para esse local. A criação de novo worktree e caminhos sob `.claude/worktrees/` não solicitam. Antes da v2.1.206, Claude entrava em caminhos fora de `.claude/worktrees/` sem solicitar. De dentro de uma sessão de worktree ou de um subagente com um diretório de trabalho fixado, como [`isolation: worktree`](https://code.claude.com/docs/pt/sub-agents#supported-frontmatter-fields), apenas a forma `path` está disponível e o alvo deve estar sob `.claude/worktrees/` do repositório da sessão | Sim |31| `EnterWorktree` | Cria um [git worktree](https://code.claude.com/docs/pt/worktrees.md) isolado e muda para ele, ou muda para um worktree existente. Veja [Comportamento da ferramenta EnterWorktree](#enterworktree-tool-behavior) | Sim |

32| `ExitPlanMode` | Apresenta um plano para aprovação e sai do modo de plano | Sim |32| `ExitPlanMode` | Apresenta um plano para aprovação e sai do modo de planejamento | Sim |

33| `ExitWorktree` | Sai de uma sessão de worktree e retorna ao diretório original. Não disponível para subagentes que já executam em seu próprio diretório de trabalho, como com [`isolation: worktree`](https://code.claude.com/docs/pt/sub-agents#supported-frontmatter-fields) | Não |33| `ExitWorktree` | Sai de uma sessão de worktree e retorna ao diretório original. Não disponível para subagentes que já executam em seu próprio diretório de trabalho, como com [`isolation: worktree`](https://code.claude.com/docs/pt/sub-agents#supported-frontmatter-fields). Removida ou recusada quando [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) está ativada | Não |

34| `Glob` | Encontra arquivos com base em correspondência de padrões. Ausente por padrão no macOS, Linux e WSL. Veja [Comportamento da ferramenta Glob](#glob-tool-behavior) | Não |34| `Glob` | Encontra arquivos com base em correspondência de padrões. Ausente por padrão no macOS, Linux e WSL. Veja [Comportamento da ferramenta Glob](#glob-tool-behavior) | Não |

35| `Grep` | Pesquisa padrões no conteúdo de arquivos. Ausente por padrão no macOS, Linux e WSL. Veja [Comportamento da ferramenta Grep](#grep-tool-behavior) | Não |35| `Grep` | Pesquisa padrões no conteúdo de arquivos. Ausente por padrão no macOS, Linux e WSL. Veja [Comportamento da ferramenta Grep](#grep-tool-behavior) | Não |

36| `ListAgents` | Lista os agentes que Claude pode enviar mensagens com `SendMessage`: subagentes na sessão, [colegas de equipe](https://code.claude.com/docs/pt/agent-teams.md) de equipe de agentes, suas outras sessões locais de Claude Code e, enquanto esta sessão está conectada a [Controle Remoto](https://code.claude.com/docs/pt/remote-control.md), suas [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) e suas sessões de Controle Remoto em outras máquinas. Respalda o comando `/list-agents`. Veja [mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md). Requer Claude Code v2.1.224 ou posterior e aparece apenas em sessões onde [mensagens entre sessões estão ativadas](https://code.claude.com/docs/pt/cross-session-messaging.md#availability). Linhas de colegas de equipe e a primeira linha mostrando o próprio nome desta sessão requerem v2.1.239 ou posterior | Não |36| `ListAgents` | Lista os agentes que Claude pode enviar mensagens com `SendMessage`: subagentes na sessão, [colegas de equipe](https://code.claude.com/docs/pt/agent-teams.md) de equipe de agentes, suas outras sessões locais de Claude Code e, enquanto esta sessão está conectada ao [Remote Control](https://code.claude.com/docs/pt/remote-control.md), suas [sessões na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md) e suas sessões de Remote Control em outras máquinas. Respalda o comando `/list-agents`. Veja [mensagens entre sessões](https://code.claude.com/docs/pt/cross-session-messaging.md). Requer Claude Code v2.1.224 ou posterior e aparece apenas em sessões onde [mensagens entre sessões estão ativadas](https://code.claude.com/docs/pt/cross-session-messaging.md#availability). Linhas de colegas de equipe e a primeira linha mostrando o próprio nome desta sessão requerem v2.1.239 ou posterior | Não |

37| `ListMcpResourcesTool` | Lista recursos expostos por [servidores MCP](https://code.claude.com/docs/pt/mcp.md) conectados, deixando de fora [recursos da UI de MCP Apps](https://code.claude.com/docs/pt/mcp.md#reference-mcp-resources), que são páginas para um aplicativo host renderizar | Não |37| `ListMcpResourcesTool` | Lista recursos expostos por [servidores MCP](https://code.claude.com/docs/pt/mcp.md) conectados, deixando de fora [recursos da UI de MCP Apps](https://code.claude.com/docs/pt/mcp.md#reference-mcp-resources), que são páginas para um aplicativo host renderizar | Não |

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

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


50| `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. 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 por tipo de arquivo. Disponível quando um cliente de [Remote Control](https://code.claude.com/docs/pt/remote-control.md) está conectado ou em uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md). A entrega é executada através de infraestrutura hospedada pela Anthropic, então a ferramenta não está disponível no Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry | Não |50| `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. 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 por tipo de arquivo. Disponível quando um cliente de [Remote Control](https://code.claude.com/docs/pt/remote-control.md) está conectado ou em uma [sessão na nuvem](https://code.claude.com/docs/pt/claude-code-on-the-web.md). A entrega é executada através de infraestrutura hospedada pela Anthropic, então a ferramenta não está disponível no Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry | Não |

51| `ShareOnboardingGuide` | Carrega `ONBOARDING.md` e retorna um link de compartilhamento que colegas de equipe podem abrir no Claude Code. Chamado de `/team-onboarding` após o guia ser escrito. Disponível para assinantes do claude.ai nos planos Team e Enterprise | Sim |51| `ShareOnboardingGuide` | Carrega `ONBOARDING.md` e retorna um link de compartilhamento que colegas de equipe podem abrir no Claude Code. Chamado de `/team-onboarding` após o guia ser escrito. Disponível para assinantes do claude.ai nos planos Team e Enterprise | Sim |

52| `Skill` | Executa uma [skill](https://code.claude.com/docs/pt/skills.md#control-who-invokes-a-skill) dentro da conversa principal | Sim |52| `Skill` | Executa uma [skill](https://code.claude.com/docs/pt/skills.md#control-who-invokes-a-skill) dentro da conversa principal | Sim |

53| `SubagentHandback` | Entrega o relatório final de um subagente para qualquer conversa que receba o resultado desse subagente. Fornecido apenas em [modo automático](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), para subagentes que a ferramenta Agent executa localmente, exceto [forks](https://code.claude.com/docs/pt/sub-agents.md#fork-the-current-conversation), e disponível no CLI do terminal, extensões IDE, sessões na nuvem e Agent SDK; o classificador revisa o relatório antes de ser entregue. Requer Claude Code v2.1.271 ou posterior | Não |53| `SubagentHandback` | Entrega o relatório final de um subagente para qualquer conversa que receba o resultado desse subagente. Fornecido apenas no [modo auto](https://code.claude.com/docs/pt/permission-modes.md#eliminate-prompts-with-auto-mode), para subagentes que a ferramenta Agent executa localmente, exceto [forks](https://code.claude.com/docs/pt/sub-agents.md#fork-the-current-conversation), e disponível no CLI do terminal, extensões IDE, sessões na nuvem e Agent SDK; o classificador revisa o relatório antes de ser entregue. Requer Claude Code v2.1.271 ou posterior | Não |

54| `TaskCreate` | Cria uma nova tarefa na lista de tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |54| `TaskCreate` | Cria uma nova tarefa na lista de tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

55| `TaskGet` | Recupera detalhes completos para uma tarefa específica. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |55| `TaskGet` | Recupera detalhes completos para uma tarefa específica. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

56| `TaskList` | Lista todas as tarefas com seu status atual. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |56| `TaskList` | Lista todas as tarefas com seu status atual. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |


59| `TaskUpdate` | Atualiza status da tarefa, dependências, detalhes ou deleta tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |59| `TaskUpdate` | Atualiza status da tarefa, dependências, detalhes ou deleta tarefas. Fornecido por padrão apenas nos modelos listados em [Disponibilidade da ferramenta Task](#task-tool-availability) e em outros modelos quando você optar por participar | Não |

60| `TodoWrite` | Gerencia a lista de verificação de tarefas da sessão. Desativado por padrão em favor de `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Defina `CLAUDE_CODE_ENABLE_TASKS=0` para reativá-lo em [sessões que têm as ferramentas de rastreamento de tarefas](#task-tool-availability) | Não |60| `TodoWrite` | Gerencia a lista de verificação de tarefas da sessão. Desativado por padrão em favor de `TaskCreate`, `TaskGet`, `TaskList` e `TaskUpdate`. Defina `CLAUDE_CODE_ENABLE_TASKS=0` para reativá-lo em [sessões que têm as ferramentas de rastreamento de tarefas](#task-tool-availability) | Não |

61| `ToolSearch` | Pesquisa e carrega ferramentas adiadas quando [pesquisa de ferramentas](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search) está ativada | Não |61| `ToolSearch` | Pesquisa e carrega ferramentas adiadas quando [pesquisa de ferramentas](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search) está ativada | Não |

62| `WaitForMcpServers` | Aguarda um ou mais [servidores MCP](https://code.claude.com/docs/pt/mcp.md) que ainda estão se conectando em segundo plano, para que uma solicitação possa usar suas ferramentas sem reiniciar a sessão. Claude a chama quando um servidor necessário ainda não está conectado. Aparece apenas quando [pesquisa de ferramentas](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search) está desativada, pois `ToolSearch` lida com a espera quando está ativada | Não |62| `WaitForMcpServers` | Aguarda um ou mais [servidores MCP](https://code.claude.com/docs/pt/mcp.md) que ainda estão se conectando em segundo plano, para que uma requisição possa usar suas ferramentas sem reiniciar a sessão. Claude a chama quando um servidor necessário ainda não está conectado. Aparece apenas quando [pesquisa de ferramentas](https://code.claude.com/docs/pt/mcp.md#scale-with-mcp-tool-search) está desativada, pois `ToolSearch` lida com a espera quando está ativada | Não |

63| `WebFetch` | Busca conteúdo de uma URL especificada. Veja [Comportamento da ferramenta WebFetch](#webfetch-tool-behavior) | Sim |63| `WebFetch` | Busca conteúdo de uma URL especificada. Veja [Comportamento da ferramenta WebFetch](#webfetch-tool-behavior) | Sim |

64| `WebSearch` | Realiza buscas na web. Veja [Comportamento da ferramenta WebSearch](#websearch-tool-behavior) | Sim |64| `WebSearch` | Realiza buscas na web. Veja [Comportamento da ferramenta WebSearch](#websearch-tool-behavior) | Sim |

65| `Workflow` | Executa um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md): um script que orquestra muitos subagentes em segundo plano e retorna um resultado consolidado | Sim |65| `Workflow` | Executa um [fluxo de trabalho dinâmico](https://code.claude.com/docs/pt/workflows.md): um script que orquestra muitos subagentes em segundo plano e retorna um resultado consolidado | Sim |


299* **Modo de inicialização**: não uma sessão [`--bare`](https://code.claude.com/docs/pt/headless#start-faster-with-bare-mode). O modo bare carrega apenas ferramentas de shell e arquivo, portanto a ferramenta nunca é registrada lá.299* **Modo de inicialização**: não uma sessão [`--bare`](https://code.claude.com/docs/pt/headless#start-faster-with-bare-mode). O modo bare carrega apenas ferramentas de shell e arquivo, portanto a ferramenta nunca é registrada lá.

300* **Provedor**: não disponível em [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md), [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/pt/google-vertex-ai.md) ou [Microsoft Foundry](https://code.claude.com/docs/pt/microsoft-foundry.md), ou em sessões conectadas através de um [cloud gateway](https://code.claude.com/docs/pt/claude-apps-gateway).300* **Provedor**: não disponível em [Amazon Bedrock](https://code.claude.com/docs/pt/amazon-bedrock.md), [Claude Platform on AWS](https://code.claude.com/docs/pt/claude-platform-on-aws.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/pt/google-vertex-ai.md) ou [Microsoft Foundry](https://code.claude.com/docs/pt/microsoft-foundry.md), ou em sessões conectadas através de um [cloud gateway](https://code.claude.com/docs/pt/claude-apps-gateway).

301 301 

302## Comportamento da ferramenta EnterWorktree

303 

304A ferramenta EnterWorktree cria um [git worktree](https://code.claude.com/docs/pt/worktrees.md) isolado e muda para ele. Quando recebe um `path`, ela muda para um worktree existente em vez de criar um novo.

305 

306* **Quais worktrees `path` pode indicar**: na primeira entrada, o destino pode ser um worktree do repositório atual. Em um repositório que contém outros repositórios, ele também pode ser um worktree de um repositório aninhado dentro dele.

307* **Quando você é solicitado**: um `path` fora de `.claude/worktrees/` solicita sua aprovação antes de entrar, já que ele move o diretório de trabalho da sessão e o acesso de escrita para esse local. A criação de um novo worktree e os caminhos dentro de `.claude/worktrees/` não pedem confirmação. Antes da v2.1.206, Claude entrava em caminhos fora de `.claude/worktrees/` sem um prompt.

308* **De dentro de um worktree**: dentro de uma sessão de worktree, apenas a forma com `path` está disponível e o destino deve estar em `.claude/worktrees/` do repositório da sessão. O mesmo vale para um subagente com um diretório de trabalho fixado, como [`isolation: worktree`](https://code.claude.com/docs/pt/sub-agents#supported-frontmatter-fields).

309* **Quando a ferramenta está ausente**: quando [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) está ativado, o Claude Code remove `EnterWorktree` e `ExitWorktree` ou recusa chamadas a elas. Para continuar trabalhando em worktrees, consulte [Claude não tem a ferramenta `EnterWorktree`](https://code.claude.com/docs/pt/worktrees#claude-has-no-enterworktree-tool).

310 

302## Comportamento da ferramenta Glob311## Comportamento da ferramenta Glob

303 312 

304A ferramenta Glob encontra arquivos por padrão de nome. No Windows, ela faz parte do conjunto de ferramentas padrão. No macOS, Linux e WSL, Claude Code deixa Glob e [Grep](#grep-tool-behavior) fora do conjunto de ferramentas padrão, e Claude pesquisa com `find` e `grep` através da ferramenta Bash. No shell do Claude, esses dois comandos executam versões incorporadas de `bfs` e `ugrep`, e as pesquisas alcançam seus hooks e regras de permissão como chamadas `Bash`.313A ferramenta Glob encontra arquivos por padrão de nome. No Windows, ela faz parte do conjunto de ferramentas padrão. No macOS, Linux e WSL, Claude Code deixa Glob e [Grep](#grep-tool-behavior) fora do conjunto de ferramentas padrão, e Claude pesquisa com `find` e `grep` através da ferramenta Bash. No shell do Claude, esses dois comandos executam versões incorporadas de `bfs` e `ugrep`, e as pesquisas alcançam seus hooks e regras de permissão como chamadas `Bash`.

worktrees.md +17 −3

Details

41 41 

42### Peça ao Claude para criar uma worktree42### Peça ao Claude para criar uma worktree

43 43 

44Você também pode pedir ao Claude para "trabalhar em uma worktree" durante uma sessão, e ele cria uma com a ferramenta [`EnterWorktree`](https://code.claude.com/docs/pt/tools-reference). Uma vez em uma worktree, Claude pode alternar diretamente para outra em `.claude/worktrees/` chamando `EnterWorktree` com o caminho de destino; a worktree anterior permanece no disco intacta.44Você também pode pedir ao Claude para "trabalhar em uma worktree" durante uma sessão, e ele cria uma com a ferramenta [`EnterWorktree`](https://code.claude.com/docs/pt/tools-reference#enterworktree-tool-behavior). Uma vez em uma worktree, Claude pode alternar diretamente para outra em `.claude/worktrees/` chamando `EnterWorktree` com o caminho de destino; a worktree anterior permanece no disco intacta.

45 45 

46Quando Claude entra em um caminho fora do diretório `.claude/worktrees/` do repositório, Claude Code solicita sua aprovação primeiro. A mudança leva o diretório de trabalho da sessão, acesso de escrita e configuração do projeto como `CLAUDE.md` e configurações para esse local. Uma [regra de permissão](https://code.claude.com/docs/pt/permissions.md) `EnterWorktree` ou escolher "não perguntar novamente" não suprime este prompt; apenas o modo `bypassPermissions` o ignora.46Quando Claude entra em um caminho fora do diretório `.claude/worktrees/` do repositório, Claude Code solicita sua aprovação primeiro. A mudança leva o diretório de trabalho da sessão, acesso de escrita e configuração do projeto como `CLAUDE.md` e configurações para esse local. Uma [regra de permissão](https://code.claude.com/docs/pt/permissions.md) `EnterWorktree` ou escolher "não perguntar novamente" não suprime este prompt; apenas o modo `bypassPermissions` o ignora.

47 47 


52> * **`${CLAUDE_PROJECT_DIR}` fica no lugar**: ainda aponta para a raiz do projeto onde a sessão começou, então um comando de hook como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` ainda executa o script no checkout principal.52> * **`${CLAUDE_PROJECT_DIR}` fica no lugar**: ainda aponta para a raiz do projeto onde a sessão começou, então um comando de hook como `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` ainda executa o script no checkout principal.

53> * **`cwd` segue Claude**: o campo `cwd` no [JSON de entrada](https://code.claude.com/docs/pt/hooks.md#common-input-fields) do hook é a raiz da worktree, e se move novamente quando Claude executa `cd`. Leia-o quando um hook precisa do caminho da worktree.53> * **`cwd` segue Claude**: o campo `cwd` no [JSON de entrada](https://code.claude.com/docs/pt/hooks.md#common-input-fields) do hook é a raiz da worktree, e se move novamente quando Claude executa `cd`. Leia-o quando um hook precisa do caminho da worktree.

54 54 

55#### Claude não tem a ferramenta `EnterWorktree`

56 

57Se você pedir ao Claude para trabalhar em uma worktree e ele não tiver a ferramenta `EnterWorktree` nem `ExitWorktree`, verifique se [`permissions.blockWritesOutsideWorkingDirectories`](https://code.claude.com/docs/pt/settings-reference#permissions-blockwritesoutsideworkingdirectories) está ativada. Quando a chave está ativada, Claude Code remove ambas as ferramentas de worktree ou recusa chamadas a elas.

58 

59Você pode continuar trabalhando em worktrees enquanto a chave está ativada:

60 

61* **Sessões interativas**: inicie a sessão em uma worktree com `claude --worktree`.

62* **[Sessões em segundo plano](https://code.claude.com/docs/pt/agent-view.md#how-file-edits-are-isolated)**: Claude Code recusa as edições de uma sessão em segundo plano no seu checkout principal até que a sessão chame `EnterWorktree`, que ela não tem. Qualquer uma destas opções permite que a sessão edite:

63 * Inicie-a com `claude --bg --worktree`

64 * Defina [`worktree.bgIsolation`](https://code.claude.com/docs/pt/settings-reference#worktree-bgisolation) como `"none"`

65 * Peça ao Claude para editar em uma worktree criada com `git worktree add` dentro do diretório em que a sessão começou

66 

67Para recuperar as ferramentas, execute `/status` na sessão para listar as [fontes de configuração que ela carregou](https://code.claude.com/docs/pt/settings.md#check-what-loaded) e remova a chave de todos os arquivos que a definem. Em seguida, reinicie o Claude Code. Se configurações gerenciadas definirem a chave, pergunte ao seu administrador se a política deve mudar.

68 

55## Limpe worktrees69## Limpe worktrees

56 70 

57Quando você sai de uma sessão de worktree interativa, Claude verifica a worktree para trabalho que a remoção deletaria: arquivos alterados ou não rastreados, trabalho não confirmado dentro de submódulos em checkout e novos commits. Estas regras se aplicam a worktrees que Claude criou com git. Para uma worktree que seu hook [WorktreeCreate](https://code.claude.com/docs/pt/hooks.md#worktreecreate) criou, veja [WorktreeRemove](https://code.claude.com/docs/pt/hooks.md#worktreeremove) em vez disso.71Quando você sai de uma sessão de worktree interativa, Claude verifica a worktree para trabalho que a remoção deletaria: arquivos alterados ou não rastreados, trabalho não confirmado dentro de submódulos em checkout e novos commits. Estas regras se aplicam a worktrees que Claude criou com git. Para uma worktree que seu hook [WorktreeCreate](https://code.claude.com/docs/pt/hooks.md#worktreecreate) criou, veja [WorktreeRemove](https://code.claude.com/docs/pt/hooks.md#worktreeremove) em vez disso.


67 81 

68## Retome uma sessão de worktree82## Retome uma sessão de worktree

69 83 

70Quando você retoma uma sessão que terminou dentro de uma worktree sem [sair dela](#clean-up-worktrees), Claude Code retorna a sessão para essa worktree. Isso vale para retomas interativas, para `--continue` e `--resume` em [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `-p`, e para o Agent SDK. `--continue` escolhe a sessão mais recente registrada no diretório de onde você inicia. De volta dentro da worktree, Claude ainda pode sair dela com a ferramenta [`ExitWorktree`](https://code.claude.com/docs/pt/tools-reference).84Quando você retoma uma sessão que terminou dentro de um worktree sem [sair dele](#clean-up-worktrees), Claude Code retorna a sessão para esse worktree. Isso vale para retomas interativas, para `--continue` e `--resume` em [modo não interativo](https://code.claude.com/docs/pt/headless.md) com `-p`, e para o Agent SDK. `--continue` escolhe a sessão mais recente registrada no diretório de onde você inicia. De volta dentro do worktree, Claude pode sair dele com a ferramenta [`ExitWorktree`](https://code.claude.com/docs/pt/tools-reference) [quando a sessão tem essa ferramenta](#claude-has-no-enterworktree-tool).

71 85 

72Antes de retornar a sessão para sua worktree, Claude Code verifica que a worktree ainda é um checkout separado do principal, e recusa re-entrar em uma worktree que falha na verificação. Para uma git worktree, a verificação lê seus metadados git. Uma worktree sem metadados git, como uma que um hook [`WorktreeCreate`](#non-git-version-control) criou, pode passar na verificação; os casos que Claude Code ainda recusa estão listados com suas recuperações em [Claude Code recusa usar uma worktree](#claude-code-refuses-to-use-a-worktree). Para as mensagens e como recuperar de cada uma, consulte [A sessão retoma fora de sua worktree](#the-session-resumes-outside-its-worktree).86Antes de retornar a sessão para sua worktree, Claude Code verifica que a worktree ainda é um checkout separado do principal, e recusa re-entrar em uma worktree que falha na verificação. Para uma git worktree, a verificação lê seus metadados git. Uma worktree sem metadados git, como uma que um hook [`WorktreeCreate`](#non-git-version-control) criou, pode passar na verificação; os casos que Claude Code ainda recusa estão listados com suas recuperações em [Claude Code recusa usar uma worktree](#claude-code-refuses-to-use-a-worktree). Para as mensagens e como recuperar de cada uma, consulte [A sessão retoma fora de sua worktree](#the-session-resumes-outside-its-worktree).

73 87 


91 105 

92Claude Code aplica quatro verificações:106Claude Code aplica quatro verificações:

93 107 

94* **Edições de arquivo**: Claude Code bloqueia um `Edit`, `Write`, ou `NotebookEdit` que visa um caminho no checkout principal.108* **Edições de arquivo**: Claude Code bloqueia um `Edit`, `Write`, ou `NotebookEdit` que visa um caminho no checkout principal. Para alterar um arquivo no checkout principal, edite-o você mesmo ou inicie uma sessão interativa lá.

95* **Diretório de trabalho do comando**: Claude Code bloqueia um comando Bash, PowerShell, ou Monitor cujo diretório de trabalho resolve para o checkout principal, ou cujo diretório de trabalho não pode verificar que fica fora dele.109* **Diretório de trabalho do comando**: Claude Code bloqueia um comando Bash, PowerShell, ou Monitor cujo diretório de trabalho resolve para o checkout principal, ou cujo diretório de trabalho não pode verificar que fica fora dele.

96* **Redirecionamentos git**: Claude Code bloqueia um comando Bash ou Monitor que redireciona git para o checkout principal. O redirecionamento pode vir através de `git -C`, `--git-dir`, uma variável `GIT_DIR` ou `GIT_WORK_TREE`, ou um `cd` para o checkout principal antes de executar git.110* **Redirecionamentos git**: Claude Code bloqueia um comando Bash ou Monitor que redireciona git para o checkout principal. O redirecionamento pode vir através de `git -C`, `--git-dir`, uma variável `GIT_DIR` ou `GIT_WORK_TREE`, ou um `cd` para o checkout principal antes de executar git.

97* **Forma do comando**: Claude Code bloqueia um comando Bash ou Monitor quando não pode verificar do texto do comando que qualquer git que o comando executa fica dentro da worktree. Isso acontece, por exemplo, quando o nome do comando é computado em tempo de execução, quando a sintaxe não pode ser analisada, ou quando uma expansão como `${!name}` ou `${ command; }` poderia executar um comando que o texto não especifica. Claude Code diz a Claude como reescrever o comando recusado, como dividi-lo em comandos simples e separados. Você não pode desativar essa verificação.111* **Forma do comando**: Claude Code bloqueia um comando Bash ou Monitor quando não pode verificar do texto do comando que qualquer git que o comando executa fica dentro da worktree. Isso acontece, por exemplo, quando o nome do comando é computado em tempo de execução, quando a sintaxe não pode ser analisada, ou quando uma expansão como `${!name}` ou `${ command; }` poderia executar um comando que o texto não especifica. Claude Code diz a Claude como reescrever o comando recusado, como dividi-lo em comandos simples e separados. Você não pode desativar essa verificação.